30#ifndef CLASS_PCB_GROUP_H_ 
   31#define CLASS_PCB_GROUP_H_ 
   37#include <unordered_set> 
   57    void Serialize( google::protobuf::Any &aContainer ) 
const override;
 
   58    bool Deserialize( 
const google::protobuf::Any &aContainer ) 
override;
 
   69        return wxT( 
"PCB_GROUP" );
 
 
   91    void Show( 
int nestLevel, std::ostream& os )
 const override 
  140    bool HitTest( 
const VECTOR2I& aPosition, 
int aAccuracy = 0 ) 
const override;
 
  143    bool HitTest( 
const BOX2I& aRect, 
bool aContained, 
int aAccuracy = 0 ) 
const override;
 
  157                          const std::vector<KICAD_T>& aScanTypes ) 
override;
 
 
BITMAPS
A list of all bitmap identifiers.
 
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
 
BOARD_ITEM(BOARD_ITEM *aParent, KICAD_T idtype, PCB_LAYER_ID aLayer=F_Cu)
 
The base class for create windows for drawing purpose.
 
A set of EDA_ITEMs (i.e., without duplicates).
 
A base class for most all the KiCad significant classes used in schematics and boards.
 
KICAD_T Type() const
Returns the type of object.
 
EDA_ITEM(EDA_ITEM *parent, KICAD_T idType, bool isSCH_ITEM=false, bool isBOARD_ITEM=false)
 
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
 
A set of BOARD_ITEMs (i.e., without duplicates).
 
const BOX2I GetBoundingBox() const override
Return the orthogonal bounding box of this object for display purposes.
 
static bool WithinScope(BOARD_ITEM *aItem, PCB_GROUP *aScope, bool isFootprintEditor)
 
wxString GetItemDescription(UNITS_PROVIDER *aUnitsProvider, bool aFull) const override
Return a user-visible description string of this item.
 
bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const override
Compare the item against the search criteria in aSearchData.
 
void RunOnChildren(const std::function< void(BOARD_ITEM *)> &aFunction, RECURSE_MODE aMode) const override
Invoke a function on all children.
 
PCB_GROUP * DeepClone() const
 
void SetLayer(PCB_LAYER_ID aLayer) override
Set the layer this item is on.
 
bool Deserialize(const google::protobuf::Any &aContainer) override
Deserializes the given protobuf message into this object.
 
void Mirror(const VECTOR2I &aCentre, FLIP_DIRECTION aFlipDirection) override
Mirror this object relative to a given horizontal axis the layer is not changed.
 
void Rotate(const VECTOR2I &aRotCentre, const EDA_ANGLE &aAngle) override
Rotate this object.
 
static EDA_GROUP * TopLevelGroup(BOARD_ITEM *aItem, EDA_GROUP *aScope, bool isFootprintEditor)
 
bool IsOnCopperLayer() const override
 
bool operator==(const PCB_GROUP &aOther) const
 
bool IsOnLayer(PCB_LAYER_ID aLayer) const override
Test to see if this object is on the given layer.
 
static bool ClassOf(const EDA_ITEM *aItem)
 
LSET GetLayerSet() const override
Return a std::bitset of all layers on which the item physically resides.
 
void Serialize(google::protobuf::Any &aContainer) const override
Serializes this object to the given Any message.
 
void SetPosition(const VECTOR2I &aNewpos) override
 
void Move(const VECTOR2I &aMoveVector) override
Move this object.
 
double Similarity(const BOARD_ITEM &aOther) const override
Return a measure of how likely the other object is to represent the same object.
 
wxString GetClass() const override
Return the class name.
 
INSPECT_RESULT Visit(INSPECTOR aInspector, void *aTestData, const std::vector< KICAD_T > &aScanTypes) override
May be re-implemented for each derived class in order to handle all the types given by its member dat...
 
double ViewGetLOD(int aLayer, const KIGFX::VIEW *aView) const override
 
std::shared_ptr< SHAPE > GetEffectiveShape(PCB_LAYER_ID aLayer=UNDEFINED_LAYER, FLASHING aFlash=FLASHING::DEFAULT) const override
Some pad shapes can be complex (rounded/chamfered rectangle), even without considering custom shapes.
 
std::unordered_set< BOARD_ITEM * > GetBoardItems() const
 
void GetMsgPanelInfo(EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
 
VECTOR2I GetPosition() const override
 
void Flip(const VECTOR2I &aCentre, FLIP_DIRECTION aFlipDirection) override
Flip this object, i.e.
 
EDA_ITEM * AsEdaItem() override
 
PCB_GROUP * DeepDuplicate(bool addToParentGroup, BOARD_COMMIT *aCommit=nullptr) const
 
bool HitTest(const VECTOR2I &aPosition, int aAccuracy=0) const override
Test if aPosition is inside or on the boundary of this item.
 
EDA_ITEM * Clone() const override
Create a duplicate of this item with linked list members set to NULL.
 
PCB_GROUP(BOARD_ITEM *aParent)
 
BITMAPS GetMenuImage() const override
Return a pointer to an image to be used in menus.
 
void swapData(BOARD_ITEM *aImage) override
 
void SetLocked(bool aLocked) override
 
std::vector< int > ViewGetLayers() const override
 
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
 
const INSPECTOR_FUNC & INSPECTOR
std::function passed to nested users by ref, avoids copying std::function.
 
FLASHING
Enum used during connectivity building to ensure we do not query connectivity while building the data...
 
@ DEFAULT
Flashing follows connectivity.
 
PCB_LAYER_ID
A quick note on layer IDs:
 
The Cairo implementation of the graphics abstraction layer.
 
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
 
@ PCB_GROUP_T
class PCB_GROUP, a set of BOARD_ITEMs
 
VECTOR2< int32_t > VECTOR2I