KiCad PCB EDA Suite
|
An abstract base class for deriving all objects that can be added to a VIEW. More...
#include <view_item.h>
Public Member Functions | |
VIEW_ITEM () | |
virtual | ~VIEW_ITEM () |
VIEW_ITEM (const VIEW_ITEM &aOther)=delete | |
VIEW_ITEM & | operator= (const VIEW_ITEM &aOther)=delete |
virtual const BOX2I | ViewBBox () const =0 |
Return the bounding box of the item covering all its layers. More... | |
virtual void | ViewDraw (int aLayer, VIEW *aView) const |
Draw the parts of the object belonging to layer aLayer. More... | |
virtual void | ViewGetLayers (int aLayers[], int &aCount) const =0 |
Return the all the layers within the VIEW the object is painted on. More... | |
virtual double | ViewGetLOD (int aLayer, VIEW *aView) const |
Return the level of detail (LOD) of the item. More... | |
VIEW_ITEM_DATA * | viewPrivData () const |
void | SetForcedTransparency (double aForcedTransparency) |
double | GetForcedTransparency () const |
bool | Set (PROPERTY_BASE *aProperty, wxAny &aValue) |
template<typename T > | |
bool | Set (PROPERTY_BASE *aProperty, T aValue) |
template<typename T > | |
bool | Set (const wxString &aProperty, T aValue) |
wxAny | Get (PROPERTY_BASE *aProperty) const |
template<typename T > | |
T | Get (PROPERTY_BASE *aProperty) const |
template<typename T > | |
std::optional< T > | Get (const wxString &aProperty) const |
Private Attributes | |
VIEW_ITEM_DATA * | m_viewPrivData |
double | m_forcedTransparency |
Additional transparency for diff'ing items. More... | |
Friends | |
class | VIEW |
An abstract base class for deriving all objects that can be added to a VIEW.
Its role is to:
VIEW_ITEM objects are never owned by a VIEW. A single VIEW_ITEM can belong to any number of static VIEWs, but only one dynamic VIEW due to storage of only one VIEW reference.
Definition at line 76 of file view_item.h.
|
inline |
Definition at line 79 of file view_item.h.
|
virtual |
Definition at line 31 of file view_item.cpp.
References m_viewPrivData, and KIGFX::VIEW::OnDestroy().
|
delete |
|
inlineinherited |
Definition at line 104 of file inspectable.h.
References PROPERTY_BASE::get(), PROPERTY_MANAGER::GetProperty(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
|
inlineinherited |
Definition at line 84 of file inspectable.h.
References PROPERTY_BASE::getter(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
Referenced by BOOST_AUTO_TEST_CASE(), CLASS_D_DESC::CLASS_D_DESC(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PROPERTIES_PANEL::getItemValue(), and PCBEXPR_VAR_REF::GetValue().
|
inlineinherited |
Definition at line 92 of file inspectable.h.
References PROPERTY_BASE::get(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
|
inline |
Definition at line 150 of file view_item.h.
References m_forcedTransparency.
Referenced by EDA_ITEM::EDA_ITEM(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), and EDA_ITEM::operator=().
|
inlineinherited |
Definition at line 66 of file inspectable.h.
References PROPERTY_MANAGER::GetProperty(), PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), PROPERTY_BASE::set(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
|
inlineinherited |
Definition at line 54 of file inspectable.h.
References PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), PROPERTY_BASE::set(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
|
inlineinherited |
Definition at line 42 of file inspectable.h.
References PROPERTY_MANAGER::Instance(), PROPERTY_BASE::OwnerHash(), PROPERTY_BASE::setter(), TYPE_HASH, and PROPERTY_MANAGER::TypeCast().
Referenced by SCH_PROPERTIES_PANEL::valueChanged(), and PCB_PROPERTIES_PANEL::valueChanged().
|
inline |
Definition at line 145 of file view_item.h.
References m_forcedTransparency.
Referenced by EDA_ITEM::EDA_ITEM(), SYMBOL_DIFF_WIDGET::onSlider(), FOOTPRINT_DIFF_WIDGET::onSlider(), and EDA_ITEM::operator=().
|
pure virtual |
Return the bounding box of the item covering all its layers.
Implemented in LIB_PIN, SCH_PIN, GERBER_DRAW_ITEM, GERBVIEW_SELECTION, DS_PROXY_VIEW_ITEM, EDA_ITEM, KIGFX::ORIGIN_VIEWITEM, KIGFX::PREVIEW::ARC_ASSISTANT, KIGFX::PREVIEW::CENTRELINE_RECT_ITEM, KIGFX::PREVIEW::POLYGON_ITEM, KIGFX::PREVIEW::RULER_ITEM, KIGFX::PREVIEW::SELECTION_AREA, KIGFX::PREVIEW::TWO_POINT_ASSISTANT, EDIT_POINTS, SELECTION, KIGFX::VIEW_GROUP, KIGFX::VIEW_OVERLAY, FOOTPRINT, PAD, PCB_DIMENSION_BASE, PCB_DIM_CENTER, PCB_MARKER, PCB_SHAPE, PCB_TEXT, PCB_TRACK, RATSNEST_VIEW_ITEM, ROUTER_PREVIEW_ITEM, and MY_DRAWING.
Referenced by KIGFX::VIEW_RTREE::Insert().
|
inlinevirtual |
Draw the parts of the object belonging to layer aLayer.
An alternative way for drawing objects if there is no #PAINTER assigned for the view or if the PAINTER doesn't know how to paint this particular implementation of VIEW_ITEM. The preferred way of drawing is to design an appropriate PAINTER object, the method below is intended only for quick hacks and debugging purposes.
aLayer | is the current drawing layer. |
aView | is a pointer to the VIEW device we are drawing on. |
Reimplemented in DS_PROXY_VIEW_ITEM, KIGFX::PREVIEW::SIMPLE_OVERLAY_ITEM, EDIT_POINTS, RATSNEST_VIEW_ITEM, ROUTER_PREVIEW_ITEM, MY_DRAWING, KIGFX::PREVIEW::ARC_ASSISTANT, KIGFX::PREVIEW::RULER_ITEM, KIGFX::PREVIEW::SELECTION_AREA, KIGFX::PREVIEW::TWO_POINT_ASSISTANT, KIGFX::ORIGIN_VIEWITEM, KIGFX::VIEW_GROUP, and KIGFX::VIEW_OVERLAY.
Definition at line 108 of file view_item.h.
Referenced by KIGFX::VIEW::draw(), and KIGFX::VIEW::updateItemGeometry().
|
pure virtual |
Return the all the layers within the VIEW the object is painted on.
For instance, a PAD spans zero or more copper layers and a few technical layers. ViewDraw() or PAINTER::Draw() is repeatedly called for each of the layers returned by ViewGetLayers(), depending on the rendering order.
aLayers[] | is the output layer index array. |
aCount | is the number of layer indices in aLayers[]. |
Implemented in LIB_FIELD, LIB_ITEM, LIB_PIN, LIB_SHAPE, LIB_SYMBOL, LIB_TEXT, LIB_TEXTBOX, SCH_BITMAP, SCH_BUS_ENTRY_BASE, SCH_FIELD, SCH_ITEM, SCH_JUNCTION, SCH_LABEL_BASE, SCH_GLOBALLABEL, SCH_LINE, SCH_MARKER, SCH_NO_CONNECT, SCH_PIN, SCH_SHAPE, SCH_SHEET, SCH_SYMBOL, SCH_TEXT, GERBER_DRAW_ITEM, BOARD_ITEM, DS_DRAW_ITEM_BASE, DS_PROXY_VIEW_ITEM, EDA_ITEM, KIGFX::ORIGIN_VIEWITEM, PCB_GROUP, KIGFX::PREVIEW::ARC_ASSISTANT, KIGFX::PREVIEW::RULER_ITEM, KIGFX::PREVIEW::SIMPLE_OVERLAY_ITEM, KIGFX::PREVIEW::TWO_POINT_ASSISTANT, EDIT_POINTS, KIGFX::VIEW_GROUP, KIGFX::VIEW_OVERLAY, FOOTPRINT, PAD, PCB_BITMAP, PCB_MARKER, PCB_SHAPE, PCB_TEXT, PCB_TEXTBOX, PCB_TRACK, PCB_VIA, RATSNEST_VIEW_ITEM, ROUTER_PREVIEW_ITEM, ZONE, and MY_DRAWING.
Referenced by KIGFX::VIEW::Add(), KIGFX::VIEW::draw(), KIGFX::VIEW::invalidateItem(), KIGFX::VIEW::updateBbox(), and KIGFX::VIEW::updateLayers().
|
inlinevirtual |
Return the level of detail (LOD) of the item.
A level of detail is the minimal VIEW scale that is sufficient for an item to be shown on a given layer.
aLayer | is the current drawing layer. |
aView | is a pointer to the VIEW device we are drawing on. |
Reimplemented in SCH_LINE, GERBER_DRAW_ITEM, PCB_GROUP, FOOTPRINT, PAD, PCB_BITMAP, PCB_FIELD, PCB_SHAPE, PCB_TEXT, PCB_TEXTBOX, PCB_TRACK, PCB_VIA, and ZONE.
Definition at line 134 of file view_item.h.
Referenced by PNS_KICAD_IFACE::IsItemVisible(), KIGFX::VIEW::DRAW_ITEM_VISITOR::operator()(), EE_GRID_HELPER::queryVisible(), and PCB_GRID_HELPER::queryVisible().
|
inline |
Definition at line 140 of file view_item.h.
References m_viewPrivData.
Referenced by KIGFX::VIEW::Add(), KIGFX::VIEW::draw(), KIGFX::VIEW::HasItem(), KIGFX::VIEW::Hide(), KIGFX::VIEW::invalidateItem(), KIGFX::VIEW::IsVisible(), KIGFX::QUERY_VISITOR< CONTAINER >::operator()(), KIGFX::VIEW::UPDATE_COLOR_VISITOR::operator()(), KIGFX::VIEW::UPDATE_DEPTH_VISITOR::operator()(), KIGFX::VIEW::DRAW_ITEM_VISITOR::operator()(), KIGFX::VIEW::RECACHE_ITEM_VISITOR::operator()(), KIGFX::VIEW::CLEAR_LAYER_CACHE_VISITOR::operator()(), KIGFX::VIEW::SetVisible(), KIGFX::VIEW::Update(), KIGFX::VIEW::updateItemColor(), KIGFX::VIEW::updateItemGeometry(), and KIGFX::VIEW::updateLayers().
|
friend |
Definition at line 156 of file view_item.h.
|
private |
Additional transparency for diff'ing items.
Definition at line 159 of file view_item.h.
Referenced by GetForcedTransparency(), KIGFX::VIEW::DRAW_ITEM_VISITOR::operator()(), and SetForcedTransparency().
|
private |
Definition at line 158 of file view_item.h.
Referenced by KIGFX::VIEW::Add(), KIGFX::VIEW::OnDestroy(), KIGFX::VIEW::Remove(), viewPrivData(), and ~VIEW_ITEM().