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 );
289 const VECTOR2I textPos( 1000, 2000 );
298 text.SetHorizJustify( hJustify );
301 text.Rotate( ref,
false );
302 text.Rotate( ref,
true );
318 auto item = std::unique_ptr<EDA_ITEM>( Instantiate( type ) );
320 if( item ==
nullptr )
329 auto item = std::unique_ptr<EDA_ITEM>( aOriginalItem->Clone() );
331 SCH_ITEM* schItem = dynamic_cast<SCH_ITEM*>( item.get() );
335 if( schItem != nullptr )
337 schItem->SetFieldsAutoplaced( AUTOPLACE_NONE );
338 schItem->MirrorHorizontally( aRef.x );
339 schItem->MirrorHorizontally( aRef.x );
342 CompareItems( item.get(), aOriginalItem );
355 auto item = std::unique_ptr<EDA_ITEM>( Instantiate( type ) );
357 if( item ==
nullptr )
366 auto item = std::unique_ptr<EDA_ITEM>( aOriginalItem->Clone() );
368 SCH_ITEM* schItem = dynamic_cast<SCH_ITEM*>( item.get() );
373 if( schItem != nullptr )
375 schItem->SetFieldsAutoplaced( AUTOPLACE_NONE );
376 schItem->MirrorVertically( aRef.y );
377 schItem->MirrorVertically( aRef.y );
380 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 constexpr EDA_ANGLE ANGLE_HORIZONTAL
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()
BOOST_TEST_CONTEXT("Test Clearance")
BOOST_CHECK_EQUAL(result, "25.4")
GR_TEXT_H_ALIGN_T
This is API surface mapped to common.types.HorizontalAlignment.
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