47 std::unique_ptr<BOARD> board;
51 board->BuildConnectivity();
54 toolMgr.
SetEnvironment( board.get(),
nullptr,
nullptr,
nullptr,
nullptr );
67 PAD* exposedPad =
nullptr;
69 for(
FOOTPRINT* footprint : board->Footprints() )
71 for(
PAD*
pad : footprint->Pads() )
74 if( footprint->GetReference() == wxT(
"U2" ) &&
pad->GetNumber() == wxT(
"33" )
85 int teardropsOnPad = 0;
90 for(
ZONE* zone : board->Zones() )
92 if( !zone->IsTeardropArea() || zone->GetFirstLayer() !=
F_Cu )
constexpr EDA_IU_SCALE pcbIUScale
virtual void Push(const wxString &aMessage=wxEmptyString, int aCommitFlags=0) override
Execute the changes.
void TransformShapeToPolygon(SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aMaxError, ERROR_LOC aErrorLoc=ERROR_INSIDE, bool ignoreLineWidth=false) const override
Convert the pad shape to a closed polygon.
Represent a set of closed polygons.
bool IsEmpty() const
Return true if the set is empty (no polygons at all)
SHAPE_LINE_CHAIN & Outline(int aIndex)
Return the reference to aIndex-th outline in the set.
void BooleanIntersection(const SHAPE_POLY_SET &b)
Perform boolean polyset intersection.
TEARDROP_MANAGER manage and build teardrop areas A teardrop area is a polygonal area (a copper ZONE) ...
void UpdateTeardrops(BOARD_COMMIT &aCommit, const std::vector< BOARD_ITEM * > *dirtyPadsAndVias, const std::set< PCB_TRACK * > *dirtyTracks, bool aForceFullUpdate=false)
Update teardrops on a list of items.
Handle a list of polygons defining a copper zone.
void LoadBoard(SETTINGS_MANAGER &aSettingsManager, const wxString &aRelPath, std::unique_ptr< BOARD > &aBoard)
void FillZones(BOARD *m_board)
BOOST_REQUIRE(intersection.has_value()==c.ExpectedIntersection.has_value())
BOOST_AUTO_TEST_CASE(NoTeardropOnZoneConnectedThermalPad)
The U2 corner of demos/royalblue54L_feather.
BOOST_CHECK_EQUAL(result, "25.4")