KiCad PCB EDA Suite
Loading...
Searching...
No Matches
EDA_SHAPE_MOCK Class Reference
Inheritance diagram for EDA_SHAPE_MOCK:
EDA_SHAPE SERIALIZABLE

Public Member Functions

 EDA_SHAPE_MOCK (SHAPE_T aShapeType)
 
void SwapShape (EDA_SHAPE *aImage)
 
void Serialize (google::protobuf::Any &aContainer) const override
 Serializes this object to the given Any message.
 
void Serialize (google::protobuf::Any &aContainer, const EDA_IU_SCALE &aScale) const
 
void Serialize (kiapi::common::types::GraphicShape &aOutput, const EDA_IU_SCALE &aScale) const
 
bool Deserialize (const google::protobuf::Any &aContainer) override
 Deserializes the given protobuf message into this object.
 
bool Deserialize (const google::protobuf::Any &aContainer, const EDA_IU_SCALE &aScale)
 
bool Deserialize (const kiapi::common::types::GraphicShape &aInput, const EDA_IU_SCALE &aScale)
 
wxString ShowShape () const
 
wxString SHAPE_T_asString () const
 
virtual bool IsProxyItem () const
 
virtual void SetIsProxyItem (bool aIsProxy=true)
 
bool IsAnyFill () const
 
bool IsSolidFill () const
 
bool IsHatchedFill () const
 
virtual bool IsFilledForHitTesting () const
 
virtual void SetFilled (bool aFlag)
 
void SetFillMode (FILL_T aFill)
 
FILL_T GetFillMode () const
 
void SetFillModeProp (UI_FILL_MODE)
 
UI_FILL_MODE GetFillModeProp () const
 
void SetHatchingDirty ()
 
const SHAPE_POLY_SETGetHatching () const
 
const std::vector< SEG > & GetHatchLines () const
 
bool IsClosed () const
 
COLOR4D GetFillColor () const
 
void SetFillColor (const COLOR4D &aColor)
 
virtual void SetWidth (int aWidth)
 
virtual int GetWidth () const
 
virtual int GetEffectiveWidth () const
 
virtual int GetHatchLineWidth () const
 
virtual int GetHatchLineSpacing () const
 
void SetLineStyle (const LINE_STYLE aStyle)
 
LINE_STYLE GetLineStyle () const
 
void SetLineColor (const COLOR4D &aColor)
 
COLOR4D GetLineColor () const
 
virtual void SetShape (SHAPE_T aShape)
 
SHAPE_T GetShape () const
 
const LINE_ENDINGGetStartEnding () const
 
void SetStartEnding (const LINE_ENDING &aEnding)
 
const LINE_ENDINGGetEndEnding () const
 
void SetEndEnding (const LINE_ENDING &aEnding)
 
LINE_ENDING_STYLE GetStartEndingStyle () const
 
void SetStartEndingStyle (LINE_ENDING_STYLE aStyle)
 
LINE_ENDING_STYLE GetEndEndingStyle () const
 
void SetEndEndingStyle (LINE_ENDING_STYLE aStyle)
 
int GetStartEndingLength () const
 
void SetStartEndingLength (int aLength)
 
int GetStartEndingWidth () const
 
void SetStartEndingWidth (int aWidth)
 
int GetEndEndingLength () const
 
void SetEndEndingLength (int aLength)
 
int GetEndEndingWidth () const
 
void SetEndEndingWidth (int aWidth)
 
int GetStartEndingStrokeWidth () const
 
void SetStartEndingStrokeWidth (int aWidth)
 
int GetEndEndingStrokeWidth () const
 
void SetEndEndingStrokeWidth (int aWidth)
 
void GetEndingTangents (EDA_ANGLE &aStartTangent, EDA_ANGLE &aEndTangent, int aLineWidth=0) const
 Compute outward-facing tangent angles at the start and end of the shape.
 
bool GetLineEndingEndpoints (VECTOR2I &aStartPoint, VECTOR2I &aEndPoint) const
 Return the source endpoints used to place line endings.
 
bool ShortenArcForEndings (EDA_ANGLE &aStartAngle, EDA_ANGLE &aArcAngle, double aRadius, int aLineWidth) const
 Shorten an arc body for line endings.
 
std::optional< BEZIER< double > > ShortenedBezierCurve (int aLineWidth) const
 Return the cubic Bezier curve shortened for line endings.
 
std::vector< VECTOR2DShortenedBezierPolyline (int aLineWidth) const
 Return the flattened Bezier polyline after line-ending shortening.
 
bool ShortenPolyForEndings (VECTOR2D &aFirst, VECTOR2D &aLast, const VECTOR2D &aSecond, const VECTOR2D &aPenultimate, int aLineWidth) const
 
bool ShortenBodyPolyPoints (std::vector< VECTOR2I > &aPoints, bool aClosed, int aOutlineIdx, int aLineWidth) const
 Apply line-ending body shortening to copied/generated polyline points.
 
bool GetShortenedBodyPolyPoints (const SHAPE_LINE_CHAIN &aOutline, int aOutlineIdx, std::vector< VECTOR2I > &aPoints, int aLineWidth) const
 Copy an outline and apply line-ending body shortening when applicable.
 
const VECTOR2IGetStart () const
 Return the starting point of the graphic.
 
int GetStartY () const
 
int GetStartX () const
 
virtual void SetStart (const VECTOR2I &aStart)
 
void SetStartY (int y)
 
void SetStartX (int x)
 
void SetCenterY (int y)
 
void SetCenterX (int x)
 
const VECTOR2IGetEnd () const
 Return the ending point of the graphic.
 
int GetEndY () const
 
int GetEndX () const
 
virtual void SetEnd (const VECTOR2I &aEnd)
 
void SetEndY (int aY)
 
void SetEndX (int aX)
 
void SetRadius (int aX)
 
virtual VECTOR2I GetTopLeft () const
 
virtual VECTOR2I GetBotRight () const
 
virtual void SetTop (int val)
 
virtual void SetLeft (int val)
 
virtual void SetRight (int val)
 
virtual void SetBottom (int val)
 
virtual void SetBezierC1 (const VECTOR2I &aPt)
 
const VECTOR2IGetBezierC1 () const
 
virtual void SetBezierC2 (const VECTOR2I &aPt)
 
const VECTOR2IGetBezierC2 () const
 
virtual void SetEllipseCenter (const VECTOR2I &aPt)
 
const VECTOR2IGetEllipseCenter () const
 
virtual void SetEllipseMajorRadius (int aR)
 
int GetEllipseMajorRadius () const
 
virtual void SetEllipseMinorRadius (int aR)
 
int GetEllipseMinorRadius () const
 
virtual void SetEllipseRotation (const EDA_ANGLE &aA)
 
EDA_ANGLE GetEllipseRotation () const
 
virtual void SetEllipseStartAngle (const EDA_ANGLE &aA)
 
EDA_ANGLE GetEllipseStartAngle () const
 
virtual void SetEllipseEndAngle (const EDA_ANGLE &aA)
 
EDA_ANGLE GetEllipseEndAngle () const
 
const ELLIPSE< int > & GetEllipse () const
 Direct read-only access to the underlying ellipse payload.
 
VECTOR2I getCenter () const
 
void SetCenter (const VECTOR2I &aCenter)
 
void SetArcAngleAndEnd (const EDA_ANGLE &aAngle, bool aCheckNegativeAngle=false)
 Set the end point from the angle center and start.
 
virtual void SetArcAngle (const EDA_ANGLE &aAngle)
 
EDA_ANGLE GetArcAngle () const
 
EDA_ANGLE GetSegmentAngle () const
 
bool EndsSwapped () const
 Have the start and end points been swapped since they were set?
 
VECTOR2I GetArcMid () const
 
std::vector< VECTOR2IGetRectCorners () const
 
virtual std::vector< VECTOR2IGetCornersInSequence (EDA_ANGLE angle) const
 
void CalcArcAngles (EDA_ANGLE &aStartAngle, EDA_ANGLE &aEndAngle) const
 Calc arc start and end angles such that aStartAngle < aEndAngle.
 
int GetRadius () const
 
void SetArcGeometry (const VECTOR2I &aStart, const VECTOR2I &aMid, const VECTOR2I &aEnd)
 Set the three controlling points for an arc.
 
void SetCachedArcData (const VECTOR2I &aStart, const VECTOR2I &aMid, const VECTOR2I &aEnd, const VECTOR2I &aCenter)
 Set the data used for mid point caching.
 
const std::vector< VECTOR2I > & GetBezierPoints () const
 
std::vector< VECTOR2IGetPolyPoints () const
 Duplicate the polygon outlines into a flat list of VECTOR2I points.
 
int GetPointCount () const
 
SHAPE_POLY_SETGetPolyShape ()
 
const SHAPE_POLY_SETGetPolyShape () const
 
bool IsPolyShapeValid () const
 
virtual void SetPolyShape (const SHAPE_POLY_SET &aShape)
 
void SetPolyPoints (const std::vector< VECTOR2I > &aPoints)
 
void RebuildBezierToSegmentsPointsList (int aMaxError)
 Rebuild the m_bezierPoints vertex list that approximate the Bezier curve by a list of segments.
 
void RebuildBezierToSegmentsPointsList ()
 
virtual std::vector< SHAPE * > MakeEffectiveShapes (bool aEdgeOnly=false) const
 Make a set of SHAPE objects representing the EDA_SHAPE.
 
std::vector< SHAPE * > MakeLineEndingEffectiveShapes (int aLineWidth) const
 Make the line-ending geometry associated with this shape.
 
std::vector< SHAPE * > MakeEffectiveShapesWithLineEndings (int aLineWidth) const
 Make effective geometry for the shape body shortened for line endings plus the line-ending geometry itself.
 
virtual std::vector< SHAPE * > MakeEffectiveShapesForHitTesting () const
 
std::vector< SHAPE * > MakeEffectiveShapesForStroking (int aLineWidth=-1) const
 Make a set of SHAPE objects to hand to STROKE_PARAMS::Stroke().
 
void ShapeGetMsgPanelInfo (EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList)
 
void SetRectangleHeight (const int &aHeight)
 
void SetRectangleWidth (const int &aWidth)
 
void SetRectangle (const long long int &aHeight, const long long int &aWidth)
 
void SetCornerRadius (int aRadius)
 
int GetCornerRadius () const
 
bool IsClockwiseArc () const
 
double GetLength () const
 
int GetRectangleHeight () const
 
int GetRectangleWidth () const
 
virtual void UpdateHatching () const
 
void TransformShapeToPolygon (SHAPE_POLY_SET &aBuffer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=false, bool includeFill=false) const
 Convert the shape to a closed polygon.
 
void TransformLineEndingsToPolygon (SHAPE_POLY_SET &aBuffer, int aClearance, int aError, ERROR_LOC aErrorLoc, int aLineWidth) const
 Append only the line-ending geometry associated with this shape to a polygon set.
 
void TransformWithLineEndingsToPolygon (SHAPE_POLY_SET &aBuffer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=false) const
 Convert the shape body shortened for line endings plus line-ending geometry to polygons.
 
bool GetLineEndingsBoundingBox (BOX2I &aBBox, int aLineWidth) const
 
int Compare (const EDA_SHAPE *aOther) const
 
double Similarity (const EDA_SHAPE &aOther) const
 
bool operator== (const EDA_SHAPE &aOther) const
 

Static Public Member Functions

static bool ShortenSegmentForEndings (VECTOR2I &aStart, VECTOR2I &aEnd, const LINE_ENDING &aStartEnding, const LINE_ENDING &aEndEnding, int aLineWidth)
 Shorten a segment body for line endings.
 

Protected Member Functions

wxString getFriendlyName (FRAME_T aFrameType) const
 
void setPosition (const VECTOR2I &aPos)
 
VECTOR2I getPosition () const
 
virtual void setFilled (bool aFlag)
 
virtual SHAPE_POLY_SET getHatchingKnockouts () const
 
void move (const VECTOR2I &aMoveVector)
 
void rotate (const VECTOR2I &aRotCentre, const EDA_ANGLE &aAngle)
 
void flip (const VECTOR2I &aCentre, FLIP_DIRECTION aFlipDirection)
 
void scale (double aScale)
 
virtual EDA_ANGLE getDrawRotation () const
 
const BOX2I getBoundingBox () const
 
void computeArcBBox (BOX2I &aBBox) const
 
bool hitTest (const VECTOR2I &aPosition, int aAccuracy=0) const
 
bool hitTest (const BOX2I &aRect, bool aContained, int aAccuracy=0) const
 
bool hitTest (const SHAPE_LINE_CHAIN &aPoly, bool aContained) const
 
const std::vector< VECTOR2IbuildBezierToSegmentsPointsList (int aMaxError) const
 
void beginEdit (const VECTOR2I &aStartPoint)
 
bool continueEdit (const VECTOR2I &aPosition)
 
void calcEdit (const VECTOR2I &aPosition)
 
void endEdit (bool aClosed=true)
 Finish editing the shape.
 
void setEditState (int aState)
 
virtual bool isMoving () const
 
std::vector< SHAPE * > makeEffectiveShapes (bool aEdgeOnly, bool aLineChainOnly=false, bool aHittesting=false) const
 Make a set of SHAPE objects representing the EDA_SHAPE.
 
std::vector< SHAPE * > makeShortenedBodyShapes (int aLineWidth, bool aEdgeOnly=false) const
 Make effective geometry for the shape body shortened for line endings, without the line-ending geometry itself.
 
SHAPE_ELLIPSE buildShapeEllipse () const
 
void recalcEllipseArcEndpoints ()
 When m_shape == ELLIPSE_ARC, recompute m_start/m_end from m_ellipse.
 
virtual int getMaxError () const
 
SHAPE_POLY_SEThatching () const
 
std::vector< SEG > & hatchLines () const
 

Protected Attributes

bool m_endsSwapped
 
SHAPE_T m_shape
 
STROKE_PARAMS m_stroke
 
LINE_ENDING m_startEnding
 
LINE_ENDING m_endEnding
 
FILL_T m_fill
 
COLOR4D m_fillColor
 
std::unique_ptr< EDA_SHAPE_HATCH_CACHE_DATAm_hatchingCache
 
bool m_hatchingDirty
 
long long int m_rectangleHeight
 
long long int m_rectangleWidth
 
int m_cornerRadius
 
VECTOR2I m_start
 
VECTOR2I m_end
 
VECTOR2I m_arcCenter
 
ARC_MID m_arcMidData
 
VECTOR2I m_bezierC1
 
VECTOR2I m_bezierC2
 
std::vector< VECTOR2Im_bezierPoints
 
ELLIPSE< int > m_ellipse
 
std::unique_ptr< SHAPE_POLY_SETm_poly
 
int m_editState
 
bool m_proxyItem
 

Detailed Description

Definition at line 37 of file test_eda_shape.cpp.

Constructor & Destructor Documentation

◆ EDA_SHAPE_MOCK()

EDA_SHAPE_MOCK::EDA_SHAPE_MOCK ( SHAPE_T aShapeType)
inline

Definition at line 40 of file test_eda_shape.cpp.

References EDA_SHAPE::EDA_SHAPE(), and NO_FILL.

Member Function Documentation

◆ beginEdit()

◆ buildBezierToSegmentsPointsList()

const std::vector< VECTOR2I > EDA_SHAPE::buildBezierToSegmentsPointsList ( int aMaxError) const
protectedinherited

◆ buildShapeEllipse()

SHAPE_ELLIPSE EDA_SHAPE::buildShapeEllipse ( ) const
protectedinherited

◆ CalcArcAngles()

void EDA_SHAPE::CalcArcAngles ( EDA_ANGLE & aStartAngle,
EDA_ANGLE & aEndAngle ) const
inherited

◆ calcEdit()

◆ Compare()

◆ computeArcBBox()

void EDA_SHAPE::computeArcBBox ( BOX2I & aBBox) const
protectedinherited

◆ continueEdit()

◆ Deserialize() [1/3]

bool EDA_SHAPE::Deserialize ( const google::protobuf::Any & aContainer)
overridevirtualinherited

Deserializes the given protobuf message into this object.

Parameters
aContaineris an Any which should have a concrete type matching this object
Returns
true if unpacking and deserialization succeeded

Reimplemented from SERIALIZABLE.

Reimplemented in PCB_SHAPE, PCB_TABLECELL, PCB_TEXTBOX, SCH_RULE_AREA, SCH_SHAPE, SCH_TABLECELL, and SCH_TEXTBOX.

Definition at line 358 of file eda_shape.cpp.

References Deserialize(), and pcbIUScale.

Referenced by Deserialize(), Deserialize(), PCB_SHAPE::Deserialize(), SCH_RULE_AREA::Deserialize(), SCH_SHAPE::Deserialize(), and operator=().

◆ Deserialize() [2/3]

bool EDA_SHAPE::Deserialize ( const google::protobuf::Any & aContainer,
const EDA_IU_SCALE & aScale )
inherited

Definition at line 461 of file eda_shape.cpp.

References Deserialize().

◆ Deserialize() [3/3]

◆ endEdit()

void EDA_SHAPE::endEdit ( bool aClosed = true)
protectedinherited

◆ EndsSwapped()

bool EDA_SHAPE::EndsSwapped ( ) const
inlineinherited

Have the start and end points been swapped since they were set?

Returns
true if they have.

Definition at line 452 of file eda_shape.h.

References m_endsSwapped.

Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

◆ flip()

◆ GetArcAngle()

◆ GetArcMid()

◆ GetBezierC1()

◆ GetBezierC2()

◆ GetBezierPoints()

◆ GetBotRight()

virtual VECTOR2I EDA_SHAPE::GetBotRight ( ) const
inlinevirtualinherited

◆ getBoundingBox()

◆ getCenter()

◆ GetCornerRadius()

◆ GetCornersInSequence()

◆ getDrawRotation()

virtual EDA_ANGLE EDA_SHAPE::getDrawRotation ( ) const
inlineprotectedvirtualinherited

Reimplemented in PCB_TEXTBOX.

Definition at line 670 of file eda_shape.h.

References ANGLE_0.

◆ GetEffectiveWidth()

◆ GetEllipse()

const ELLIPSE< int > & EDA_SHAPE::GetEllipse ( ) const
inlineinherited

Direct read-only access to the underlying ellipse payload.

Useful for copying into a SHAPE_ELLIPSE when building effective collision shapes.

Definition at line 427 of file eda_shape.h.

References ELLIPSE, and m_ellipse.

◆ GetEllipseCenter()

◆ GetEllipseEndAngle()

◆ GetEllipseMajorRadius()

◆ GetEllipseMinorRadius()

◆ GetEllipseRotation()

◆ GetEllipseStartAngle()

◆ GetEnd()

const VECTOR2I & EDA_SHAPE::GetEnd ( ) const
inlineinherited

Return the ending point of the graphic.

Definition at line 325 of file eda_shape.h.

References m_end.

Referenced by EE_GRID_HELPER::AddConstructionItems(), PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), PAD::AddPrimitive(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), BOARD_CONSTRAINT_ADAPTER::ApplyReferenceValues(), GRAPHICS_CLEANER::areEquivalent(), AssertOutlineValid(), PCB_IO_KICAD_SEXPR_PARSER::bakeTextBoxLib(), BoardItemIntersectable(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), buildCarrier(), buildChainedClosedContour(), BuildConstraintFromItems(), CalcArcAngles(), calcEdit(), KI_TEST::CheckFpShape(), CheckLibSymbolGraphics(), checkNormalizeIsStable(), ConnectBoardShapes(), constraintMemberForEditPoint(), ConstraintShapeAnchors(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), CONVERT_TOOL::CreateLines(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), DRAWING_TOOL::DrawLine(), KI_ARC_EDIT::EditArcEndpointKeepCenter(), editArcEndpointKeepTangent(), extensionRay(), GENCAD_EXPORTER::footprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatRect(), free_end(), GetBotRight(), PCB_TEXTBOX::GetBotRight(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), GetEndingTangents(), GetLength(), GetLineEndingEndpoints(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), SCH_TABLECELL::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), GetRectCorners(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), GetSegmentAngle(), GRAPH_CONNECTION::GetShapes(), SCH_TABLECELL::GetShownText(), SCH_TEXTBOX::GetShownText(), CONVERT_TOOL::getStartEndPoints(), PCB_TEXTBOX::GetTopLeft(), GraphicEditArc(), hash_fp_item(), hashShape(), hitTest(), hitTest(), idf_append_shape(), SCH_SHAPE::IsEndPoint(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_EAGLE::loadSymbolRectangle(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), CONVERT_TOOL::makePolysFromChainedSegs(), makeShortenedBodyShapes(), SCH_SCREEN::MarkConnections(), GRAPHICS_CLEANER::mergeRects(), EDIT_TOOL::ModifyLines(), GRAPHIC_EXTEND_PLANNER::NearestEndpoint(), PCB_SHAPE::Normalize(), PCB_TABLE::Normalize(), SCH_SHAPE::Normalize(), SCH_TABLE::Normalize(), PCB_SHAPE::NormalizeForCompare(), ALLEGRO::BOARD_BUILDER::GRAPHIC_KEY_HASH::operator()(), outlineProximity(), SCH_EDITOR_CONTROL::Paste(), GRAPHIC_EXTEND_PLANNER::Plan(), BRDITEMS_PLOTTER::PlotShape(), OUTSET_ROUTINE::ProcessItem(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), LINE_FILLET_ROUTINE::ProcessLinePair(), processShapeSegment(), GRAPHIC_EXTEND_PLANNER::QueryBounds(), CONSTRAINT_OVERLAY::render(), PCB_GRID_HELPER::ResolveSnap(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveRectangle(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), SegmentIntersectsBoard(), PCB_SELECTION_TOOL::selectAllConnectedShapes(), Serialize(), PCB_TEXTBOX::Serialize(), SCH_TEXTBOX::Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), ShapeGetMsgPanelInfo(), PCB_SHAPE::syncLibCoords(), PLOTTER::ThickArc(), AR_MATRIX::TracePcbShape(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), TransformWithLineEndingsToPolygon(), CREEPAGE_OVERLAY::Update(), BEZIER_GEOM_SYNCER::updateBezier(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), RECTANGLE_GEOM_SYNCER::updateCorners(), ARC_GEOM_SYNCER::updateCRAA(), LINE_GEOM_SYNCER::updateEnds(), PCB_POINT_EDITOR::updateItem(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints(), LINE_GEOM_SYNCER::updatePolar(), and ARC_GEOM_SYNCER::updateSME().

◆ GetEndEnding()

◆ GetEndEndingLength()

int EDA_SHAPE::GetEndEndingLength ( ) const
inlineinherited

Definition at line 194 of file eda_shape.h.

References m_endEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetEndEndingStrokeWidth()

int EDA_SHAPE::GetEndEndingStrokeWidth ( ) const
inlineinherited

Definition at line 201 of file eda_shape.h.

References m_endEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetEndEndingStyle()

LINE_ENDING_STYLE EDA_SHAPE::GetEndEndingStyle ( ) const
inlineinherited

Definition at line 186 of file eda_shape.h.

References m_endEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetEndEndingWidth()

int EDA_SHAPE::GetEndEndingWidth ( ) const
inlineinherited

Definition at line 196 of file eda_shape.h.

References m_endEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetEndingTangents()

◆ GetEndX()

int EDA_SHAPE::GetEndX ( ) const
inlineinherited

◆ GetEndY()

int EDA_SHAPE::GetEndY ( ) const
inlineinherited

◆ GetFillColor()

◆ GetFillMode()

◆ GetFillModeProp()

UI_FILL_MODE EDA_SHAPE::GetFillModeProp ( ) const
inherited

Definition at line 718 of file eda_shape.cpp.

References CROSS_HATCH, HATCH, m_fill, NO_FILL, NONE, REVERSE_HATCH, and SOLID.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ getFriendlyName()

wxString EDA_SHAPE::getFriendlyName ( FRAME_T aFrameType) const
protectedinherited

◆ GetHatching()

◆ getHatchingKnockouts()

virtual SHAPE_POLY_SET EDA_SHAPE::getHatchingKnockouts ( ) const
inlineprotectedvirtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 660 of file eda_shape.h.

Referenced by UpdateHatching().

◆ GetHatchLines()

const std::vector< SEG > & EDA_SHAPE::GetHatchLines ( ) const
inherited

◆ GetHatchLineSpacing()

virtual int EDA_SHAPE::GetHatchLineSpacing ( ) const
inlinevirtualinherited

Reimplemented in SCH_SHAPE.

Definition at line 166 of file eda_shape.h.

References GetHatchLineWidth().

Referenced by PCB_SHAPE::getHatchingKnockouts(), and UpdateHatching().

◆ GetHatchLineWidth()

virtual int EDA_SHAPE::GetHatchLineWidth ( ) const
inlinevirtualinherited

Reimplemented in SCH_SHAPE.

Definition at line 165 of file eda_shape.h.

References GetEffectiveWidth().

Referenced by KIGFX::PCB_PAINTER::draw(), GetHatchLineSpacing(), and UpdateHatching().

◆ GetLength()

◆ GetLineColor()

COLOR4D EDA_SHAPE::GetLineColor ( ) const
inlineinherited

Definition at line 172 of file eda_shape.h.

References m_stroke.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetLineEndingEndpoints()

◆ GetLineEndingsBoundingBox()

◆ GetLineStyle()

◆ getMaxError()

virtual int EDA_SHAPE::getMaxError ( ) const
inlineprotectedvirtualinherited

◆ GetPointCount()

int EDA_SHAPE::GetPointCount ( ) const
inherited

◆ GetPolyPoints()

std::vector< VECTOR2I > EDA_SHAPE::GetPolyPoints ( ) const
inherited

Duplicate the polygon outlines into a flat list of VECTOR2I points.

Outlines (and holes) are appended in order; primarily intended for legacy callers that expect explicit point buffers rather than SHAPE objects.

Definition at line 2968 of file eda_shape.cpp.

References SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CPoints(), GetPolyShape(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_LINE_CHAIN::PointCount().

Referenced by AssertOutlineValid(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), SCH_SHAPE::IsEndPoint(), SCH_SCREEN::MarkConnections(), SegmentIntersectsBoard(), and CREEPAGE_GRAPH::TransformEdgeToCreepShapes().

◆ GetPolyShape() [1/2]

SHAPE_POLY_SET & EDA_SHAPE::GetPolyShape ( )
inherited

Definition at line 2989 of file eda_shape.cpp.

References m_poly.

Referenced by PCB_POINT_EDITOR::addCorner(), SCH_POINT_EDITOR::addCorner(), SCH_SHAPE::AddPoint(), PAD::AddPrimitive(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), PCB_IO_KICAD_SEXPR_PARSER::bakeTextBoxLib(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), calcEdit(), PCB_POINT_EDITOR::chamferCorner(), KI_TEST::CheckFpShape(), Compare(), ConstraintPolygonIsModelable(), ConstraintShapeAnchors(), continueEdit(), DIPTRACE_SCH_IMPORT_FIXTURE::CountOpenPolysWithPointCountForRefdes(), DIPTRACE_SCH_IMPORT_FIXTURE::CountSheetGraphicLines(), CONVERT_TOOL::CreateLines(), endEdit(), CADSTAR_SCH_ARCHIVE_LOADER::fixUpLibraryPins(), flip(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::format(), formatPoly(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), GetCornersInSequence(), GetEndingTangents(), PCB_SHAPE::GetFocusPosition(), SCH_SHAPE::GetItemDescription(), GetLength(), PCB_SHAPE::GetLibraryPolyShape(), GetLineEndingEndpoints(), SCH_RULE_AREA::GetMsgPanelInfo(), GetPointCount(), GetPolyPoints(), getPosition(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), hash_fp_item(), hashShape(), hitTest(), hitTest(), idf_append_shape(), IsClosed(), IsPolyShapeValid(), SCH_IO_EAGLE::loadSymbolPolyLine(), SCH_RULE_AREA::MakeEffectiveShapes(), makeEffectiveShapes(), makeShortenedBodyShapes(), EDIT_TOOL::ModifyLines(), move(), PCB_SHAPE::Normalize(), operator==(), PCB_IO_EAGLE::packagePolygon(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), SCH_EDITOR_CONTROL::Paste(), ORCAD_CONVERTER::placeInstance(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), PCB_SHAPE::rebakeFromTransform(), SCHEMATIC::RecalculateConnections(), SCH_RULE_AREA::RefreshContainedItemsAndDirectives(), PCB_POINT_EDITOR::removeCorner(), SCH_POINT_EDITOR::removeCorner(), SCH_POINT_EDITOR::removeCornerCondition(), rotate(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), SCH_IO_KICAD_LEGACY_LIB_CACHE::savePolyLine(), scale(), Serialize(), SetPolyPoints(), SetPolyShape(), ShapeGetMsgPanelInfo(), Similarity(), PCB_SHAPE::syncLibCoords(), TransformShapeToPolygon(), PCB_TEXTBOX::TransformShapeToPolygon(), TransformWithLineEndingsToPolygon(), and UpdateHatching().

◆ GetPolyShape() [2/2]

const SHAPE_POLY_SET & EDA_SHAPE::GetPolyShape ( ) const
inherited

Definition at line 2997 of file eda_shape.cpp.

References m_poly.

◆ getPosition()

VECTOR2I EDA_SHAPE::getPosition ( ) const
protectedinherited

◆ GetRadius()

int EDA_SHAPE::GetRadius ( ) const
inherited

Definition at line 1366 of file eda_shape.cpp.

References ARC, CIRCLE, KiROUND(), m_arcCenter, m_end, m_shape, m_start, radius, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.

Referenced by EE_GRID_HELPER::AddConstructionItems(), PCB_GRID_HELPER::AddConstructionItems(), FEATURES_MANAGER::AddShape(), CREEPAGE_GRAPH::Addshape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), BOARD_CONSTRAINT_ADAPTER::ApplyReferenceValues(), BoardItemIntersectable(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), buildCarrier(), calcEdit(), CheckLibSymbolGraphics(), computeArcBBox(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), editArcEndpointKeepCenterAndRadius(), formatCircle(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), SCH_SHAPE::GetItemDescription(), GetLength(), hash_fp_item(), hashShape(), hitTest(), hitTest(), idf_append_shape(), GRAPHICS_CLEANER::isNullShape(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), CONVERT_TOOL::makePolysFromClosedGraphics(), makeShortenedBodyShapes(), outlineProximity(), ALTIUM_PCB::Parse(), ORCAD_CONVERTER::placeInstance(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), CONSTRAINT_OVERLAY::render(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveCircle(), SegmentIntersectsBoard(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), ShapeGetMsgPanelInfo(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), TransformWithLineEndingsToPolygon(), CREEPAGE_OVERLAY::Update(), ARC_GEOM_SYNCER::updateCRAA(), and UpdateHatching().

◆ GetRectangleHeight()

◆ GetRectangleWidth()

◆ GetRectCorners()

◆ GetSegmentAngle()

EDA_ANGLE EDA_SHAPE::GetSegmentAngle ( ) const
inherited

Definition at line 1432 of file eda_shape.cpp.

References GetEnd(), GetStart(), and RADIANS_T.

◆ GetShape()

SHAPE_T EDA_SHAPE::GetShape ( ) const
inlineinherited

Definition at line 175 of file eda_shape.h.

References m_shape.

Referenced by EE_GRID_HELPER::AddConstructionItems(), PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), SCH_POINT_EDITOR::addCornerCondition(), PCB_IO_IPC2581::addLocationNode(), PCB_IO_IPC2581::addPackage(), SCH_SHAPE::AddPoint(), PAD::AddPrimitive(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), applyGeometry(), GRAPHICS_CLEANER::areEquivalent(), AssertOutlineValid(), PCB_IO_KICAD_SEXPR_PARSER::bakeTextBoxLib(), beginEdit(), BoardItemIntersectable(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), buildCarrier(), BuildCreepageBoardEdges(), buildFilledPolygonFromShapes(), calcEdit(), PCB_POINT_EDITOR::CanAddCorner(), PCB_POINT_EDITOR::CanChamferCorner(), PCB_POINT_EDITOR::chamferCorner(), CHECK_SHAPE_LIBPOS_MIRROR(), KI_TEST::CheckFpShape(), CheckLibSymbolGraphics(), ConnectBoardShapes(), constraintMemberForEditPoint(), ConstraintMemberLabel(), ConstraintPolygonIsModelable(), ConstraintShapeAnchors(), ConstraintShapeVertex(), continueEdit(), DIPTRACE_SCH_IMPORT_FIXTURE::CountFilledPolysForRefdes(), DIPTRACE_SCH_IMPORT_FIXTURE::CountOpenPolysWithPointCountForRefdes(), DIPTRACE_SCH_IMPORT_FIXTURE::CountSheetGraphicLines(), DIPTRACE_SCH_IMPORT_FIXTURE::CountSymbolShapes(), CONVERT_TOOL::CreateLines(), SCH_RULE_AREA::Deserialize(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::EDA_BEZIER_POINT_EDIT_BEHAVIOR(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::EDA_CIRCLE_POINT_EDIT_BEHAVIOR(), EDA_ELLIPSE_POINT_EDIT_BEHAVIOR::EDA_ELLIPSE_POINT_EDIT_BEHAVIOR(), EDA_POLYGON_POINT_EDIT_BEHAVIOR::EDA_POLYGON_POINT_EDIT_BEHAVIOR(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::EDA_SEGMENT_POINT_EDIT_BEHAVIOR(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::EDA_TABLECELL_POINT_EDIT_BEHAVIOR(), endEdit(), PAD_TOOL::explodePad(), CADSTAR_SCH_ARCHIVE_LOADER::fixUpLibraryPins(), EDIT_TOOL::Flip(), GENCAD_EXPORTER::footprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), GetBoardItemWidth(), PCB_SHAPE::GetCorners(), FOOTPRINT::GetCoverageArea(), SCH_SHAPE::GetItemDescription(), SCH_SHAPE::GetMenuImage(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), ODB::GetShapePosition(), CONVERT_TOOL::getStartEndPoints(), GraphicEditShape(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), hash_fp_item(), hashShape(), idf_append_shape(), SCH_SHAPE::IsEndPoint(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), IsGraphicExtendSource(), GRAPHICS_CLEANER::isNullShape(), itemHasEditableCorners(), DSN::SPECCTRA_DB::makeIMAGE(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), PCB_POINT_EDITOR::makePoints(), SCH_POINT_EDITOR::makePointsAndBehavior(), CONVERT_TOOL::makePolysFromClosedGraphics(), SCH_SCREEN::MarkConnections(), GRAPHICS_CLEANER::mergeRects(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), EDIT_TOOL::ModifyLines(), SCH_SHAPE::Normalize(), PCB_POINT_EDITOR::OnSelectionChange(), PCB_VERTEX_EDITOR_PANE::OnSelectionChanged(), ALLEGRO::BOARD_BUILDER::GRAPHIC_KEY_HASH::operator()(), FOOTPRINT::cmp_drawings::operator()(), PCB_SHAPE::cmp_drawings::operator()(), operator==(), outlineProximity(), ALTIUM_PCB::Parse(), SCH_EDITOR_CONTROL::Paste(), ORCAD_CONVERTER::placeInstance(), GRAPHIC_EXTEND_PLANNER::Plan(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), processShapeSegment(), GRAPHIC_EXTEND_PLANNER::QueryBounds(), PCB_POINT_EDITOR::removeCorner(), CONSTRAINT_OVERLAY::render(), PCB_GRID_HELPER::ResolveSnap(), EDIT_TOOL::Rotate(), SCH_ELLIPSE_FIXTURE::RoundTrip(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveCircle(), SCH_IO_KICAD_LEGACY_LIB_CACHE::savePolyLine(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveRectangle(), SCH_IO_KICAD_SEXPR::saveShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::SaveSymbol(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveSymbolDrawItem(), SegmentIntersectsBoard(), CONVERT_TOOL::SegmentToArc(), SelectShapeAutoConstraints(), Serialize(), PCB_SHAPE::SetIsProxyItem(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), PCB_IO_IPC2581::shapeHash(), shapeNeedsUpdate(), Similarity(), PCB_TEXTBOX::syncLibCoords(), AR_MATRIX::TracePcbShape(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), PCB_TEXTBOX::TransformShapeToPolygon(), CREEPAGE_OVERLAY::Update(), PCB_POINT_EDITOR::updateItem(), PCB_CONTROL::UpdateMessagePanel(), and updateSegmentFromGeometryMgr().

◆ GetShortenedBodyPolyPoints()

bool EDA_SHAPE::GetShortenedBodyPolyPoints ( const SHAPE_LINE_CHAIN & aOutline,
int aOutlineIdx,
std::vector< VECTOR2I > & aPoints,
int aLineWidth ) const
inherited

Copy an outline and apply line-ending body shortening when applicable.

Returns
false if the outline is invalid or the line endings consume its body.

Definition at line 4477 of file eda_shape.cpp.

References SHAPE_LINE_CHAIN::CPoints(), SHAPE_LINE_CHAIN::IsClosed(), SHAPE_LINE_CHAIN::PointCount(), and ShortenBodyPolyPoints().

Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::draw(), makeShortenedBodyShapes(), BRDITEMS_PLOTTER::PlotShape(), and TransformWithLineEndingsToPolygon().

◆ GetStart()

const VECTOR2I & EDA_SHAPE::GetStart ( ) const
inlineinherited

Return the starting point of the graphic.

Definition at line 275 of file eda_shape.h.

References m_start.

Referenced by EE_GRID_HELPER::AddConstructionItems(), PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), PCB_IO_IPC2581::addPadStack(), PAD::AddPrimitive(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), BOARD_CONSTRAINT_ADAPTER::ApplyReferenceValues(), GRAPHICS_CLEANER::areEquivalent(), AssertOutlineValid(), PCB_IO_KICAD_SEXPR_PARSER::bakeTextBoxLib(), BoardItemIntersectable(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), buildCarrier(), buildChainedClosedContour(), BuildConstraintFromItems(), CalcArcAngles(), calcEdit(), CHECK_ALL_COINCIDENT(), KI_TEST::CheckFpShape(), checkNormalizeIsStable(), ConnectBoardShapes(), constraintMemberForEditPoint(), ConstraintShapeAnchors(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), CONVERT_TOOL::CreateLines(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KI_ARC_EDIT::EditArcEndpointKeepCenter(), editArcEndpointKeepCenterAndRadius(), editArcEndpointKeepTangent(), extensionRay(), GENCAD_EXPORTER::footprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatCircle(), formatRect(), free_end(), PCB_TEXTBOX::GetBotRight(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), GetEndingTangents(), PCB_SHAPE::GetFocusPosition(), GetLength(), GetLineEndingEndpoints(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), SCH_TABLECELL::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), GetRectCorners(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), GetSegmentAngle(), GRAPH_CONNECTION::GetShapes(), SCH_TABLECELL::GetShownText(), SCH_TEXTBOX::GetShownText(), CONVERT_TOOL::getStartEndPoints(), GetTopLeft(), PCB_TEXTBOX::GetTopLeft(), GraphicEditArc(), hash_fp_item(), hashShape(), hitTest(), hitTest(), idf_append_shape(), SCH_SHAPE::IsEndPoint(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), CONVERT_TOOL::makePolysFromChainedSegs(), makeShortenedBodyShapes(), SCH_SCREEN::MarkConnections(), GRAPHICS_CLEANER::mergeRects(), EDIT_TOOL::ModifyLines(), GRAPHIC_EXTEND_PLANNER::NearestEndpoint(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), ALLEGRO::BOARD_BUILDER::GRAPHIC_KEY_HASH::operator()(), outlineProximity(), SCH_IO_ALTIUM::ParseEllipse(), SCH_EDITOR_CONTROL::Paste(), GRAPHIC_EXTEND_PLANNER::Plan(), BRDITEMS_PLOTTER::PlotPcbTarget(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), LINE_FILLET_ROUTINE::ProcessLinePair(), processShapeSegment(), GRAPHIC_EXTEND_PLANNER::QueryBounds(), CONSTRAINT_OVERLAY::render(), PCB_GRID_HELPER::ResolveSnap(), rotate(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), SegmentIntersectsBoard(), PCB_SELECTION_TOOL::selectAllConnectedShapes(), Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), ShapeGetMsgPanelInfo(), PCB_SHAPE::syncLibCoords(), PLOTTER::ThickArc(), AR_MATRIX::TracePcbShape(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), TransformWithLineEndingsToPolygon(), CREEPAGE_OVERLAY::Update(), BEZIER_GEOM_SYNCER::updateBezier(), RECTANGLE_GEOM_SYNCER::updateCorners(), RECTANGLE_GEOM_SYNCER::updateCornerSize(), ARC_GEOM_SYNCER::updateCRAA(), ARC_GEOM_SYNCER::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), PCB_POINT_EDITOR::updateItem(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().

◆ GetStartEnding()

◆ GetStartEndingLength()

int EDA_SHAPE::GetStartEndingLength ( ) const
inlineinherited

Definition at line 189 of file eda_shape.h.

References m_startEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetStartEndingStrokeWidth()

int EDA_SHAPE::GetStartEndingStrokeWidth ( ) const
inlineinherited

Definition at line 199 of file eda_shape.h.

References m_startEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetStartEndingStyle()

LINE_ENDING_STYLE EDA_SHAPE::GetStartEndingStyle ( ) const
inlineinherited

Definition at line 183 of file eda_shape.h.

References m_startEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetStartEndingWidth()

int EDA_SHAPE::GetStartEndingWidth ( ) const
inlineinherited

Definition at line 191 of file eda_shape.h.

References m_startEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ GetStartX()

◆ GetStartY()

◆ GetTopLeft()

virtual VECTOR2I EDA_SHAPE::GetTopLeft ( ) const
inlinevirtualinherited

◆ GetWidth()

◆ hatching()

SHAPE_POLY_SET & EDA_SHAPE::hatching ( ) const
protectedinherited

Definition at line 753 of file eda_shape.cpp.

References m_hatchingCache.

Referenced by UpdateHatching().

◆ hatchLines()

std::vector< SEG > & EDA_SHAPE::hatchLines ( ) const
protectedinherited

Definition at line 762 of file eda_shape.cpp.

References m_hatchingCache.

Referenced by UpdateHatching().

◆ hitTest() [1/3]

◆ hitTest() [2/3]

bool EDA_SHAPE::hitTest ( const SHAPE_LINE_CHAIN & aPoly,
bool aContained ) const
protectedinherited

◆ hitTest() [3/3]

◆ IsAnyFill()

bool EDA_SHAPE::IsAnyFill ( ) const
inlineinherited

◆ IsClockwiseArc()

bool EDA_SHAPE::IsClockwiseArc ( ) const
inherited

◆ IsClosed()

◆ IsFilledForHitTesting()

virtual bool EDA_SHAPE::IsFilledForHitTesting ( ) const
inlinevirtualinherited

Reimplemented in PCB_TABLECELL, SCH_RULE_AREA, and SCH_TABLECELL.

Definition at line 137 of file eda_shape.h.

References IsSolidFill().

Referenced by SCH_SELECTION_TOOL::GuessSelectionCandidates(), hitTest(), and makeEffectiveShapes().

◆ IsHatchedFill()

◆ isMoving()

virtual bool EDA_SHAPE::isMoving ( ) const
inlineprotectedvirtualinherited

Reimplemented in PCB_SHAPE, and SCH_SHAPE.

Definition at line 694 of file eda_shape.h.

Referenced by UpdateHatching().

◆ IsPolyShapeValid()

bool EDA_SHAPE::IsPolyShapeValid ( ) const
inherited

◆ IsProxyItem()

virtual bool EDA_SHAPE::IsProxyItem ( ) const
inlinevirtualinherited

◆ IsSolidFill()

◆ MakeEffectiveShapes()

virtual std::vector< SHAPE * > EDA_SHAPE::MakeEffectiveShapes ( bool aEdgeOnly = false) const
inlinevirtualinherited

Make a set of SHAPE objects representing the EDA_SHAPE.

Caller owns the objects.

Parameters
aEdgeOnlyindicates only edges should be generated (even if 0 width), and no fill shapes.

Reimplemented in SCH_RULE_AREA, and SCH_SHAPE.

Definition at line 549 of file eda_shape.h.

References makeEffectiveShapes().

Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::draw(), hitTest(), MakeEffectiveShapesForStroking(), and DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run().

◆ makeEffectiveShapes()

std::vector< SHAPE * > EDA_SHAPE::makeEffectiveShapes ( bool aEdgeOnly,
bool aLineChainOnly = false,
bool aHittesting = false ) const
protectedinherited

◆ MakeEffectiveShapesForHitTesting()

virtual std::vector< SHAPE * > EDA_SHAPE::MakeEffectiveShapesForHitTesting ( ) const
inlinevirtualinherited

◆ MakeEffectiveShapesForStroking()

std::vector< SHAPE * > EDA_SHAPE::MakeEffectiveShapesForStroking ( int aLineWidth = -1) const
inherited

Make a set of SHAPE objects to hand to STROKE_PARAMS::Stroke().

A Bezier comes back as one SHAPE_LINE_CHAIN and an ellipse as one SHAPE_ELLIPSE, so the pattern runs continuously along the curve instead of restarting at every point of its polyline approximation. Every other shape comes from MakeEffectiveShapes(), edges only.

If the shape has line endings that consume part of the body, the body is shortened accordingly (a shortened Bezier still comes back as one SHAPE_LINE_CHAIN).

Caller owns the objects.

Parameters
aLineWidthis the width used to size the line endings; -1 uses GetEffectiveWidth() (callers whose width is resolved externally, e.g. by render settings, must pass it explicitly).

Definition at line 2299 of file eda_shape.cpp.

References ARC, BEZIER, buildBezierToSegmentsPointsList(), buildShapeEllipse(), ELLIPSE, ELLIPSE_ARC, GetEffectiveWidth(), getMaxError(), m_endEnding, m_shape, m_startEnding, MakeEffectiveShapes(), makeShortenedBodyShapes(), POLY, SEGMENT, and ShortenedBezierPolyline().

Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), and BRDITEMS_PLOTTER::PlotShape().

◆ MakeEffectiveShapesWithLineEndings()

std::vector< SHAPE * > EDA_SHAPE::MakeEffectiveShapesWithLineEndings ( int aLineWidth) const
inherited

Make effective geometry for the shape body shortened for line endings plus the line-ending geometry itself.

Caller owns the objects.

Definition at line 2694 of file eda_shape.cpp.

References MakeLineEndingEffectiveShapes(), and makeShortenedBodyShapes().

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PCB_SHAPE::GetEffectiveShape(), SCH_LINE::HitTest(), SCH_LINE::HitTest(), SCH_LINE::HitTest(), hitTest(), hitTest(), hitTest(), and PNS_KICAD_IFACE_BASE::syncGraphicalItem().

◆ MakeLineEndingEffectiveShapes()

std::vector< SHAPE * > EDA_SHAPE::MakeLineEndingEffectiveShapes ( int aLineWidth) const
inherited

Make the line-ending geometry associated with this shape.

Caller owns the objects.

Definition at line 2573 of file eda_shape.cpp.

References addLineEndingEffectiveShapes(), GetEndingTangents(), GetLineEndingEndpoints(), hasLineEnding(), m_endEnding, and m_startEnding.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and MakeEffectiveShapesWithLineEndings().

◆ makeShortenedBodyShapes()

std::vector< SHAPE * > EDA_SHAPE::makeShortenedBodyShapes ( int aLineWidth,
bool aEdgeOnly = false ) const
protectedinherited

◆ move()

◆ operator==()

◆ RebuildBezierToSegmentsPointsList() [1/2]

void EDA_SHAPE::RebuildBezierToSegmentsPointsList ( )
inlineinherited

◆ RebuildBezierToSegmentsPointsList() [2/2]

void EDA_SHAPE::RebuildBezierToSegmentsPointsList ( int aMaxError)
inherited

◆ recalcEllipseArcEndpoints()

void EDA_SHAPE::recalcEllipseArcEndpoints ( )
protectedinherited

When m_shape == ELLIPSE_ARC, recompute m_start/m_end from m_ellipse.

No-op for other shapes.

Definition at line 1238 of file eda_shape.cpp.

References ELLIPSE, ELLIPSE_ARC, KiROUND(), m_arcCenter, m_editState, m_ellipse, m_end, m_shape, and m_start.

Referenced by endEdit(), flip(), rotate(), scale(), SetCenter(), SetEllipseCenter(), SetEllipseEndAngle(), SetEllipseMajorRadius(), SetEllipseMinorRadius(), SetEllipseRotation(), and SetEllipseStartAngle().

◆ rotate()

◆ scale()

◆ Serialize() [1/3]

void EDA_SHAPE::Serialize ( google::protobuf::Any & aContainer) const
overridevirtualinherited

Serializes this object to the given Any message.

The Any message's concrete type will be specific to the object in question.

Parameters
aContainerwill be filled with a message describing this object

Reimplemented from SERIALIZABLE.

Reimplemented in PCB_SHAPE, PCB_TABLECELL, PCB_TEXTBOX, SCH_RULE_AREA, SCH_SHAPE, SCH_TABLECELL, and SCH_TEXTBOX.

Definition at line 242 of file eda_shape.cpp.

References pcbIUScale, and Serialize().

Referenced by API_HANDLER_COMMON::handleGetTextAsShapes(), operator=(), Serialize(), Serialize(), PCB_SHAPE::Serialize(), SCH_RULE_AREA::Serialize(), and SCH_SHAPE::Serialize().

◆ Serialize() [2/3]

void EDA_SHAPE::Serialize ( google::protobuf::Any & aContainer,
const EDA_IU_SCALE & aScale ) const
inherited

Definition at line 350 of file eda_shape.cpp.

References Serialize().

◆ Serialize() [3/3]

◆ SetArcAngle()

virtual void EDA_SHAPE::SetArcAngle ( const EDA_ANGLE & aAngle)
inlinevirtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 441 of file eda_shape.h.

References SetArcAngleAndEnd().

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), and PCB_SHAPE::SetArcAngle().

◆ SetArcAngleAndEnd()

void EDA_SHAPE::SetArcAngleAndEnd ( const EDA_ANGLE & aAngle,
bool aCheckNegativeAngle = false )
inherited

Set the end point from the angle center and start.

aAngle is:

  • clockwise in right-down coordinate system
  • counter-clockwise in right-up (libedit) coordinate system.

Definition at line 1469 of file eda_shape.cpp.

References ANGLE_0, m_arcCenter, m_end, m_endsSwapped, m_start, EDA_ANGLE::Normalize720(), and RotatePoint().

Referenced by BOOST_AUTO_TEST_CASE(), SCH_IO_EAGLE::loadSymbolWire(), ARC_DRAW_BEHAVIOR::OnProperties(), SetArcAngle(), and PCB_SHAPE::SetArcAngleAndEnd().

◆ SetArcGeometry()

void EDA_SHAPE::SetArcGeometry ( const VECTOR2I & aStart,
const VECTOR2I & aMid,
const VECTOR2I & aEnd )
inherited

◆ SetBezierC1()

◆ SetBezierC2()

◆ SetBottom()

virtual void EDA_SHAPE::SetBottom ( int val)
inlinevirtualinherited

Reimplemented in PCB_TEXTBOX.

Definition at line 362 of file eda_shape.h.

References SetEndY().

Referenced by BOOST_FIXTURE_TEST_CASE().

◆ SetCachedArcData()

void EDA_SHAPE::SetCachedArcData ( const VECTOR2I & aStart,
const VECTOR2I & aMid,
const VECTOR2I & aEnd,
const VECTOR2I & aCenter )
inherited

Set the data used for mid point caching.

If the controlling points remain constant, then we keep the midpoint the same as it was when read in. This minimizes VCS churn.

Parameters
aStartCached start point.
aMidCached mid point.
aEndCached end point.
aCenterCalculated center point using the preceeding three.

Definition at line 1392 of file eda_shape.cpp.

References m_arcMidData.

Referenced by SetArcGeometry().

◆ SetCenter()

◆ SetCenterX()

void EDA_SHAPE::SetCenterX ( int x)
inlineinherited

Definition at line 311 of file eda_shape.h.

References m_end, m_hatchingDirty, m_start, SetEnd(), SetStart(), and VECTOR2< T >::x.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ SetCenterY()

void EDA_SHAPE::SetCenterY ( int y)
inlineinherited

Definition at line 300 of file eda_shape.h.

References m_end, m_hatchingDirty, m_start, SetEnd(), SetStart(), and VECTOR2< T >::y.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ SetCornerRadius()

◆ setEditState()

void EDA_SHAPE::setEditState ( int aState)
inlineprotectedinherited

Definition at line 692 of file eda_shape.h.

References m_editState.

Referenced by PCB_SHAPE::SetEditState(), and SCH_SHAPE::SetEditState().

◆ SetEllipseCenter()

◆ SetEllipseEndAngle()

◆ SetEllipseMajorRadius()

◆ SetEllipseMinorRadius()

◆ SetEllipseRotation()

◆ SetEllipseStartAngle()

◆ SetEnd()

virtual void EDA_SHAPE::SetEnd ( const VECTOR2I & aEnd)
inlinevirtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 329 of file eda_shape.h.

References m_end, m_endsSwapped, and m_hatchingDirty.

Referenced by SCH_IO_ALTIUM::AddLibTextBox(), SCH_IO_GEDA::addSymbolGraphic(), ORCAD_CONVERTER::addSymbolPrimitive(), SCH_IO_ALTIUM::AddTextBox(), appendGraphicPrimitive(), ARC_DRAW_BEHAVIOR::ApplyToShape(), BEZIER_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::BuildKiCadPowerSymbol(), calcEdit(), SCH_EDIT_TOOL::ChangeTextType(), SCH_EDIT_TABLE_TOOL::copyCell(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateCircle(), SCH_IO_GEDA::createFallbackSymbol(), SCH_IO_LTSPICE_PARSER::CreateRect(), SCH_IO_LTSPICE_PARSER::CreateRect(), SCH_IO_LTSPICE_PARSER::CreateRect(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::createShape(), DIPTRACE::SCH_PARSER::createSheetShapes(), Deserialize(), SCH_TEXTBOX::Deserialize(), SCH_DRAWING_TOOLS::DrawTable(), KI_ARC_EDIT::EditArcEndpointKeepCenter(), editArcEndpointKeepCenterAndRadius(), editArcEndpointKeepTangent(), KI_ARC_EDIT::EditArcMidKeepCenter(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), CADSTAR_SCH_ARCHIVE_LOADER::loadLibrarySymbolShapeVertices(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect(), SCH_IO_EAGLE::loadSymbolRectangle(), SCH_TABLE::Normalize(), PCB_TEXTBOX::OnFootprintTransformed(), SCH_IO_ALTIUM::ParseArc(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), SCH_IO_ALTIUM::ParseRectangle(), SCH_IO_ALTIUM::ParseRoundRectangle(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), ORCAD_CONVERTER::placeGraphics(), SCH_SHAPE::Plot(), SCH_TEXTBOX::Plot(), PCB_SHAPE::rebakeFromTransform(), PCB_TEXTBOX::Rotate(), SetCenter(), SetCenterX(), SetCenterY(), PCB_SHAPE::SetEnd(), SetEndX(), SetEndY(), SetRadius(), and DIALOG_TEXT_PROPERTIES::TransferDataFromWindow().

◆ SetEndEnding()

void EDA_SHAPE::SetEndEnding ( const LINE_ENDING & aEnding)
inlineinherited

Definition at line 181 of file eda_shape.h.

References m_endEnding.

◆ SetEndEndingLength()

◆ SetEndEndingStrokeWidth()

void EDA_SHAPE::SetEndEndingStrokeWidth ( int aWidth)
inlineinherited

Definition at line 202 of file eda_shape.h.

References m_endEnding.

Referenced by BOOST_AUTO_TEST_CASE(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ SetEndEndingStyle()

◆ SetEndEndingWidth()

◆ SetEndX()

void EDA_SHAPE::SetEndX ( int aX)
inlineinherited

◆ SetEndY()

void EDA_SHAPE::SetEndY ( int aY)
inlineinherited

◆ SetFillColor()

◆ SetFilled()

◆ setFilled()

virtual void EDA_SHAPE::setFilled ( bool aFlag)
inlineprotectedvirtualinherited

Reimplemented in SCH_SHAPE.

Definition at line 655 of file eda_shape.h.

References FILLED_SHAPE, m_fill, and NO_FILL.

Referenced by SetFilled().

◆ SetFillMode()

void EDA_SHAPE::SetFillMode ( FILL_T aFill)
inherited

Definition at line 698 of file eda_shape.cpp.

References m_fill, and m_hatchingDirty.

Referenced by SCH_IO_ALTIUM::AddLibTextBox(), addOrcadSymbolHatch(), ORCAD_CONVERTER::addSymbolArc(), SCH_IO_GEDA::addSymbolGraphic(), ORCAD_CONVERTER::addSymbolPin(), ORCAD_CONVERTER::addSymbolPrimitive(), SCH_IO_ALTIUM::AddTextBox(), appendGraphicPrimitive(), applyGeometry(), BOOST_AUTO_TEST_CASE(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::BuildKiCadPowerSymbol(), PANEL_EESCHEMA_COLOR_SETTINGS::createPreviewItems(), SCH_IO_LTSPICE_PARSER::CreateRect(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::createShape(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::createShapes(), Deserialize(), SCH_TEXTBOX::Deserialize(), CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarShape(), fixupSchFillMode(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadPolyLine(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect(), SCH_IO_EAGLE::loadSymbolPolyLine(), SCH_IO_EAGLE::loadSymbolRectangle(), SCH_IO_EAGLE::loadSymbolWire(), CADSTAR_SCH_ARCHIVE_LOADER::loadSymdef(), CONVERT_TOOL::makePolysFromClosedGraphics(), OrcadHatchLines(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), ORCAD_CONVERTER::placeGraphics(), ORCAD_CONVERTER::placeHierarchicalBlockPinFill(), SCH_IO_PCAD::populateScreen(), PAD::Recombine(), SCH_SHAPE_DESC::SCH_SHAPE_DESC(), SetFillModeProp(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), and DIALOG_TEXT_PROPERTIES::TransferDataFromWindow().

◆ SetFillModeProp()

void EDA_SHAPE::SetFillModeProp ( UI_FILL_MODE aFill)
inherited

Definition at line 705 of file eda_shape.cpp.

References CROSS_HATCH, HATCH, NO_FILL, NONE, REVERSE_HATCH, SetFilled(), and SetFillMode().

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ SetHatchingDirty()

void EDA_SHAPE::SetHatchingDirty ( )
inlineinherited

Definition at line 153 of file eda_shape.h.

References m_hatchingDirty.

Referenced by BOOST_AUTO_TEST_CASE(), and SCH_POINT_EDITOR::removeCorner().

◆ SetIsProxyItem()

virtual void EDA_SHAPE::SetIsProxyItem ( bool aIsProxy = true)
inlinevirtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 116 of file eda_shape.h.

References m_proxyItem.

◆ SetLeft()

virtual void EDA_SHAPE::SetLeft ( int val)
inlinevirtualinherited

Reimplemented in PCB_TEXTBOX.

Definition at line 360 of file eda_shape.h.

References SetStartX().

◆ SetLineColor()

void EDA_SHAPE::SetLineColor ( const COLOR4D & aColor)
inlineinherited

Definition at line 171 of file eda_shape.h.

References m_stroke.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), and SCH_SCREEN::Plot().

◆ SetLineStyle()

void EDA_SHAPE::SetLineStyle ( const LINE_STYLE aStyle)
inherited

◆ SetPolyPoints()

◆ SetPolyShape()

virtual void EDA_SHAPE::SetPolyShape ( const SHAPE_POLY_SET & aShape)
inlinevirtualinherited

◆ setPosition()

void EDA_SHAPE::setPosition ( const VECTOR2I & aPos)
protectedinherited

Definition at line 520 of file eda_shape.cpp.

References getPosition(), and move.

Referenced by PCB_SHAPE::SetPosition(), and SCH_SHAPE::SetPosition().

◆ SetRadius()

void EDA_SHAPE::SetRadius ( int aX)
inlineinherited

◆ SetRectangle()

void EDA_SHAPE::SetRectangle ( const long long int & aHeight,
const long long int & aWidth )
inherited

◆ SetRectangleHeight()

void EDA_SHAPE::SetRectangleHeight ( const int & aHeight)
inherited

◆ SetRectangleWidth()

void EDA_SHAPE::SetRectangleWidth ( const int & aWidth)
inherited

◆ SetRight()

virtual void EDA_SHAPE::SetRight ( int val)
inlinevirtualinherited

◆ SetShape()

virtual void EDA_SHAPE::SetShape ( SHAPE_T aShape)
inlinevirtualinherited

◆ SetStart()

virtual void EDA_SHAPE::SetStart ( const VECTOR2I & aStart)
inlinevirtualinherited

Reimplemented in PCB_SHAPE.

Definition at line 279 of file eda_shape.h.

References m_endsSwapped, m_hatchingDirty, and m_start.

Referenced by SCH_IO_ALTIUM::AddLibTextBox(), SCH_IO_GEDA::addSymbolGraphic(), SCH_IO_ALTIUM::AddTextBox(), ARC_DRAW_BEHAVIOR::ApplyToShape(), BEZIER_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::BuildKiCadPowerSymbol(), calcEdit(), SCH_EDIT_TABLE_TOOL::copyCell(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_GEDA::createFallbackSymbol(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::createShape(), Deserialize(), KI_ARC_EDIT::EditArcEndpointKeepCenter(), editArcEndpointKeepCenterAndRadius(), editArcEndpointKeepTangent(), KI_ARC_EDIT::EditArcMidKeepCenter(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), CADSTAR_SCH_ARCHIVE_LOADER::loadLibrarySymbolShapeVertices(), SCH_IO_EAGLE::loadSymbolWire(), PCB_TEXTBOX::OnFootprintTransformed(), SCH_IO_ALTIUM::ParseArc(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), SCH_SHAPE::Plot(), SCH_TEXTBOX::Plot(), PCB_SHAPE::rebakeFromTransform(), PCB_TEXTBOX::Rotate(), SetCenter(), SetCenterX(), SetCenterY(), PCB_SHAPE::SetStart(), SetStartX(), and SetStartY().

◆ SetStartEnding()

void EDA_SHAPE::SetStartEnding ( const LINE_ENDING & aEnding)
inlineinherited

Definition at line 178 of file eda_shape.h.

References m_startEnding.

◆ SetStartEndingLength()

◆ SetStartEndingStrokeWidth()

void EDA_SHAPE::SetStartEndingStrokeWidth ( int aWidth)
inlineinherited

Definition at line 200 of file eda_shape.h.

References m_startEnding.

Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().

◆ SetStartEndingStyle()

◆ SetStartEndingWidth()

◆ SetStartX()

void EDA_SHAPE::SetStartX ( int x)
inlineinherited

◆ SetStartY()

void EDA_SHAPE::SetStartY ( int y)
inlineinherited

◆ SetTop()

virtual void EDA_SHAPE::SetTop ( int val)
inlinevirtualinherited

Reimplemented in PCB_TEXTBOX.

Definition at line 359 of file eda_shape.h.

References SetStartY().

Referenced by BOOST_FIXTURE_TEST_CASE(), and BOOST_FIXTURE_TEST_CASE().

◆ SetWidth()

◆ SHAPE_T_asString()

◆ ShapeGetMsgPanelInfo()

◆ ShortenArcForEndings()

bool EDA_SHAPE::ShortenArcForEndings ( EDA_ANGLE & aStartAngle,
EDA_ANGLE & aArcAngle,
double aRadius,
int aLineWidth ) const
inherited

◆ ShortenBodyPolyPoints()

bool EDA_SHAPE::ShortenBodyPolyPoints ( std::vector< VECTOR2I > & aPoints,
bool aClosed,
int aOutlineIdx,
int aLineWidth ) const
inherited

Apply line-ending body shortening to copied/generated polyline points.

Line endings belong to the first open outline only. Other outlines are returned unchanged.

Returns
false if the outline is invalid or the line endings consume its body.

Definition at line 4451 of file eda_shape.cpp.

References ShortenPolyForEndings().

Referenced by GetShortenedBodyPolyPoints(), and SCH_SHAPE::Plot().

◆ ShortenedBezierCurve()

std::optional< BEZIER< double > > EDA_SHAPE::ShortenedBezierCurve ( int aLineWidth) const
inherited

Return the cubic Bezier curve shortened for line endings.

The shortening distance is mapped onto the source curve using a fixed-cost numerical arc-length estimator, then the curve is subdivided with de Casteljau so curve-capable backends can keep a Bezier.

Definition at line 4352 of file eda_shape.cpp.

References BEZIER, bezierLength(), findBezierTAtLength(), m_bezierC1, m_bezierC2, m_end, m_endEnding, m_shape, m_start, and m_startEnding.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::draw(), GetEndingTangents(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and ShortenedBezierPolyline().

◆ ShortenedBezierPolyline()

std::vector< VECTOR2D > EDA_SHAPE::ShortenedBezierPolyline ( int aLineWidth) const
inherited

◆ ShortenPolyForEndings()

bool EDA_SHAPE::ShortenPolyForEndings ( VECTOR2D & aFirst,
VECTOR2D & aLast,
const VECTOR2D & aSecond,
const VECTOR2D & aPenultimate,
int aLineWidth ) const
inherited

◆ ShortenSegmentForEndings()

bool EDA_SHAPE::ShortenSegmentForEndings ( VECTOR2I & aStart,
VECTOR2I & aEnd,
const LINE_ENDING & aStartEnding,
const LINE_ENDING & aEndEnding,
int aLineWidth )
staticinherited

Shorten a segment body for line endings.

Static so SCH_LINE (which doesn't inherit EDA_SHAPE) can use it too.

Returns
false if the line endings consume the whole segment body.

Definition at line 4199 of file eda_shape.cpp.

References delta, LINE_ENDING::GetShortenDepth(), KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), makeShortenedBodyShapes(), SCH_LINE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformWithLineEndingsToPolygon().

◆ ShowShape()

wxString EDA_SHAPE::ShowShape ( ) const
inherited

Definition at line 472 of file eda_shape.cpp.

References _, ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, IsProxyItem(), m_shape, POLY, RECTANGLE, and SEGMENT.

Referenced by operator=().

◆ Similarity()

◆ SwapShape()

◆ TransformLineEndingsToPolygon()

void EDA_SHAPE::TransformLineEndingsToPolygon ( SHAPE_POLY_SET & aBuffer,
int aClearance,
int aError,
ERROR_LOC aErrorLoc,
int aLineWidth ) const
inherited

Append only the line-ending geometry associated with this shape to a polygon set.

Definition at line 2776 of file eda_shape.cpp.

References addLineEndingPolygon(), GetEndingTangents(), GetLineEndingEndpoints(), hasLineEnding(), m_endEnding, and m_startEnding.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and TransformWithLineEndingsToPolygon().

◆ TransformShapeToPolygon()

void EDA_SHAPE::TransformShapeToPolygon ( SHAPE_POLY_SET & aBuffer,
int aClearance,
int aError,
ERROR_LOC aErrorLoc,
bool ignoreLineWidth = false,
bool includeFill = false ) const
inherited

Convert the shape to a closed polygon.

Circles and arcs are approximated by segments.

Parameters
aBufferis a buffer to store the polygon.
aClearanceis the clearance around the pad.
aErroris the maximum deviation from a true arc.
aErrorLocwhether any approximation error should be placed inside or outside
ignoreLineWidthis used for edge cut items where the line width is only for visualization

Definition at line 3538 of file eda_shape.cpp.

References SEG::A, std::abs(), SHAPE_POLY_SET::AddOutline(), ANGLE_0, SHAPE_POLY_SET::Append(), ARC, SHAPE_LINE_CHAIN::Arc(), SHAPE_LINE_CHAIN::ArcIndex(), SEG::B, BEZIER, buildShapeEllipse(), chain, CIRCLE, SHAPE_ELLIPSE::ConvertToPolyline(), ELLIPSE, ELLIPSE_ARC, ERROR_OUTSIDE, GetArcMid(), SHAPE_ARC::GetArcMid(), GetBezierC1(), GetBezierC2(), getBoundingBox(), BOX2< Vec >::GetCenter(), getCenter(), GetCornerRadius(), GetEnd(), GetHatching(), SHAPE_ARC::GetP0(), SHAPE_ARC::GetP1(), SHAPE_LINE_CHAIN::GetPoint(), SHAPE_LINE_CHAIN::GetPointCount(), BEZIER_POLY::GetPoly(), GetPolyShape(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), SHAPE_LINE_CHAIN::GetSegment(), GetStart(), GetWidth(), SHAPE_POLY_SET::Inflate(), SHAPE_LINE_CHAIN::IsArcSegment(), IsHatchedFill(), IsPolyShapeValid(), IsProxyItem(), IsSolidFill(), m_shape, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), POLY, RECTANGLE, ROUND_ALL_CORNERS, SEGMENT, SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_LINE_CHAIN::SetClosed(), SHAPE_T_asString(), TransformArcToPolygon(), TransformCircleToPolygon(), TransformOvalToPolygon(), TransformRingToPolygon(), TransformRoundChamferedRectToPolygon(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), OrcadHatchLines(), PCB_SHAPE::TransformShapeToPolygon(), PCB_SHAPE::TransformShapeToPolySet(), and TransformWithLineEndingsToPolygon().

◆ TransformWithLineEndingsToPolygon()

◆ UpdateHatching()

void EDA_SHAPE::UpdateHatching ( ) const
virtualinherited

Reimplemented in PCB_SHAPE, and SCH_SHAPE.

Definition at line 771 of file eda_shape.cpp.

References SHAPE_POLY_SET::AddOutline(), ANGLE_45, SHAPE_LINE_CHAIN::Append(), ARC, SHAPE_POLY_SET::BBox(), BEZIER, SHAPE_POLY_SET::BooleanSubtract(), buildShapeEllipse(), chain, CIRCLE, SHAPE_POLY_SET::ClearArcs(), SHAPE_POLY_SET::CloneDropTriangulation(), SHAPE_ELLIPSE::ConvertToPolyline(), CROSS_HATCH, ELLIPSE, ELLIPSE_ARC, ERROR_INSIDE, SHAPE_POLY_SET::Fracture(), SHAPE_POLY_SET::GenerateHatchLines(), BOX2< Vec >::GetBottom(), getCenter(), GetCornerRadius(), GetFillMode(), getHatchingKnockouts(), GetHatchLineSpacing(), GetHatchLineWidth(), BOX2< Vec >::GetHeight(), getMaxError(), GetPolyShape(), getPosition(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetWidth(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), HATCH, hatching(), hatchLines(), SHAPE_LINE_CHAIN::IsClosed(), SHAPE_POLY_SET::IsEmpty(), isMoving(), m_hatchingDirty, m_shape, SHAPE_LINE_CHAIN::Move(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, RECTANGLE, SHAPE_POLY_SET::RemoveAllContours(), REVERSE_HATCH, SHAPE_POLY_SET::Rotate(), SEGMENT, SHAPE_LINE_CHAIN::SetClosed(), SHAPE_T_asString(), TransformCircleToPolygon(), TransformOvalToPolygon(), ROUNDRECT::TransformToPolygon(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by GetHatching(), GetHatchLines(), PCB_SHAPE::UpdateHatching(), and SCH_SHAPE::UpdateHatching().

Member Data Documentation

◆ m_arcCenter

◆ m_arcMidData

ARC_MID EDA_SHAPE::m_arcMidData
protectedinherited

◆ m_bezierC1

◆ m_bezierC2

◆ m_bezierPoints

◆ m_cornerRadius

int EDA_SHAPE::m_cornerRadius
protectedinherited

◆ m_editState

◆ m_ellipse

◆ m_end

◆ m_endEnding

◆ m_endsSwapped

bool EDA_SHAPE::m_endsSwapped
protectedinherited

◆ m_fill

◆ m_fillColor

COLOR4D EDA_SHAPE::m_fillColor
protectedinherited

◆ m_hatchingCache

std::unique_ptr<EDA_SHAPE_HATCH_CACHE_DATA> EDA_SHAPE::m_hatchingCache
mutableprotectedinherited

Definition at line 740 of file eda_shape.h.

Referenced by GetHatching(), GetHatchLines(), hatching(), hatchLines(), move(), and operator=().

◆ m_hatchingDirty

◆ m_poly

std::unique_ptr<SHAPE_POLY_SET> EDA_SHAPE::m_poly
mutableprotectedinherited

Definition at line 758 of file eda_shape.h.

Referenced by EDA_SHAPE(), GetPolyShape(), GetPolyShape(), operator=(), and SwapShape().

◆ m_proxyItem

◆ m_rectangleHeight

long long int EDA_SHAPE::m_rectangleHeight
protectedinherited

◆ m_rectangleWidth

long long int EDA_SHAPE::m_rectangleWidth
protectedinherited

Definition at line 744 of file eda_shape.h.

Referenced by EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), operator=(), SetRectangle(), and SetRectangleWidth().

◆ m_shape

◆ m_start

◆ m_startEnding

◆ m_stroke


The documentation for this class was generated from the following file: