35    std::vector<BOX2I> fpBBBoxes( 
m_FpInMove.size() );
 
   38    for( 
size_t i = 0; i < 
m_FpInMove.size(); i++ )
 
   43        movingBBox.
Merge( bbox );
 
   51        if( fpA->IsSelected() )
 
   54        BOX2I fpABBox = fpA->GetBoundingBox( 
true );
 
   72        for( 
size_t inMoveId = 0; inMoveId < 
m_FpInMove.size(); inMoveId++ )
 
   78            const BOX2I fpBBBox = fpBBBoxes[inMoveId];
 
  118            auto testPadAgainstCourtyards =
 
  123                            std::shared_ptr<SHAPE_SEGMENT> hole = 
pad->GetEffectiveHoleShape();
 
  136            bool skipNextCmp = 
false;
 
  141                for( 
const PAD* padB : fpB->
Pads() )
 
  143                    if( testPadAgainstCourtyards( padB, fpA ) )
 
  159                for( 
const PAD* padA : fpA->Pads() )
 
  161                    if( testPadAgainstCourtyards( padA, fpB ) )
 
  174        if( !zone->GetIsRuleArea() || !zone->HasKeepoutParametersSet()
 
  175            || !zone->GetDoNotAllowFootprints() )
 
  180        bool disallowFront = ( zone->GetLayerSet() & 
LSET::FrontMask() ).any();
 
  181        bool disallowBack = ( zone->GetLayerSet() & 
LSET::BackMask() ).any();
 
  189                if( !frontCourtyard.
IsEmpty() )
 
  191                    if( zone->Outline()->Collide( &frontCourtyard.
Outline( 0 ) ) )
 
  206                    if( zone->Outline()->Collide( &backCourtyard.
Outline( 0 ) ) )
 
 
  227        fp->BuildCourtyardCaches();
 
 
  249                                                           bool aHighlightMoved )
 
 
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
 
Information pertinent to a Pcbnew printed circuit board.
 
constexpr BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Inflates the rectangle horizontally by dx and vertically by dy.
 
constexpr BOX2< Vec > & Merge(const BOX2< Vec > &aRect)
Modify the position and size of the rectangle in order to contain aRect.
 
constexpr bool Intersects(const BOX2< Vec > &aRect) const
 
const MINOPTMAX< int > & GetValue() const
 
virtual bool Run() override
Run this provider against the given PCB with configured options (if any).
 
std::vector< FOOTPRINT * > m_FpInMove
 
void testCourtyardClearances()
 
int m_largestCourtyardClearance
 
std::set< BOARD_ITEM * > m_itemsInConflict
 
void ClearConflicts(KIGFX::VIEW *aView)
 
std::vector< BOARD_ITEM * > m_lastItemsInConflict
 
void UpdateConflicts(KIGFX::VIEW *aView, bool aHighlightMoved)
 
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
 
virtual void Update(const VIEW_ITEM *aItem, int aUpdateFlags) const
For dynamic VIEWs, inform the associated VIEW that the graphical representation of this item has chan...
 
void MarkTargetDirty(int aTarget)
Set or clear target 'dirty' flag.
 
static const LSET & FrontMask()
Return a mask holding all technical layers and the external CU layer on front side.
 
static const LSET & BackMask()
Return a mask holding all technical layers and the external CU layer on back side.
 
Represent a set of closed polygons.
 
bool IsEmpty() const
Return true if the set is empty (no polygons at all)
 
bool Collide(const SHAPE *aShape, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const override
Check if the boundary of shape (this) lies closer to the shape aShape than aClearance,...
 
SHAPE_LINE_CHAIN & Outline(int aIndex)
Return the reference to aIndex-th outline in the set.
 
int OutlineCount() const
Return the number of outlines in the set.
 
const BOX2I BBoxFromCaches() const
 
Handle a list of polygons defining a copper zone.
 
@ COURTYARD_CLEARANCE_CONSTRAINT
 
#define COURTYARD_CONFLICT
temporary set when moving footprints having courtyard overlapping
 
@ TARGET_OVERLAY
Items that may change while the view stays the same (noncached)
 
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.
 
VECTOR2< int32_t > VECTOR2I