72 m_text.SetParentGroup(
nullptr );
97 auto& outline = ruleShape.
Outline( 0 );
99 outline.Append(
VECTOR2I( 22000, 20000) );
100 outline.Append(
VECTOR2I( 22000, 22000) );
101 outline.Append(
VECTOR2I( 20000, 22000) );
102 outline.SetClosed(
true );
103 outline.Simplify(
true );
121 table->SetColCount( 2 );
123 for(
int ii = 0; ii < 4; ++ii )
160 BOOST_FAIL( wxString::Format(
161 "Unhandled type: %d "
162 "(if you created a new type you need to handle it in this switch statement)",
192 auto item = std::unique_ptr<EDA_ITEM>( Instantiate( type ) );
194 if( item ==
nullptr )
203 auto item = std::unique_ptr<EDA_ITEM>( aOriginalItem->Clone() );
204 VECTOR2I originalPos = item->GetPosition();
206 SCH_ITEM* schItem = dynamic_cast<SCH_ITEM*>( item.get() );
211 if( schItem != nullptr )
213 schItem->Move( aRef );
214 BOOST_CHECK_EQUAL( schItem->GetPosition(), originalPos + aRef );
216 schItem->Move( -aRef );
219 CompareItems( item.get(), aOriginalItem );
232 auto item = std::unique_ptr<EDA_ITEM>( Instantiate( type ) );
234 if( item ==
nullptr )
242 if( item->GetClass() ==
"SCH_SHEET_PIN" )
244 auto newItem = std::unique_ptr<EDA_ITEM>( item->Clone() );
248 if( schItem !=
nullptr )
252 schItem->
Rotate( m_sheet.GetBodyBoundingBox().GetCenter(),
false );
253 schItem->
Rotate( m_sheet.GetBodyBoundingBox().GetCenter(),
false );
254 schItem->
Rotate( m_sheet.GetBodyBoundingBox().GetCenter(),
false );
255 schItem->
Rotate( m_sheet.GetBodyBoundingBox().GetCenter(),
false );
258 CompareItems( newItem.get(), item.get() );
266 auto item = std::unique_ptr<EDA_ITEM>( aOriginalItem->Clone() );
268 SCH_ITEM* schItem = dynamic_cast<SCH_ITEM*>( item.get() );
270 if( schItem != nullptr )
272 schItem->SetFieldsAutoplaced( AUTOPLACE_NONE );
273 schItem->Rotate( aRef, false );
274 schItem->Rotate( aRef, false );
275 schItem->Rotate( aRef, false );
276 schItem->Rotate( aRef, false );
279 CompareItems( item.get(), aOriginalItem );
293 auto item = std::unique_ptr<EDA_ITEM>( Instantiate( type ) );
295 if( item ==
nullptr )
304 auto item = std::unique_ptr<EDA_ITEM>( aOriginalItem->Clone() );
306 SCH_ITEM* schItem = dynamic_cast<SCH_ITEM*>( item.get() );
310 if( schItem != nullptr )
312 schItem->SetFieldsAutoplaced( AUTOPLACE_NONE );
313 schItem->MirrorHorizontally( aRef.x );
314 schItem->MirrorHorizontally( aRef.x );
317 CompareItems( item.get(), aOriginalItem );
330 auto item = std::unique_ptr<EDA_ITEM>( Instantiate( type ) );
332 if( item ==
nullptr )
341 auto item = std::unique_ptr<EDA_ITEM>( aOriginalItem->Clone() );
343 SCH_ITEM* schItem = dynamic_cast<SCH_ITEM*>( item.get() );
348 if( schItem != nullptr )
350 schItem->SetFieldsAutoplaced( AUTOPLACE_NONE );
351 schItem->MirrorVertically( aRef.y );
352 schItem->MirrorVertically( aRef.y );
355 CompareItems( item.get(), aOriginalItem );
constexpr EDA_IU_SCALE schIUScale
constexpr coord_type GetLeft() const
constexpr coord_type GetRight() const
constexpr coord_type GetTop() const
constexpr coord_type GetBottom() const
A base class for most all the KiCad significant classes used in schematics and boards.
virtual VECTOR2I GetPosition() const
virtual const BOX2I GetBoundingBox() const
Return the orthogonal bounding box of this object for display purposes.
virtual void SetPolyShape(const SHAPE_POLY_SET &aShape)
Define a library symbol object.
Object to handle a bitmap image that can be inserted in a schematic.
Class for a bus to bus entry.
Class for a wire to bus entry.
A set of SCH_ITEMs (i.e., without duplicates).
Base class for any item which can be embedded within the SCHEMATIC container class,...
void SetFieldsAutoplaced(AUTOPLACE_ALGO aAlgo)
virtual void Rotate(const VECTOR2I &aCenter, bool aRotateCCW)
Rotate the item around aCenter 90 degrees in the clockwise direction.
Segment description base class to describe items which have 2 end points (track, wire,...
Define a sheet pin (label) used in sheets to create hierarchical schematics.
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
void Append(int aX, int aY, bool aAllowDuplication=false)
Append a new point at the end of the line chain.
Represent a set of closed polygons.
SHAPE_LINE_CHAIN & Outline(int aIndex)
Return the reference to aIndex-th outline in the set.
int NewOutline()
Creates a new empty polygon in the set and returns its index.
EDA_ITEM * Instantiate(KICAD_T aType)
static void CompareItems(EDA_ITEM *aItem, EDA_ITEM *aOriginalItem)
std::shared_ptr< ERC_ITEM > m_ercItem
static void IterateOverPositionsAndReferences(T *aItem, void(*aCallback)(T *, VECTOR2I))
@ ERCE_DRIVER_CONFLICT
Conflicting drivers (labels, etc) on a subgraph.
Class to handle a set of SCH_ITEMs.
@ USER
The field ID hasn't been set yet; field is invalid.
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_CASE(Move)
BOOST_AUTO_TEST_SUITE_END()
std::vector< std::vector< std::string > > table
BOOST_TEST_CONTEXT("Test Clearance")
BOOST_CHECK_EQUAL(result, "25.4")
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
constexpr bool IsInstantiableType(const KICAD_T aType)
constexpr bool IsEeschemaType(const KICAD_T aType)
VECTOR2< int32_t > VECTOR2I