|
KiCad PCB EDA Suite
|
#include <eda_shape.h>
Public Member Functions | |
| EDA_SHAPE (SHAPE_T aType, int aLineWidth, FILL_T aFill) | |
| EDA_SHAPE (const SHAPE &aShape) | |
| Construct an EDA_SHAPE from an abstract SHAPE geometry. | |
| EDA_SHAPE (const EDA_SHAPE &aOther) | |
| EDA_SHAPE & | operator= (const EDA_SHAPE &aOther) |
| EDA_SHAPE (EDA_SHAPE &&) noexcept=default | |
| EDA_SHAPE & | operator= (EDA_SHAPE &&) noexcept=default |
| virtual | ~EDA_SHAPE () |
| void | SwapShape (EDA_SHAPE *aImage) |
| void | Serialize (google::protobuf::Any &aContainer) const override |
| Serializes this object to the given Any message. | |
| bool | Deserialize (const google::protobuf::Any &aContainer) override |
| Deserializes the given protobuf message into this object. | |
| void | Serialize (google::protobuf::Any &aContainer, const EDA_IU_SCALE &aScale) const |
| bool | Deserialize (const google::protobuf::Any &aContainer, const EDA_IU_SCALE &aScale) |
| void | Serialize (kiapi::common::types::GraphicShape &aOutput, const EDA_IU_SCALE &aScale) const |
| 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_SET & | GetHatching () 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_ENDING & | GetStartEnding () const |
| void | SetStartEnding (const LINE_ENDING &aEnding) |
| const LINE_ENDING & | GetEndEnding () 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< VECTOR2D > | ShortenedBezierPolyline (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 VECTOR2I & | GetStart () 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 VECTOR2I & | GetEnd () 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 VECTOR2I & | GetBezierC1 () const |
| virtual void | SetBezierC2 (const VECTOR2I &aPt) |
| const VECTOR2I & | GetBezierC2 () const |
| virtual void | SetEllipseCenter (const VECTOR2I &aPt) |
| const VECTOR2I & | GetEllipseCenter () 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< VECTOR2I > | GetRectCorners () const |
| virtual std::vector< VECTOR2I > | GetCornersInSequence (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< VECTOR2I > | GetPolyPoints () const |
| Duplicate the polygon outlines into a flat list of VECTOR2I points. | |
| int | GetPointCount () const |
| SHAPE_POLY_SET & | GetPolyShape () |
| const SHAPE_POLY_SET & | GetPolyShape () 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< VECTOR2I > | buildBezierToSegmentsPointsList (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_SET & | hatching () 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_DATA > | m_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< VECTOR2I > | m_bezierPoints |
| ELLIPSE< int > | m_ellipse |
| std::unique_ptr< SHAPE_POLY_SET > | m_poly |
| int | m_editState |
| bool | m_proxyItem |
Definition at line 84 of file eda_shape.h.
Definition at line 56 of file eda_shape.cpp.
References DEFAULT, m_cornerRadius, m_editState, m_endEnding, m_endsSwapped, m_fill, m_fillColor, m_hatchingDirty, m_proxyItem, m_rectangleHeight, m_rectangleWidth, m_shape, m_startEnding, m_stroke, and UNSPECIFIED.
Referenced by Compare(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE_MOCK::EDA_SHAPE_MOCK(), operator=(), operator=(), operator==(), PCB_SHAPE::PCB_SHAPE(), PCB_SHAPE::PCB_SHAPE(), SCH_SHAPE::Plot(), SCH_SHAPE::SCH_SHAPE(), Similarity(), and SwapShape().
| EDA_SHAPE::EDA_SHAPE | ( | const SHAPE & | aShape | ) |
Construct an EDA_SHAPE from an abstract SHAPE geometry.
Definition at line 79 of file eda_shape.cpp.
References DEFAULT, m_cornerRadius, m_editState, m_endEnding, m_endsSwapped, m_fill, m_hatchingDirty, m_proxyItem, m_rectangleHeight, m_rectangleWidth, m_startEnding, m_stroke, SH_ARC, SH_CIRCLE, SH_ELLIPSE, SH_LINE_CHAIN, SH_SEGMENT, SH_SIMPLE, SHAPE_BASE::Type(), and UNSPECIFIED.
| EDA_SHAPE::EDA_SHAPE | ( | const EDA_SHAPE & | aOther | ) |
Definition at line 178 of file eda_shape.cpp.
References EDA_SHAPE(), m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_editState, m_ellipse, m_end, m_endEnding, m_endsSwapped, m_fill, m_fillColor, m_hatchingDirty, m_poly, m_proxyItem, m_rectangleHeight, m_rectangleWidth, m_shape, m_start, m_startEnding, and m_stroke.
|
defaultnoexcept |
References EDA_SHAPE().
|
virtual |
Definition at line 74 of file eda_shape.cpp.
|
protected |
Definition at line 3021 of file eda_shape.cpp.
References ANGLE_0, ANGLE_360, SHAPE_LINE_CHAIN::Append(), ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, getMaxError(), GetPolyShape(), GetShape(), m_editState, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::Outline(), POLY, RebuildBezierToSegmentsPointsList(), RECTANGLE, SEGMENT, SetArcGeometry(), SetBezierC1(), SetBezierC2(), SHAPE_LINE_CHAIN::SetClosed(), SetEllipseCenter(), SetEllipseEndAngle(), SetEllipseMajorRadius(), SetEllipseMinorRadius(), SetEllipseRotation(), SetEllipseStartAngle(), SetEnd(), SetStart(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::BeginEdit(), and SCH_SHAPE::BeginEdit().
|
protected |
Definition at line 1215 of file eda_shape.cpp.
References BEZIER_POLY::GetPoly(), m_bezierC1, m_bezierC2, m_end, and m_start.
Referenced by makeEffectiveShapes(), MakeEffectiveShapesForStroking(), and RebuildBezierToSegmentsPointsList().
|
protected |
Definition at line 1228 of file eda_shape.cpp.
References ELLIPSE_ARC, m_ellipse, and m_shape.
Referenced by getBoundingBox(), GetLength(), hitTest(), hitTest(), makeEffectiveShapes(), MakeEffectiveShapesForStroking(), SCH_SHAPE::Plot(), TransformShapeToPolygon(), and UpdateHatching().
Calc arc start and end angles such that aStartAngle < aEndAngle.
Each may be between -360.0 and 360.0.
Definition at line 1350 of file eda_shape.cpp.
References ANGLE_360, getCenter(), GetEnd(), and GetStart().
Referenced by CREEPAGE_GRAPH::Addshape(), BOARD_ADAPTER::addShape(), computeArcBBox(), KIGFX::PCB_PAINTER::draw(), GetArcAngle(), hitTest(), makeShortenedBodyShapes(), BRDITEMS_PLOTTER::PlotShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SegmentIntersectsBoard(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), and TransformWithLineEndingsToPolygon().
|
protected |
Definition at line 3124 of file eda_shape.cpp.
References std::abs(), ANGLE_0, ANGLE_180, ANGLE_360, ANGLE_90, ARC, BEZIER, center, CIRCLE, EDA_ANGLE::Cos(), VECTOR2< T >::Distance(), ELLIPSE, ELLIPSE_ARC, GetArcAngle(), GetEnd(), getMaxError(), GetPointCount(), GetPolyShape(), GetRadius(), GetShape(), GetStart(), KiROUND(), m_arcCenter, m_editState, m_ellipse, m_end, m_start, SHAPE_POLY_SET::Outline(), POLY, RADIANS_T, radius, RebuildBezierToSegmentsPointsList(), RECTANGLE, SEGMENT, SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetEllipseCenter(), SetEllipseEndAngle(), SetEllipseMajorRadius(), SetEllipseMinorRadius(), SetEllipseRotation(), SetEllipseStartAngle(), SetEnd(), SHAPE_LINE_CHAIN::SetPoint(), SetStart(), SHAPE_T_asString(), EDA_ANGLE::Sin(), sq, VECTOR2< T >::SquaredEuclideanNorm(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PCB_SHAPE::CalcEdit(), and SCH_SHAPE::CalcEdit().
| int EDA_SHAPE::Compare | ( | const EDA_SHAPE * | aOther | ) | const |
Definition at line 3465 of file eda_shape.cpp.
References ARC, EDA_ANGLE::AsTenthsOfADegree(), BEZIER, ELLIPSE< NumericType >::Center, SHAPE_POLY_SET::CVertex(), EDA_SHAPE(), ELLIPSE, ELLIPSE_ARC, ELLIPSE< NumericType >::EndAngle, GetArcMid(), STROKE_PARAMS::GetLineStyle(), GetPolyShape(), STROKE_PARAMS::GetWidth(), m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_ellipse, m_end, m_fill, m_shape, m_start, m_stroke, ELLIPSE< NumericType >::MajorRadius, ELLIPSE< NumericType >::MinorRadius, POLY, RECTANGLE, ELLIPSE< NumericType >::Rotation, ELLIPSE< NumericType >::StartAngle, TEST, TEST_E, TEST_PT, and SHAPE_POLY_SET::TotalVertices().
Referenced by SCH_SHAPE::compare(), and BOARD::cmp_drawings::operator()().
|
protected |
Definition at line 2239 of file eda_shape.cpp.
References ANGLE_0, ANGLE_180, ANGLE_270, ANGLE_90, CalcArcAngles(), GetRadius(), IsAnyFill(), m_arcCenter, m_end, m_start, BOX2< Vec >::Merge(), EDA_ANGLE::Normalize(), radius, and BOX2< Vec >::SetOrigin().
Referenced by getBoundingBox().
|
protected |
Definition at line 3085 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::Append(), ARC, BEZIER, CIRCLE, SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), ELLIPSE, ELLIPSE_ARC, SHAPE_LINE_CHAIN::GetPointCount(), GetPolyShape(), GetShape(), m_editState, SHAPE_POLY_SET::Outline(), POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::ContinueEdit(), and SCH_SHAPE::ContinueEdit().
|
overridevirtual |
Deserializes the given protobuf message into this object.
| aContainer | is an Any which should have a concrete type matching 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 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=().
| bool EDA_SHAPE::Deserialize | ( | const google::protobuf::Any & | aContainer, |
| const EDA_IU_SCALE & | aScale ) |
Definition at line 461 of file eda_shape.cpp.
References Deserialize().
| bool EDA_SHAPE::Deserialize | ( | const kiapi::common::types::GraphicShape & | aInput, |
| const EDA_IU_SCALE & | aScale ) |
Definition at line 364 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, DEGREES_T, ELLIPSE, ELLIPSE_ARC, FromProtoEnum(), getMaxError(), m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_editState, m_end, m_endEnding, m_endsSwapped, m_fillColor, m_proxyItem, m_start, m_startEnding, m_stroke, POLY, RebuildBezierToSegmentsPointsList(), RECTANGLE, SEGMENT, SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetCornerRadius(), SetEllipseCenter(), SetEllipseEndAngle(), SetEllipseMajorRadius(), SetEllipseMinorRadius(), SetEllipseRotation(), SetEllipseStartAngle(), SetEnd(), SetFillColor(), SetFillMode(), SetPolyShape(), SetShape(), SetStart(), kiapi::common::UnpackColor(), kiapi::common::UnpackDistance(), kiapi::common::UnpackLineEnding(), kiapi::common::UnpackPolySet(), kiapi::common::UnpackStroke(), kiapi::common::UnpackVector2(), and COLOR4D::UNSPECIFIED.
|
protected |
Finish editing the shape.
| aClosed | Should polygon shapes be closed (yes for pcbnew/fpeditor, no for libedit). |
Definition at line 3394 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), ELLIPSE, ELLIPSE_ARC, SHAPE_LINE_CHAIN::GetPointCount(), GetPolyShape(), GetShape(), m_editState, SHAPE_POLY_SET::Outline(), POLY, recalcEllipseArcEndpoints(), RECTANGLE, SHAPE_LINE_CHAIN::Remove(), SEGMENT, SHAPE_LINE_CHAIN::SetClosed(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::EndEdit(), and SCH_SHAPE::EndEdit().
|
inline |
Have the start and end points been swapped since they were set?
Definition at line 452 of file eda_shape.h.
References m_endsSwapped.
Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
protected |
Definition at line 1150 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, getMaxError(), GetPolyShape(), m_arcCenter, m_bezierC1, m_bezierC2, m_ellipse, m_end, m_hatchingDirty, m_shape, m_start, MIRROR(), SHAPE_POLY_SET::Mirror(), POLY, RebuildBezierToSegmentsPointsList(), recalcEllipseArcEndpoints(), RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::Flip(), PCB_SHAPE::Mirror(), SCH_SHAPE::MirrorHorizontally(), and SCH_SHAPE::MirrorVertically().
| EDA_ANGLE EDA_SHAPE::GetArcAngle | ( | ) | const |
Definition at line 1441 of file eda_shape.cpp.
References CalcArcAngles().
Referenced by BOARD_CONSTRAINT_ADAPTER::ApplyReferenceValues(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), GENCAD_EXPORTER::footprintWriteShape(), GetArcMid(), GetLength(), idf_append_shape(), makeEffectiveShapes(), BRDITEMS_PLOTTER::PlotShape(), OUTSET_ROUTINE::ProcessItem(), CONSTRAINT_OVERLAY::render(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), ShapeGetMsgPanelInfo(), AR_MATRIX::TracePcbShape(), and CREEPAGE_OVERLAY::Update().
| VECTOR2I EDA_SHAPE::GetArcMid | ( | ) | const |
Definition at line 1337 of file eda_shape.cpp.
References GetArcAngle(), m_arcCenter, m_arcMidData, m_end, m_start, and RotatePoint().
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), PAD::AddPrimitive(), BoardItemIntersectable(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), KI_TEST::CheckFpShape(), Compare(), ConnectBoardShapes(), CONVERT_TOOL::CreateLines(), editArcMidKeepEndpoints(), formatArc(), PCB_SHAPE::GetConnectionPoints(), GetEndingTangents(), PCB_SHAPE::GetFocusPosition(), PCB_SHAPE::GetLibraryArcMid(), GRAPH_CONNECTION::GetShapes(), GraphicEditArc(), hash_fp_item(), IsClockwiseArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), CONVERT_TOOL::makePolysFromChainedSegs(), SCH_SHAPE::Plot(), processShapeSegment(), CONVERT_TOOL::SegmentToArc(), Serialize(), SetArcGeometry(), PCB_SHAPE::syncLibCoords(), PLOTTER::ThickArc(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), and ARC_GEOM_SYNCER::updateSME().
|
inline |
Definition at line 365 of file eda_shape.h.
References m_bezierC1.
Referenced by PAD::AddPrimitive(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KI_TEST::CheckFpShape(), ConnectBoardShapes(), PCB_IO_KICAD_SEXPR::format(), formatBezier(), GetEndingTangents(), PCB_SHAPE::GetLibraryBezierC1(), hash_fp_item(), hashShape(), SCH_SHAPE::Plot(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), PCB_SHAPE::syncLibCoords(), TransformShapeToPolygon(), and BEZIER_GEOM_SYNCER::updateBezier().
|
inline |
Definition at line 368 of file eda_shape.h.
References m_bezierC2.
Referenced by PAD::AddPrimitive(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KI_TEST::CheckFpShape(), ConnectBoardShapes(), PCB_IO_KICAD_SEXPR::format(), formatBezier(), GetEndingTangents(), PCB_SHAPE::GetLibraryBezierC2(), hash_fp_item(), hashShape(), SCH_SHAPE::Plot(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), PCB_SHAPE::syncLibCoords(), TransformShapeToPolygon(), and BEZIER_GEOM_SYNCER::updateBezier().
|
inline |
Definition at line 491 of file eda_shape.h.
References m_bezierPoints.
Referenced by FEATURES_MANAGER::AddShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BuildCreepageBoardEdges(), GetEndingTangents(), GetLineEndingEndpoints(), idf_append_shape(), GRAPHICS_CLEANER::isNullShape(), makeBezierChain(), CONVERT_TOOL::makePolysFromChainedSegs(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), and GRAPHICS_IMPORTER::setupSplineOrLine().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 357 of file eda_shape.h.
References GetEnd().
Referenced by KIGFX::PCB_PAINTER::draw(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints().
|
protected |
Definition at line 1594 of file eda_shape.cpp.
References ARC, SHAPE_ELLIPSE::BBox(), BEZIER, buildShapeEllipse(), CIRCLE, computeArcBBox(), ELLIPSE, ELLIPSE_ARC, GetEnd(), GetPolyShape(), GetRadius(), GetRectCorners(), GetStart(), GetWidth(), BOX2< Vec >::Inflate(), m_bezierPoints, m_shape, BOX2< Vec >::Merge(), BOX2< Vec >::Normalize(), POLY, RECTANGLE, SEGMENT, BOX2< Vec >::SetEnd(), BOX2< Vec >::SetOrigin(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::GetBoundingBox(), SCH_SHAPE::GetBoundingBox(), getCenter(), GetCornersInSequence(), hitTest(), and TransformShapeToPolygon().
| VECTOR2I EDA_SHAPE::getCenter | ( | ) | const |
Definition at line 1277 of file eda_shape.cpp.
References ARC, BEZIER, BOX2< Vec >::Centre(), CIRCLE, ELLIPSE, ELLIPSE_ARC, getBoundingBox(), m_arcCenter, m_ellipse, m_end, m_shape, m_start, POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by CREEPAGE_GRAPH::Addshape(), BOOST_AUTO_TEST_CASE(), CalcArcAngles(), PCB_SHAPE::GetCenter(), SCH_SHAPE::GetCenter(), getPosition(), hitTest(), hitTest(), makeEffectiveShapes(), SCH_SHAPE::Plot(), PLOTTER::ThickArc(), TransformShapeToPolygon(), and UpdateHatching().
| int EDA_SHAPE::GetCornerRadius | ( | ) | const |
Definition at line 599 of file eda_shape.cpp.
References m_cornerRadius.
Referenced by BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_IO_KICAD_SEXPR::format(), formatRect(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), SegmentIntersectsBoard(), Serialize(), PCB_IO_IPC2581::shapeHash(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), UpdateHatching(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints().
Reimplemented in PCB_TEXTBOX.
Definition at line 2100 of file eda_shape.cpp.
References ANGLE_0, ANGLE_180, ANGLE_270, ANGLE_90, center, BOX2< Vec >::GetBottom(), getBoundingBox(), BOX2< Vec >::GetCenter(), BOX2< Vec >::GetLeft(), GetPolyShape(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetTop(), EDA_ANGLE::IsCardinal(), m_shape, BOX2< Vec >::Normalize(), EDA_ANGLE::Normalize(), SHAPE_POLY_SET::OutlineCount(), RECTANGLE, RotatePoint(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SCH_TABLE::DrawBorders(), and PCB_TEXTBOX::GetCornersInSequence().
|
inlineprotectedvirtual |
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 164 of file eda_shape.h.
References GetWidth().
Referenced by PCB_SHAPE::GetBoundingBox(), PCB_SHAPE::GetEffectiveShape(), GetHatchLineWidth(), hitTest(), hitTest(), hitTest(), makeEffectiveShapes(), MakeEffectiveShapesForStroking(), makeShortenedBodyShapes(), PNS_KICAD_IFACE_BASE::syncGraphicalItem(), and TransformWithLineEndingsToPolygon().
|
inline |
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.
|
inline |
Definition at line 377 of file eda_shape.h.
References m_ellipse.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), 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(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), KI_TEST::ellipseEquationAt(), evalEllipsePoint(), formatEllipse(), formatEllipseArc(), PCB_SHAPE::GetConnectionPoints(), hash_fp_item(), hashShape(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), Serialize(), shapeNeedsUpdate(), PCB_SHAPE::syncLibCoords(), ELLIPSE_ARC_GEOM_SYNCER::updateAll(), and ELLIPSE_GEOM_SYNCER::updateAll().
|
inline |
Definition at line 423 of file eda_shape.h.
References m_ellipse.
Referenced by FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), 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(), CheckLibSymbolGraphics(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), formatEllipseArc(), PCB_SHAPE::GetConnectionPoints(), hash_fp_item(), hashShape(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), Serialize(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PCB_SHAPE::syncLibCoords(), and ELLIPSE_ARC_GEOM_SYNCER::updateAll().
|
inline |
Definition at line 386 of file eda_shape.h.
References m_ellipse.
Referenced by FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), 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(), CheckLibSymbolGraphics(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), KI_TEST::ellipseEquationAt(), evalEllipsePoint(), formatEllipse(), formatEllipseArc(), PCB_SHAPE::GetConnectionPoints(), SCH_SHAPE::GetItemDescription(), hash_fp_item(), hashShape(), GRAPHICS_CLEANER::isNullShape(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), Serialize(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PCB_SHAPE::syncLibCoords(), ELLIPSE_ARC_GEOM_SYNCER::updateAll(), and ELLIPSE_GEOM_SYNCER::updateAll().
|
inline |
Definition at line 395 of file eda_shape.h.
References m_ellipse.
Referenced by FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), 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(), CheckLibSymbolGraphics(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), KI_TEST::ellipseEquationAt(), evalEllipsePoint(), formatEllipse(), formatEllipseArc(), PCB_SHAPE::GetConnectionPoints(), SCH_SHAPE::GetItemDescription(), hash_fp_item(), hashShape(), GRAPHICS_CLEANER::isNullShape(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), Serialize(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PCB_SHAPE::syncLibCoords(), ELLIPSE_ARC_GEOM_SYNCER::updateAll(), and ELLIPSE_GEOM_SYNCER::updateAll().
|
inline |
Definition at line 404 of file eda_shape.h.
References m_ellipse.
Referenced by FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), 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(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), KI_TEST::ellipseEquationAt(), evalEllipsePoint(), formatEllipse(), formatEllipseArc(), PCB_SHAPE::GetConnectionPoints(), hash_fp_item(), hashShape(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), Serialize(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PCB_SHAPE::syncLibCoords(), ELLIPSE_ARC_GEOM_SYNCER::updateAll(), and ELLIPSE_GEOM_SYNCER::updateAll().
|
inline |
Definition at line 414 of file eda_shape.h.
References m_ellipse.
Referenced by FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), 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(), CheckLibSymbolGraphics(), CONVERT_TOOL::CreateLines(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), formatEllipseArc(), PCB_SHAPE::GetConnectionPoints(), hash_fp_item(), hashShape(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), processShapeSegment(), CONSTRAINT_OVERLAY::render(), Serialize(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PCB_SHAPE::syncLibCoords(), and ELLIPSE_ARC_GEOM_SYNCER::updateAll().
|
inline |
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().
|
inline |
Definition at line 180 of file eda_shape.h.
References m_endEnding.
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatPoly(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), SCH_SHAPE::Plot(), and BRDITEMS_PLOTTER::PlotShape().
|
inline |
Definition at line 194 of file eda_shape.h.
References m_endEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 201 of file eda_shape.h.
References m_endEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 186 of file eda_shape.h.
References m_endEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 196 of file eda_shape.h.
References m_endEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
| void EDA_SHAPE::GetEndingTangents | ( | EDA_ANGLE & | aStartTangent, |
| EDA_ANGLE & | aEndTangent, | ||
| int | aLineWidth = 0 ) const |
Compute outward-facing tangent angles at the start and end of the shape.
When aLineWidth > 0, the tangent accounts for line shortening so that end shapes align with the visible stroke on tight curves.
Definition at line 3968 of file eda_shape.cpp.
References ANGLE_0, ANGLE_180, ANGLE_90, ARC, ARROW_OPEN, BEZIER, bezierLength(), SHAPE_LINE_CHAIN::CPoint(), cw, DEGREES_T, delta, VECTOR2< T >::EuclideanNorm(), findBezierTAtLength(), GetArcMid(), GetBezierC1(), GetBezierC2(), GetBezierPoints(), SHAPE_ARC::GetCentralAngle(), LINE_ENDING::GetCurveOrientationDepth(), GetEnd(), SHAPE_ARC::GetEndAngle(), GetPolyShape(), SHAPE_ARC::GetRadius(), GetStart(), SHAPE_ARC::GetStartAngle(), LINE_ENDING::GetStyle(), m_bezierC1, m_bezierC2, m_end, m_endEnding, m_shape, m_start, m_startEnding, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, RAD2DEG(), radius, SEGMENT, and ShortenedBezierCurve().
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), GetLineEndingsBoundingBox(), MakeLineEndingEffectiveShapes(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformLineEndingsToPolygon().
|
inline |
Definition at line 327 of file eda_shape.h.
References m_end.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), GetRectangleWidth(), PCB_TEXTBOX::GetTopLeft(), and DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run().
|
inline |
Definition at line 326 of file eda_shape.h.
References m_end.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), GetRectangleHeight(), PCB_TEXTBOX::GetTopLeft(), and DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run().
|
inline |
Definition at line 159 of file eda_shape.h.
References m_fillColor.
Referenced by EE_GRAPHIC_TOOL::DrawShape(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), KIGFX::SCH_PAINTER::getRenderColor(), SCH_IO_ALTIUM::ParsePolygon(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), SCH_IO_KICAD_SEXPR::saveShape(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveSymbolDrawItem(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), SCH_TEXTBOX::Serialize(), and DIALOG_TEXT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 148 of file eda_shape.h.
References m_fill.
Referenced by PCB_IO_IPC2581::addShape(), 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(), KI_TEST::CheckFpShape(), DIPTRACE_SCH_IMPORT_FIXTURE::CountFilledPolysForRefdes(), DIPTRACE_SCH_IMPORT_FIXTURE::CountOpenPolysWithPointCountForRefdes(), KIGFX::SCH_PAINTER::draw(), EE_GRAPHIC_TOOL::DrawShape(), LIB_SYMBOL::FixupDrawItems(), fixupSchFillMode(), PCB_IO_KICAD_SEXPR::format(), KIGFX::SCH_PAINTER::getRenderColor(), hash_fp_item(), IsAnyFill(), IsHatchedFill(), IsSolidFill(), CONVERT_TOOL::makePolysFromClosedGraphics(), SCH_IO_ALTIUM::ParsePolygon(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), 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_SEXPR_LIB_CACHE::saveSymbolDrawItem(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), SCH_SHAPE_DESC::SCH_SHAPE_DESC(), Serialize(), SCH_TEXTBOX::Serialize(), shapeNeedsUpdate(), and UpdateHatching().
| UI_FILL_MODE EDA_SHAPE::GetFillModeProp | ( | ) | const |
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().
|
protected |
Definition at line 1484 of file eda_shape.cpp.
References _, ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, FRAME_SCH_SYMBOL_EDITOR, IsProxyItem(), m_shape, POLY, RECTANGLE, and SEGMENT.
Referenced by PCB_SHAPE::GetFriendlyName(), and ShapeGetMsgPanelInfo().
| const SHAPE_POLY_SET & EDA_SHAPE::GetHatching | ( | ) | const |
Definition at line 731 of file eda_shape.cpp.
References m_hatchingCache, and UpdateHatching().
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), EXPORTER_STEP::buildGraphic3DShape(), hitTest(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformShapeToPolygon().
|
inlineprotectedvirtual |
Reimplemented in PCB_SHAPE.
Definition at line 660 of file eda_shape.h.
Referenced by UpdateHatching().
| const std::vector< SEG > & EDA_SHAPE::GetHatchLines | ( | ) | const |
Definition at line 742 of file eda_shape.cpp.
References m_hatchingCache, and UpdateHatching().
Referenced by BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::draw(), and KIGFX::SCH_PAINTER::draw().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 166 of file eda_shape.h.
References GetHatchLineWidth().
Referenced by PCB_SHAPE::getHatchingKnockouts(), and UpdateHatching().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 165 of file eda_shape.h.
References GetEffectiveWidth().
Referenced by KIGFX::PCB_PAINTER::draw(), GetHatchLineSpacing(), and UpdateHatching().
| double EDA_SHAPE::GetLength | ( | ) | const |
Definition at line 537 of file eda_shape.cpp.
References ARC, EDA_ANGLE::AsRadians(), BEZIER, buildShapeEllipse(), SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CSegment(), VECTOR2< T >::Distance(), ELLIPSE, ELLIPSE_ARC, GetArcAngle(), GetEnd(), SHAPE_ELLIPSE::GetLength(), GetPolyShape(), GetRadius(), GetStart(), SEG::Length(), m_bezierPoints, m_shape, POLY, SEGMENT, SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), DRAWING_TOOL::drawShape(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), LINE_FILLET_ROUTINE::ProcessLinePair(), ShapeGetMsgPanelInfo(), and PCB_CONTROL::UpdateMessagePanel().
|
inline |
Definition at line 172 of file eda_shape.h.
References m_stroke.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
Return the source endpoints used to place line endings.
Definition at line 4155 of file eda_shape.cpp.
References ARC, BEZIER, SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CPoint(), GetBezierPoints(), GetEnd(), GetPolyShape(), GetStart(), m_shape, SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, and SEGMENT.
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), GetLineEndingsBoundingBox(), MakeLineEndingEffectiveShapes(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformLineEndingsToPolygon().
| bool EDA_SHAPE::GetLineEndingsBoundingBox | ( | BOX2I & | aBBox, |
| int | aLineWidth ) const |
Definition at line 2904 of file eda_shape.cpp.
References ARROW_OPEN, GetEndingTangents(), GetLineEndingEndpoints(), LINE_ENDING::GetShapes(), LINE_ENDING::GetStrokeWidth(), LINE_ENDING::GetStyle(), hasLineEnding(), BOX2< Vec >::Inflate(), m_endEnding, m_startEnding, BOX2< Vec >::Merge(), NONE, and BOX2< Vec >::Normalize().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PCB_SHAPE::GetBoundingBox(), and SCH_LINE::GetBoundingBox().
| LINE_STYLE EDA_SHAPE::GetLineStyle | ( | ) | const |
Definition at line 3761 of file eda_shape.cpp.
References DEFAULT, m_stroke, and SOLID.
Referenced by EXPORTER_STEP::buildGraphic3DShape(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), hash_fp_item(), PCB_TEXTBOX_DESC::PCB_TEXTBOX_DESC(), and SCH_TEXTBOX::Serialize().
|
inlineprotectedvirtual |
Reimplemented in PCB_SHAPE, and SCH_SHAPE.
Definition at line 725 of file eda_shape.h.
Referenced by beginEdit(), calcEdit(), Deserialize(), flip(), hitTest(), hitTest(), makeEffectiveShapes(), MakeEffectiveShapesForStroking(), RebuildBezierToSegmentsPointsList(), rotate(), scale(), ShortenedBezierPolyline(), and UpdateHatching().
| int EDA_SHAPE::GetPointCount | ( | ) | const |
Definition at line 3013 of file eda_shape.cpp.
References GetPolyShape(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_POLY_SET::VertexCount().
Referenced by calcEdit(), SCH_SHAPE::GetItemDescription(), GRAPHICS_CLEANER::isNullShape(), and SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic().
| std::vector< VECTOR2I > EDA_SHAPE::GetPolyPoints | ( | ) | const |
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().
| SHAPE_POLY_SET & EDA_SHAPE::GetPolyShape | ( | ) |
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().
| const SHAPE_POLY_SET & EDA_SHAPE::GetPolyShape | ( | ) | const |
Definition at line 2997 of file eda_shape.cpp.
References m_poly.
|
protected |
Definition at line 526 of file eda_shape.cpp.
References ARC, SHAPE_POLY_SET::CVertex(), ELLIPSE, ELLIPSE_ARC, getCenter(), GetPolyShape(), m_shape, m_start, and POLY.
Referenced by PCB_SHAPE::GetPosition(), SCH_SHAPE::GetPosition(), setPosition(), and UpdateHatching().
| int EDA_SHAPE::GetRadius | ( | ) | const |
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().
| int EDA_SHAPE::GetRectangleHeight | ( | ) | const |
Definition at line 571 of file eda_shape.cpp.
References GetEndY(), GetStartY(), m_shape, RECTANGLE, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_IO_IPC2581::addLocationNode(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), ODB::GetShapePosition(), hitTest(), hitTest(), makeEffectiveShapes(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), rotate(), SetCornerRadius(), TransformShapeToPolygon(), and UpdateHatching().
| int EDA_SHAPE::GetRectangleWidth | ( | ) | const |
Definition at line 585 of file eda_shape.cpp.
References GetEndX(), GetStartX(), m_shape, RECTANGLE, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_IO_IPC2581::addLocationNode(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), ODB::GetShapePosition(), hitTest(), hitTest(), makeEffectiveShapes(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), rotate(), SetCornerRadius(), TransformShapeToPolygon(), and UpdateHatching().
| std::vector< VECTOR2I > EDA_SHAPE::GetRectCorners | ( | ) | const |
Definition at line 2085 of file eda_shape.cpp.
References GetEnd(), GetStart(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), buildCarrier(), KIGFX::PCB_PAINTER::draw(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), hitTest(), hitTest(), SCH_SHAPE::IsEndPoint(), makeEffectiveShapes(), SCH_SCREEN::MarkConnections(), outlineProximity(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), TransformShapeToPolygon(), and PCB_TEXTBOX::TransformShapeToPolygon().
| EDA_ANGLE EDA_SHAPE::GetSegmentAngle | ( | ) | const |
Definition at line 1432 of file eda_shape.cpp.
References GetEnd(), GetStart(), and RADIANS_T.
|
inline |
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().
| bool EDA_SHAPE::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.
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().
|
inline |
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().
|
inline |
Definition at line 177 of file eda_shape.h.
References m_startEnding.
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(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatPoly(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), SCH_SHAPE::Plot(), and BRDITEMS_PLOTTER::PlotShape().
|
inline |
Definition at line 189 of file eda_shape.h.
References m_startEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 199 of file eda_shape.h.
References m_startEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 183 of file eda_shape.h.
References m_startEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 191 of file eda_shape.h.
References m_startEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 277 of file eda_shape.h.
References m_start.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), GetRectangleWidth(), PCB_TEXTBOX::GetTopLeft(), SCH_SHAPE::Normalize(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), and SetRectangleWidth().
|
inline |
Definition at line 276 of file eda_shape.h.
References m_start.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), GetRectangleHeight(), PCB_TEXTBOX::GetTopLeft(), SCH_SHAPE::Normalize(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), and SetRectangleHeight().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 356 of file eda_shape.h.
References GetStart().
Referenced by KIGFX::PCB_PAINTER::draw(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 163 of file eda_shape.h.
References m_stroke.
Referenced by 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(), SCH_TEXTBOX::Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), getBoundingBox(), GetEffectiveWidth(), SCH_TEXTBOX::GetLegacyTextMargin(), PCB_SHAPE::GetWidth(), hitTest(), hitTest(), 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_TEXTBOX::Serialize(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), TransformShapeToPolygon(), and TransformWithLineEndingsToPolygon().
|
protected |
Definition at line 753 of file eda_shape.cpp.
References m_hatchingCache.
Referenced by UpdateHatching().
|
protected |
Definition at line 762 of file eda_shape.cpp.
References m_hatchingCache.
Referenced by UpdateHatching().
|
protected |
Definition at line 1853 of file eda_shape.cpp.
References ARC, BEZIER, KIGEOM::BoxToLineChain(), buildShapeEllipse(), chain, CIRCLE, BOX2< Vec >::Contains(), SHAPE_ELLIPSE::ConvertToPolyline(), ELLIPSE, ELLIPSE_ARC, getBoundingBox(), getCenter(), GetEffectiveWidth(), GetEnd(), getMaxError(), BEZIER_POLY::GetPoly(), GetPolyShape(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), GetStart(), GetWidth(), hasLineEnding(), BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), BOX2< Vec >::IntersectsCircleEdge(), IsAnyFill(), m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_end, m_endEnding, m_shape, m_start, m_startEnding, MakeEffectiveShapesWithLineEndings(), BOX2< Vec >::Normalize(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), KIGEOM::ShapeHitTest(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.
|
protected |
Definition at line 2075 of file eda_shape.cpp.
References GetEffectiveWidth(), hasLineEnding(), m_endEnding, m_startEnding, MakeEffectiveShapes(), MakeEffectiveShapesWithLineEndings(), and KIGEOM::ShapeHitTest().
|
protected |
Definition at line 1655 of file eda_shape.cpp.
References SHAPE_POLY_SET::Append(), ARC, BEZIER, buildShapeEllipse(), CalcArcAngles(), CIRCLE, Collide(), SHAPE::Collide(), SHAPE_POLY_SET::Collide(), SHAPE_POLY_SET::CollideEdge(), copy, VECTOR2< T >::Distance(), ELLIPSE, ELLIPSE_ARC, VECTOR2< T >::EuclideanNorm(), getCenter(), GetEffectiveWidth(), GetEnd(), GetHatching(), getMaxError(), BEZIER_POLY::GetPoly(), GetPolyShape(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), GetStart(), GetWidth(), hasLineEnding(), IsClosed(), IsFilledForHitTesting(), IsHatchedFill(), IsProxyItem(), m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_end, m_endEnding, m_shape, m_start, m_startEnding, MakeEffectiveShapesWithLineEndings(), SHAPE_POLY_SET::NewOutline(), EDA_ANGLE::Normalize(), POLY, radius, RECTANGLE, SEGMENT, SHAPE_T_asString(), SHAPE_ELLIPSE::SquaredDistance(), TestSegmentHit(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::HitTest(), PCB_SHAPE::HitTest(), PCB_SHAPE::HitTest(), SCH_SHAPE::HitTest(), and SCH_SHAPE::HitTest().
|
inline |
Definition at line 118 of file eda_shape.h.
References GetFillMode(), and NO_FILL.
Referenced by computeArcBBox(), FOOTPRINT::GetCoverageArea(), PCB_SHAPE::GetFocusPosition(), hitTest(), ZONE_PAINTER::PCB_PAINTER(), PAD::Recombine(), and PCB_SELECTION_TOOL::Selectable().
| bool EDA_SHAPE::IsClockwiseArc | ( | ) | const |
Definition at line 1452 of file eda_shape.cpp.
References ARC, GetArcMid(), m_end, m_shape, m_start, SHAPE_T_asString(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by FEATURES_MANAGER::AddShape(), and PCB_IO_IPC2581::addShape().
| bool EDA_SHAPE::IsClosed | ( | ) | const |
Definition at line 667 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, GetPolyShape(), SHAPE_LINE_CHAIN::IsClosed(), m_bezierPoints, m_shape, SHAPE_POLY_SET::Outline(), POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_POINT_EDITOR::addCorner(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KIGFX::SCH_PAINTER::draw(), hitTest(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), CONVERT_TOOL::makePolysFromClosedGraphics(), CONVERT_TOOL::makePolysFromOpenGraphics(), and SCH_SHAPE::Plot().
|
inlinevirtual |
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().
|
inline |
Definition at line 130 of file eda_shape.h.
References CROSS_HATCH, GetFillMode(), HATCH, and REVERSE_HATCH.
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), EDIT_TOOL::Duplicate(), hitTest(), makeEffectiveShapes(), makeShortenedBodyShapes(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), PCB_CONTROL::rehatchBoardItem(), TransformShapeToPolygon(), and TransformWithLineEndingsToPolygon().
|
inlineprotectedvirtual |
Reimplemented in PCB_SHAPE, and SCH_SHAPE.
Definition at line 694 of file eda_shape.h.
Referenced by UpdateHatching().
| bool EDA_SHAPE::IsPolyShapeValid | ( | ) | const |
Definition at line 3006 of file eda_shape.cpp.
References GetPolyShape(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_LINE_CHAIN::PointCount().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PCB_IO_KICAD_SEXPR::format(), idf_append_shape(), BRDITEMS_PLOTTER::PlotShape(), TransformShapeToPolygon(), and TransformWithLineEndingsToPolygon().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 115 of file eda_shape.h.
References IsProxyItem(), and m_proxyItem.
Referenced by getFriendlyName(), hitTest(), IsProxyItem(), makeEffectiveShapes(), makeShortenedBodyShapes(), ShowShape(), TransformShapeToPolygon(), and TransformWithLineEndingsToPolygon().
|
inline |
Definition at line 123 of file eda_shape.h.
References FILLED_SHAPE, FILLED_WITH_BG_BODYCOLOR, FILLED_WITH_COLOR, and GetFillMode().
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), GetBoardItemWidth(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetSolderMaskExpansion(), IsFilledForHitTesting(), SCH_RULE_AREA::MakeEffectiveShapes(), makeEffectiveShapes(), makeShortenedBodyShapes(), BRDITEMS_PLOTTER::PlotShape(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), TransformShapeToPolygon(), and TransformWithLineEndingsToPolygon().
|
inlinevirtual |
Make a set of SHAPE objects representing the EDA_SHAPE.
Caller owns the objects.
| aEdgeOnly | indicates 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().
|
protected |
Make a set of SHAPE objects representing the EDA_SHAPE.
Caller owns the objects.
| aEdgeOnly | indicates only edges should be generated (even if 0 width), and no fill shapes. |
| aLineChainOnly | indicates SHAPE_POLY_SET is being abused slightly to represent a lineChain rather than a closed polygon. |
Definition at line 2345 of file eda_shape.cpp.
References ANGLE_360, ARC, SHAPE_LINE_CHAIN::Arc(), SHAPE_LINE_CHAIN::ArcIndex(), BEZIER, buildBezierToSegmentsPointsList(), buildShapeEllipse(), chain, CIRCLE, SHAPE_ELLIPSE::ConvertToPolyline(), SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CSegment(), ELLIPSE, ELLIPSE_ARC, GetArcAngle(), getCenter(), GetEffectiveWidth(), GetEnd(), getMaxError(), GetPolyShape(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), GetStart(), SHAPE_LINE_CHAIN::IsArcSegment(), SHAPE_LINE_CHAIN::IsClosed(), IsFilledForHitTesting(), IsHatchedFill(), IsProxyItem(), IsSolidFill(), m_arcCenter, m_cornerRadius, m_end, m_shape, m_start, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), POLY, RECTANGLE, SEGMENT, SHAPE_LINE_CHAIN::Segment(), SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_T_asString(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.
Referenced by MakeEffectiveShapes(), SCH_SHAPE::MakeEffectiveShapes(), MakeEffectiveShapesForHitTesting(), and makeShortenedBodyShapes().
|
inlinevirtual |
Definition at line 569 of file eda_shape.h.
References makeEffectiveShapes().
Referenced by SCH_SELECTION_TOOL::GuessSelectionCandidates(), and PCB_SELECTION_TOOL::hitTestDistance().
| std::vector< SHAPE * > EDA_SHAPE::MakeEffectiveShapesForStroking | ( | int | aLineWidth = -1 | ) | const |
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.
| aLineWidth | is 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().
| std::vector< SHAPE * > EDA_SHAPE::MakeEffectiveShapesWithLineEndings | ( | int | aLineWidth | ) | const |
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().
| std::vector< SHAPE * > EDA_SHAPE::MakeLineEndingEffectiveShapes | ( | int | aLineWidth | ) | const |
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().
|
protected |
Make effective geometry for the shape body shortened for line endings, without the line-ending geometry itself.
Falls back to makeEffectiveShapes() when no shortening applies.
Caller owns the objects.
Definition at line 2597 of file eda_shape.cpp.
References ARC, BEZIER, CalcArcAngles(), SHAPE_POLY_SET::COutline(), end, GetEffectiveWidth(), GetEnd(), GetPolyShape(), GetRadius(), GetShortenedBodyPolyPoints(), GetStart(), SHAPE_LINE_CHAIN::IsClosed(), IsHatchedFill(), IsProxyItem(), IsSolidFill(), m_arcCenter, m_endEnding, m_shape, m_startEnding, makeEffectiveShapes(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, RotatePoint(), SEGMENT, ShortenArcForEndings(), ShortenedBezierPolyline(), and ShortenSegmentForEndings().
Referenced by MakeEffectiveShapesForStroking(), and MakeEffectiveShapesWithLineEndings().
|
protected |
Definition at line 949 of file eda_shape.cpp.
References SEG::A, ARC, SEG::B, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, GetPolyShape(), KI_FALLTHROUGH, m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_bezierPoints, m_ellipse, m_end, m_hatchingCache, m_hatchingDirty, m_shape, m_start, SHAPE_POLY_SET::Move(), POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_TEXTBOX::Move().
Definition at line 206 of file eda_shape.cpp.
References EDA_SHAPE(), m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_editState, m_ellipse, m_end, m_endEnding, m_endsSwapped, m_fill, m_fillColor, m_hatchingCache, m_hatchingDirty, m_poly, m_proxyItem, m_rectangleHeight, m_rectangleWidth, m_shape, m_start, m_startEnding, and m_stroke.
References Deserialize(), EDA_SHAPE(), Serialize(), SHAPE_T_asString(), ShowShape(), and SwapShape().
| bool EDA_SHAPE::operator== | ( | const EDA_SHAPE & | aOther | ) | const |
Definition at line 3770 of file eda_shape.cpp.
References ARC, BEZIER, ELLIPSE< NumericType >::Center, CIRCLE, SHAPE_POLY_SET::CVertex(), EDA_SHAPE(), ELLIPSE, ELLIPSE_ARC, ELLIPSE< NumericType >::EndAngle, STROKE_PARAMS::GetLineStyle(), GetPolyShape(), GetShape(), STROKE_PARAMS::GetWidth(), m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_ellipse, m_end, m_endEnding, m_fill, m_fillColor, m_shape, m_start, m_startEnding, m_stroke, ELLIPSE< NumericType >::MajorRadius, ELLIPSE< NumericType >::MinorRadius, POLY, RECTANGLE, ELLIPSE< NumericType >::Rotation, SEGMENT, ELLIPSE< NumericType >::StartAngle, and SHAPE_POLY_SET::TotalVertices().
Referenced by PCB_SHAPE::operator==(), and SCH_SHAPE::operator==().
|
inline |
Definition at line 539 of file eda_shape.h.
References getMaxError(), and RebuildBezierToSegmentsPointsList().
Referenced by beginEdit(), calcEdit(), Deserialize(), flip(), PCB_SHAPE::rebakeFromTransform(), RebuildBezierToSegmentsPointsList(), and scale().
| void EDA_SHAPE::RebuildBezierToSegmentsPointsList | ( | int | aMaxError | ) |
Rebuild the m_bezierPoints vertex list that approximate the Bezier curve by a list of segments.
Has meaning only for BEZIER shape.
| aMinSegLen | is the max deviation between the polyline and the curve. |
Definition at line 1201 of file eda_shape.cpp.
References BEZIER, buildBezierToSegmentsPointsList(), m_bezierPoints, and m_shape.
Referenced by KI_TEST::addBezier(), SCH_IO_GEDA::addSymbolGraphic(), BEZIER_DRAW_BEHAVIOR::ApplyToShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BuildCreepageBoardEdges(), idf_append_shape(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), makeBezierChain(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), SCH_SHAPE::Plot(), processShapeSegment(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), and GRAPHICS_IMPORTER::setupSplineOrLine().
|
protected |
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().
Definition at line 1077 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, getMaxError(), GetPolyShape(), GetRectangleHeight(), GetRectangleWidth(), GetStart(), EDA_ANGLE::IsCardinal(), m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_ellipse, m_end, m_hatchingDirty, m_shape, m_start, POLY, recalcEllipseArcEndpoints(), RECTANGLE, SHAPE_POLY_SET::Rotate(), RotatePoint(), SEGMENT, SetShape(), SHAPE_T_asString(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::Rotate(), and SCH_SHAPE::Rotate().
|
protected |
Definition at line 1013 of file eda_shape.cpp.
References std::abs(), ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, getMaxError(), GetPolyShape(), KI_FALLTHROUGH, KiROUND(), m_arcCenter, m_bezierC1, m_bezierC2, m_ellipse, m_end, m_hatchingDirty, m_shape, m_start, SHAPE_POLY_SET::OutlineCount(), POLY, RebuildBezierToSegmentsPointsList(), recalcEllipseArcEndpoints(), RECTANGLE, SEGMENT, SetPolyPoints(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
|
overridevirtual |
Serializes this object to the given Any message.
The Any message's concrete type will be specific to the object in question.
| aContainer | will 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().
| void EDA_SHAPE::Serialize | ( | google::protobuf::Any & | aContainer, |
| const EDA_IU_SCALE & | aScale ) const |
Definition at line 350 of file eda_shape.cpp.
References Serialize().
| void EDA_SHAPE::Serialize | ( | kiapi::common::types::GraphicShape & | aOutput, |
| const EDA_IU_SCALE & | aScale ) const |
Definition at line 248 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, circle(), ELLIPSE, ELLIPSE_ARC, GetArcMid(), GetBezierC1(), GetBezierC2(), GetCornerRadius(), GetEllipseCenter(), GetEllipseEndAngle(), GetEllipseMajorRadius(), GetEllipseMinorRadius(), GetEllipseRotation(), GetEllipseStartAngle(), GetEnd(), GetFillMode(), GetPolyShape(), GetShape(), GetStart(), m_endEnding, m_fillColor, m_startEnding, m_stroke, NONE, kiapi::common::PackColor(), kiapi::common::PackDistance(), kiapi::common::PackLineEnding(), kiapi::common::PackPolySet(), kiapi::common::PackStroke(), kiapi::common::PackVector2(), POLY, RECTANGLE, SEGMENT, ToProtoEnum(), and COLOR4D::UNSPECIFIED.
|
inlinevirtual |
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().
| void EDA_SHAPE::SetArcAngleAndEnd | ( | const EDA_ANGLE & | aAngle, |
| bool | aCheckNegativeAngle = false ) |
Set the end point from the angle center and start.
aAngle is:
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().
| void EDA_SHAPE::SetArcGeometry | ( | const VECTOR2I & | aStart, |
| const VECTOR2I & | aMid, | ||
| const VECTOR2I & | aEnd ) |
Set the three controlling points for an arc.
NB: these are NOT what's currently stored, so we have to do some calculations behind the scenes. However, they are what SHOULD be stored.
Definition at line 1402 of file eda_shape.cpp.
References CalcArcCenter(), GetArcMid(), m_arcCenter, m_arcMidData, m_end, m_endsSwapped, m_start, SetCachedArcData(), and VECTOR2< T >::SquaredEuclideanNorm().
Referenced by CREEPAGE_GRAPH::Addshape(), appendGraphicPrimitive(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), calcEdit(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::createShapes(), Deserialize(), editArcMidKeepEndpoints(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), CADSTAR_SCH_ARCHIVE_LOADER::loadShapeVertices(), SCH_SCREEN::Plot(), SCH_SHAPE::Plot(), PCB_SHAPE::rebakeFromTransform(), and PCB_SHAPE::SetArcGeometry().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 364 of file eda_shape.h.
References m_bezierC1.
Referenced by SCH_IO_GEDA::addSymbolGraphic(), ORCAD_CONVERTER::addSymbolPrimitive(), 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(), calcEdit(), Deserialize(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), ORCAD_CONVERTER::placeGraphics(), SCH_SHAPE::Plot(), PCB_SHAPE::rebakeFromTransform(), and PCB_SHAPE::SetBezierC1().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 367 of file eda_shape.h.
References m_bezierC2.
Referenced by SCH_IO_GEDA::addSymbolGraphic(), ORCAD_CONVERTER::addSymbolPrimitive(), 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(), calcEdit(), Deserialize(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), ORCAD_CONVERTER::placeGraphics(), SCH_SHAPE::Plot(), PCB_SHAPE::rebakeFromTransform(), and PCB_SHAPE::SetBezierC2().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 362 of file eda_shape.h.
References SetEndY().
Referenced by BOOST_FIXTURE_TEST_CASE().
| void EDA_SHAPE::SetCachedArcData | ( | const VECTOR2I & | aStart, |
| const VECTOR2I & | aMid, | ||
| const VECTOR2I & | aEnd, | ||
| const VECTOR2I & | aCenter ) |
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.
| aStart | Cached start point. |
| aMid | Cached mid point. |
| aEnd | Cached end point. |
| aCenter | Calculated center point using the preceeding three. |
Definition at line 1392 of file eda_shape.cpp.
References m_arcMidData.
Referenced by SetArcGeometry().
| void EDA_SHAPE::SetCenter | ( | const VECTOR2I & | aCenter | ) |
Definition at line 1306 of file eda_shape.cpp.
References ARC, CIRCLE, delta, ELLIPSE, ELLIPSE_ARC, m_arcCenter, m_ellipse, m_end, m_hatchingDirty, m_shape, m_start, recalcEllipseArcEndpoints(), SetEnd(), SetStart(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_IO_GEDA::addSymbolGraphic(), PCAD2KICAD::PCAD_ARC::AddToBoard(), ARC_DRAW_BEHAVIOR::ApplyToShape(), ELLIPSE_ARC_DRAW_BEHAVIOR::ApplyToShape(), BOOST_AUTO_TEST_CASE(), ALTIUM_PCB::ConvertArcs6ToPcbShape(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), DIPTRACE::PCB_PARSER::CreateFootprint(), PADS_SCH::PADS_SCH_SYMBOL_BUILDER::createShape(), editArcCenterKeepEndpoints(), KI_ARC_EDIT::EditArcEndpointKeepCenter(), editArcEndpointKeepTangent(), PCB_IO_AUTOTRAX::emitArc(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), GRAPH_CONNECTION::GetShapes(), PCB_IO_PADS::loadFootprints(), PCB_IO_PADS::loadGraphicLines(), PCB_IO_PADS_BINARY::loadGraphicLines(), PCB_IO_EAGLE::loadPlain(), SCH_IO_EAGLE::loadSymbolWire(), CIRCLE_GEOM_SYNCER::OnCenterPointChange(), CIRCLE_GEOM_SYNCER::OnCenterRadiusChange(), ARC_GEOM_SYNCER::OnCSAChange(), PCB_IO_EAGLE::packageWire(), SCH_IO_ALTIUM::ParseArc(), PCB_IO_GEDA::parseElement(), GPCB_FPL_CACHE::parseFOOTPRINT(), PCB_IO_GEDA::parseLayer(), SPRINT_LAYOUT_PARSER::processCircle(), CONVERT_TOOL::SegmentToArc(), and PCB_IO_PADS::setPcbShapeArc().
|
inline |
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().
|
inline |
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().
| void EDA_SHAPE::SetCornerRadius | ( | int | aRadius | ) |
Definition at line 605 of file eda_shape.cpp.
References std::abs(), GetRectangleHeight(), GetRectangleWidth(), m_cornerRadius, m_shape, and RECTANGLE.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), Deserialize(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inlineprotected |
Definition at line 692 of file eda_shape.h.
References m_editState.
Referenced by PCB_SHAPE::SetEditState(), and SCH_SHAPE::SetEditState().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 370 of file eda_shape.h.
References m_ellipse, m_hatchingDirty, and recalcEllipseArcEndpoints().
Referenced by beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), Deserialize(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), PCB_SHAPE::rebakeFromTransform(), PCB_SHAPE::SetEllipseCenter(), and PCB_SHAPE::SetLibraryEllipse().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 416 of file eda_shape.h.
References m_ellipse, m_hatchingDirty, and recalcEllipseArcEndpoints().
Referenced by ELLIPSE_ARC_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), calcEdit(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), PCB_SHAPE::rebakeFromTransform(), PCB_SHAPE::SetEllipseEndAngle(), and PCB_SHAPE::SetLibraryEllipse().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 379 of file eda_shape.h.
References m_ellipse, m_hatchingDirty, and recalcEllipseArcEndpoints().
Referenced by ELLIPSE_ARC_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), PCB_SHAPE::rebakeFromTransform(), PCB_SHAPE::SetEllipseMajorRadius(), and PCB_SHAPE::SetLibraryEllipse().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 388 of file eda_shape.h.
References m_ellipse, m_hatchingDirty, and recalcEllipseArcEndpoints().
Referenced by ELLIPSE_ARC_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), PCB_SHAPE::rebakeFromTransform(), PCB_SHAPE::SetEllipseMinorRadius(), and PCB_SHAPE::SetLibraryEllipse().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 397 of file eda_shape.h.
References m_ellipse, m_hatchingDirty, and recalcEllipseArcEndpoints().
Referenced by ELLIPSE_ARC_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), PCB_SHAPE::rebakeFromTransform(), PCB_SHAPE::SetEllipseRotation(), and PCB_SHAPE::SetLibraryEllipse().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 407 of file eda_shape.h.
References m_ellipse, m_hatchingDirty, and recalcEllipseArcEndpoints().
Referenced by ELLIPSE_ARC_DRAW_BEHAVIOR::ApplyToShape(), beginEdit(), BOOST_AUTO_TEST_CASE(), calcEdit(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), PCB_SHAPE::rebakeFromTransform(), PCB_SHAPE::SetEllipseStartAngle(), and PCB_SHAPE::SetLibraryEllipse().
|
inlinevirtual |
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().
|
inline |
Definition at line 181 of file eda_shape.h.
References m_endEnding.
|
inline |
Definition at line 195 of file eda_shape.h.
References m_endEnding.
Referenced by 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(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
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().
|
inline |
Definition at line 187 of file eda_shape.h.
References m_endEnding.
Referenced by 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(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 197 of file eda_shape.h.
References m_endEnding.
Referenced by 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(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 343 of file eda_shape.h.
References m_end, SetEnd(), and VECTOR2< T >::x.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), PCB_TEXTBOX::SetLeft(), SetRectangleWidth(), SetRight(), and PCB_TEXTBOX::SetRight().
|
inline |
Definition at line 336 of file eda_shape.h.
References m_end, SetEnd(), and VECTOR2< T >::y.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SetBottom(), PCB_TEXTBOX::SetBottom(), SetRectangleHeight(), and PCB_TEXTBOX::SetTop().
|
inline |
Definition at line 160 of file eda_shape.h.
References m_fillColor.
Referenced by SCH_IO_ALTIUM::AddLibTextBox(), SCH_IO_ALTIUM::AddTextBox(), Deserialize(), SCH_TEXTBOX::Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), fixupSchFillMode(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_KICAD_SEXPR_PARSER::parseEllipseBody(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), ORCAD_CONVERTER::placeHierarchicalBlockPinFill(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), and DIALOG_TEXT_PROPERTIES::TransferDataFromWindow().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 142 of file eda_shape.h.
References setFilled().
Referenced by FEATURES_MANAGER::AddDimension(), PAD::AddPrimitivePoly(), PAD::AddPrimitivePoly(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), ALLEGRO::BOARD_BUILDER::buildFootprint(), ZONE_CREATE_HELPER::commitZone(), ALTIUM_PCB::ConvertFills6ToBoardItem(), ALTIUM_PCB::ConvertFills6ToFootprintItem(), DIPTRACE::PCB_PARSER::CreateFootprint(), CONVERT_TOOL::CreateLines(), MICROWAVE_TOOL::createPolygonShape(), CONVERT_TOOL::CreatePolys(), DRAWING_TOOL::DrawRectangle(), DRAWING_TOOL::drawShape(), PCB_IO_AUTOTRAX::emitFill(), ALTIUM_PCB::HelperParsePad6NonCopper(), PCB_IO_PADS_BINARY::loadCopperShapes(), FABMASTER::loadGraphics(), PCB_IO_EAGLE::loadPlain(), FABMASTER::loadPolygon(), PCB_IO_PADS_BINARY::loadZones(), CONVERT_TOOL::makePolysFromClosedGraphics(), GRAPHICS_CLEANER::mergeRects(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), SPRINT_LAYOUT_PARSER::processPoly(), PAD::Recombine(), DRAWING_TOOL::runSimpleShapeDraw(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), CONVERT_TOOL::SegmentToArc(), and SetFillModeProp().
|
inlineprotectedvirtual |
Reimplemented in SCH_SHAPE.
Definition at line 655 of file eda_shape.h.
References FILLED_SHAPE, m_fill, and NO_FILL.
Referenced by SetFilled().
| void EDA_SHAPE::SetFillMode | ( | FILL_T | aFill | ) |
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().
| void EDA_SHAPE::SetFillModeProp | ( | UI_FILL_MODE | aFill | ) |
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().
|
inline |
Definition at line 153 of file eda_shape.h.
References m_hatchingDirty.
Referenced by BOOST_AUTO_TEST_CASE(), and SCH_POINT_EDITOR::removeCorner().
|
inlinevirtual |
|
inlinevirtual |
|
inline |
Definition at line 171 of file eda_shape.h.
References m_stroke.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), and SCH_SCREEN::Plot().
| void EDA_SHAPE::SetLineStyle | ( | const LINE_STYLE | aStyle | ) |
Definition at line 3755 of file eda_shape.cpp.
References m_stroke.
Referenced by SCH_TEXTBOX::Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_ALTIUM::ParseLine(), PCB_TEXTBOX_DESC::PCB_TEXTBOX_DESC(), and SCH_SCREEN::Plot().
| void EDA_SHAPE::SetPolyPoints | ( | const std::vector< VECTOR2I > & | aPoints | ) |
Definition at line 2289 of file eda_shape.cpp.
References SHAPE_POLY_SET::Append(), GetPolyShape(), SHAPE_POLY_SET::NewOutline(), and SHAPE_POLY_SET::RemoveAllContours().
Referenced by KI_TEST::addPoly(), PAD::AddPrimitivePoly(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), MICROWAVE_TOOL::createPolygonShape(), ALTIUM_PCB::HelperParsePad6NonCopper(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), and scale().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 514 of file eda_shape.h.
References SHAPE_POLY_SET::Fracture(), GetPolyShape(), and SHAPE_POLY_SET::OutlineCount().
Referenced by BOOST_AUTO_TEST_CASE(), Deserialize(), TEST_EE_ITEM_FIXTURE::Instantiate(), CADSTAR_SCH_ARCHIVE_LOADER::loadSymdef(), SCH_SHAPE::Plot(), and PCB_SHAPE::SetPolyShape().
|
protected |
Definition at line 520 of file eda_shape.cpp.
References getPosition(), and move.
Referenced by PCB_SHAPE::SetPosition(), and SCH_SHAPE::SetPosition().
|
inline |
Definition at line 350 of file eda_shape.h.
References m_hatchingDirty, m_start, and SetEnd().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), and CIRCLE_GEOM_SYNCER::OnCenterRadiusChange().
| void EDA_SHAPE::SetRectangle | ( | const long long int & | aHeight, |
| const long long int & | aWidth ) |
Definition at line 652 of file eda_shape.cpp.
References m_rectangleHeight, m_rectangleWidth, m_shape, RECTANGLE, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
| void EDA_SHAPE::SetRectangleHeight | ( | const int & | aHeight | ) |
Definition at line 622 of file eda_shape.cpp.
References GetStartY(), m_rectangleHeight, m_shape, RECTANGLE, SetEndY(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), TEST_BOARD_ITEM_FIXTURE::Instantiate(), and PCB_TABLECELL::PCB_TABLECELL().
| void EDA_SHAPE::SetRectangleWidth | ( | const int & | aWidth | ) |
Definition at line 637 of file eda_shape.cpp.
References GetStartX(), m_rectangleWidth, m_shape, RECTANGLE, SetEndX(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), TEST_BOARD_ITEM_FIXTURE::Instantiate(), and PCB_TABLECELL::PCB_TABLECELL().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 361 of file eda_shape.h.
References SetEndX().
Referenced by BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), and BOOST_FIXTURE_TEST_CASE().
|
inlinevirtual |
Reimplemented in PCB_SHAPE, and PCB_TEXTBOX.
Definition at line 174 of file eda_shape.h.
References m_shape.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), Deserialize(), rotate(), PCB_SHAPE::SetShape(), PCB_TEXTBOX::SetShape(), and GRAPHICS_IMPORTER::setupSplineOrLine().
|
inlinevirtual |
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().
|
inline |
Definition at line 178 of file eda_shape.h.
References m_startEnding.
|
inline |
Definition at line 190 of file eda_shape.h.
References m_startEnding.
Referenced by 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(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 200 of file eda_shape.h.
References m_startEnding.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 184 of file eda_shape.h.
References m_startEnding.
Referenced by 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(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 192 of file eda_shape.h.
References m_startEnding.
Referenced by 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(), and EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 293 of file eda_shape.h.
References m_start, SetStart(), and VECTOR2< T >::x.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SetLeft(), PCB_TEXTBOX::SetLeft(), and PCB_TEXTBOX::SetRight().
|
inline |
Definition at line 286 of file eda_shape.h.
References m_start, SetStart(), and VECTOR2< T >::y.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), PCB_TEXTBOX::SetBottom(), SetTop(), and PCB_TEXTBOX::SetTop().
|
inlinevirtual |
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().
|
virtual |
Reimplemented in PCB_SHAPE.
Definition at line 3748 of file eda_shape.cpp.
References m_hatchingDirty, and m_stroke.
Referenced by 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(), SCH_TEXTBOX::Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_EAGLE::loadSymbolRectangle(), and SCH_IO_ALTIUM::ParseEllipse().
| wxString EDA_SHAPE::SHAPE_T_asString | ( | ) | const |
Definition at line 501 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, m_shape, POLY, RECTANGLE, SEGMENT, and UNDEFINED.
Referenced by SCH_SHAPE::AddPoint(), BOARD_ADAPTER::addShape(), GRAPHICS_CLEANER::areEquivalent(), beginEdit(), calcEdit(), CheckLibSymbolGraphics(), continueEdit(), endEdit(), flip(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::format(), getBoundingBox(), getCenter(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), SCH_SHAPE::GetItemDescription(), GetLength(), SCH_SHAPE::GetMenuImage(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), hitTest(), hitTest(), IsClockwiseArc(), IsClosed(), GRAPHICS_CLEANER::isNullShape(), makeEffectiveShapes(), SCH_POINT_EDITOR::makePointsAndBehavior(), move(), operator=(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), rotate(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), SCH_IO_KICAD_SEXPR::saveShape(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveSymbolDrawItem(), scale(), SetCenter(), SetRectangle(), SetRectangleHeight(), SetRectangleWidth(), shapeNeedsUpdate(), TransformShapeToPolygon(), and UpdateHatching().
| void EDA_SHAPE::ShapeGetMsgPanelInfo | ( | EDA_DRAW_FRAME * | aFrame, |
| std::vector< MSG_PANEL_ITEM > & | aList ) |
Definition at line 1517 of file eda_shape.cpp.
References _, std::abs(), ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, GetArcAngle(), GetEllipseEndAngle(), GetEllipseMajorRadius(), GetEllipseMinorRadius(), GetEllipseRotation(), GetEllipseStartAngle(), GetEnd(), EDA_BASE_FRAME::GetFrameType(), getFriendlyName(), GetLength(), GetPolyShape(), GetRadius(), GetStart(), m_shape, m_stroke, EDA_UNIT_UTILS::UI::MessageTextFromValue(), UNITS_PROVIDER::MessageTextFromValue(), SHAPE_POLY_SET::Outline(), SHAPE_LINE_CHAIN::PointCount(), POLY, RADIANS_T, RECTANGLE, and SEGMENT.
Referenced by PCB_SHAPE::GetMsgPanelInfo(), and SCH_SHAPE::GetMsgPanelInfo().
| bool EDA_SHAPE::ShortenArcForEndings | ( | EDA_ANGLE & | aStartAngle, |
| EDA_ANGLE & | aArcAngle, | ||
| double | aRadius, | ||
| int | aLineWidth ) const |
Shorten an arc body for line endings.
Definition at line 4239 of file eda_shape.cpp.
References std::abs(), ANGLE_0, EDA_ANGLE::AsRadians(), DEGREES_T, m_endEnding, m_startEnding, and RAD2DEG().
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KIGFX::PCB_PAINTER::draw(), makeShortenedBodyShapes(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformWithLineEndingsToPolygon().
| bool EDA_SHAPE::ShortenBodyPolyPoints | ( | std::vector< VECTOR2I > & | aPoints, |
| bool | aClosed, | ||
| int | aOutlineIdx, | ||
| int | aLineWidth ) const |
Apply line-ending body shortening to copied/generated polyline points.
Line endings belong to the first open outline only. Other outlines are returned unchanged.
Definition at line 4451 of file eda_shape.cpp.
References ShortenPolyForEndings().
Referenced by GetShortenedBodyPolyPoints(), and SCH_SHAPE::Plot().
| std::optional< BEZIER< double > > EDA_SHAPE::ShortenedBezierCurve | ( | int | aLineWidth | ) | const |
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().
| std::vector< VECTOR2D > EDA_SHAPE::ShortenedBezierPolyline | ( | int | aLineWidth | ) | const |
Return the flattened Bezier polyline after line-ending shortening.
Definition at line 4380 of file eda_shape.cpp.
References getMaxError(), BEZIER_POLY::GetPoly(), and ShortenedBezierCurve().
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), MakeEffectiveShapesForStroking(), makeShortenedBodyShapes(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformWithLineEndingsToPolygon().
| bool EDA_SHAPE::ShortenPolyForEndings | ( | VECTOR2D & | aFirst, |
| VECTOR2D & | aLast, | ||
| const VECTOR2D & | aSecond, | ||
| const VECTOR2D & | aPenultimate, | ||
| int | aLineWidth ) const |
Definition at line 4399 of file eda_shape.cpp.
References m_endEnding, and m_startEnding.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and ShortenBodyPolyPoints().
|
static |
Shorten a segment body for line endings.
Static so SCH_LINE (which doesn't inherit EDA_SHAPE) can use it too.
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().
| wxString EDA_SHAPE::ShowShape | ( | ) | const |
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=().
| double EDA_SHAPE::Similarity | ( | const EDA_SHAPE & | aOther | ) | const |
Definition at line 3879 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), EDA_SHAPE(), STROKE_PARAMS::GetLineStyle(), GetPolyShape(), GetShape(), STROKE_PARAMS::GetWidth(), alg::longest_common_subset(), m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_endEnding, m_fill, m_fillColor, m_start, m_startEnding, m_stroke, and SHAPE_POLY_SET::TotalVertices().
Referenced by PCB_SHAPE::Similarity(), and SCH_SHAPE::Similarity().
| void EDA_SHAPE::SwapShape | ( | EDA_SHAPE * | aImage | ) |
Definition at line 3436 of file eda_shape.cpp.
References EDA_SHAPE(), image, m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_editState, m_ellipse, m_end, m_endEnding, m_endsSwapped, m_fill, m_fillColor, m_hatchingDirty, m_poly, m_shape, m_start, m_startEnding, m_stroke, and SWAPITEM.
Referenced by operator=(), PCB_SHAPE::swapData(), and SCH_SHAPE::swapData().
| void EDA_SHAPE::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.
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().
| void EDA_SHAPE::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.
Circles and arcs are approximated by segments.
| aBuffer | is a buffer to store the polygon. |
| aClearance | is the clearance around the pad. |
| aError | is the maximum deviation from a true arc. |
| aErrorLoc | whether any approximation error should be placed inside or outside |
| ignoreLineWidth | is 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().
| void EDA_SHAPE::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.
Definition at line 2798 of file eda_shape.cpp.
References ARC, BEZIER, CalcArcAngles(), SHAPE_POLY_SET::COutline(), end, SHAPE_ARC::GetArcMid(), GetEffectiveWidth(), GetEnd(), SHAPE_ARC::GetP0(), SHAPE_ARC::GetP1(), GetPolyShape(), GetRadius(), GetShortenedBodyPolyPoints(), GetStart(), GetWidth(), SHAPE_LINE_CHAIN::IsClosed(), IsHatchedFill(), IsPolyShapeValid(), IsProxyItem(), IsSolidFill(), m_arcCenter, m_endEnding, m_shape, m_startEnding, SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, RotatePoint(), SEGMENT, ShortenArcForEndings(), ShortenedBezierPolyline(), ShortenSegmentForEndings(), TransformArcToPolygon(), TransformLineEndingsToPolygon(), TransformOvalToPolygon(), and TransformShapeToPolygon().
Referenced by addItemPolysWithEndings(), addItemPolysWithEndings(), addItemPolysWithEndings(), ZONE_FILLER::addKnockout(), BOOST_AUTO_TEST_CASE(), and EXPORTER_STEP::buildGraphic3DShape().
|
virtual |
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().
|
protected |
Definition at line 750 of file eda_shape.h.
Referenced by calcEdit(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), flip(), GetArcMid(), getCenter(), GetRadius(), makeEffectiveShapes(), makeShortenedBodyShapes(), move(), operator=(), operator==(), recalcEllipseArcEndpoints(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenter(), Similarity(), SwapShape(), and TransformWithLineEndingsToPolygon().
|
protected |
Definition at line 751 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), GetArcMid(), move(), operator=(), rotate(), SetArcGeometry(), and SetCachedArcData().
|
protected |
Definition at line 753 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), Compare(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), flip(), GetBezierC1(), GetEndingTangents(), hitTest(), hitTest(), move(), operator=(), operator==(), rotate(), scale(), SetBezierC1(), ShortenedBezierCurve(), Similarity(), and SwapShape().
|
protected |
Definition at line 754 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), Compare(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), flip(), GetBezierC2(), GetEndingTangents(), hitTest(), hitTest(), move(), operator=(), operator==(), rotate(), scale(), SetBezierC2(), ShortenedBezierCurve(), Similarity(), and SwapShape().
|
protected |
Definition at line 756 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), GetBezierPoints(), getBoundingBox(), SCH_SHAPE::GetItemDescription(), GetLength(), hitTest(), hitTest(), IsClosed(), move(), operator=(), operator==(), SCH_SHAPE::Plot(), RebuildBezierToSegmentsPointsList(), rotate(), Similarity(), and SwapShape().
|
protected |
Definition at line 745 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), GetCornerRadius(), hitTest(), hitTest(), makeEffectiveShapes(), operator=(), rotate(), SetCornerRadius(), and SwapShape().
|
protected |
Definition at line 760 of file eda_shape.h.
Referenced by beginEdit(), calcEdit(), continueEdit(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), endEdit(), operator=(), recalcEllipseArcEndpoints(), setEditState(), and SwapShape().
|
protected |
Definition at line 757 of file eda_shape.h.
Referenced by buildShapeEllipse(), calcEdit(), Compare(), EDA_SHAPE(), flip(), getCenter(), GetEllipse(), GetEllipseCenter(), GetEllipseEndAngle(), GetEllipseMajorRadius(), GetEllipseMinorRadius(), GetEllipseRotation(), GetEllipseStartAngle(), move(), operator=(), operator==(), recalcEllipseArcEndpoints(), rotate(), scale(), SetCenter(), SetEllipseCenter(), SetEllipseEndAngle(), SetEllipseMajorRadius(), SetEllipseMinorRadius(), SetEllipseRotation(), SetEllipseStartAngle(), and SwapShape().
|
protected |
Definition at line 748 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), calcEdit(), Compare(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), flip(), GetArcMid(), getCenter(), PCB_TEXTBOX::GetCornersInSequence(), SCH_TEXTBOX::GetDrawPos(), GetEnd(), GetEndingTangents(), GetEndX(), GetEndY(), SCH_SHAPE::GetItemDescription(), GetRadius(), hitTest(), hitTest(), IsClockwiseArc(), makeEffectiveShapes(), move(), operator=(), operator==(), SCH_SHAPE::Plot(), SCH_TEXTBOX::Plot(), recalcEllipseArcEndpoints(), PCB_TEXTBOX::Rotate(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenter(), SetCenterX(), SetCenterY(), SetEnd(), SetEndX(), SetEndY(), ShortenedBezierCurve(), Similarity(), SwapShape(), and PCB_TEXTBOX::syncLibCoords().
|
protected |
Definition at line 736 of file eda_shape.h.
Referenced by Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), GetEndEnding(), GetEndEndingLength(), GetEndEndingStrokeWidth(), GetEndEndingStyle(), GetEndEndingWidth(), GetEndingTangents(), GetLineEndingsBoundingBox(), hitTest(), hitTest(), hitTest(), MakeEffectiveShapesForStroking(), MakeLineEndingEffectiveShapes(), makeShortenedBodyShapes(), operator=(), operator==(), Serialize(), SetEndEnding(), SetEndEndingLength(), SetEndEndingStrokeWidth(), SetEndEndingStyle(), SetEndEndingWidth(), ShortenArcForEndings(), ShortenedBezierCurve(), ShortenPolyForEndings(), Similarity(), SwapShape(), TransformLineEndingsToPolygon(), and TransformWithLineEndingsToPolygon().
|
protected |
Definition at line 732 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), EndsSwapped(), operator=(), SetArcAngleAndEnd(), SetArcGeometry(), SetEnd(), SetStart(), and SwapShape().
|
protected |
Definition at line 737 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), GetFillMode(), GetFillModeProp(), operator=(), operator==(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), SCH_SHAPE::SetFilled(), setFilled(), SCH_SHAPE::setFilled(), SetFillMode(), Similarity(), SwapShape(), and SCH_SHAPE::ViewGetLayers().
|
protected |
Definition at line 738 of file eda_shape.h.
Referenced by Deserialize(), EDA_SHAPE(), EDA_SHAPE(), GetFillColor(), operator=(), operator==(), Serialize(), SetFillColor(), Similarity(), and SwapShape().
|
mutableprotected |
Definition at line 740 of file eda_shape.h.
Referenced by GetHatching(), GetHatchLines(), hatching(), hatchLines(), move(), and operator=().
|
mutableprotected |
Definition at line 741 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), flip(), move(), operator=(), rotate(), scale(), SetCenter(), SetCenterX(), SetCenterY(), SetEllipseCenter(), SetEllipseEndAngle(), SetEllipseMajorRadius(), SetEllipseMinorRadius(), SetEllipseRotation(), SetEllipseStartAngle(), SetEnd(), SetFillMode(), SetHatchingDirty(), PCB_SHAPE::SetLibStrokeWidth(), SetRadius(), SetStart(), SetWidth(), PCB_SHAPE::SetWidth(), SwapShape(), UpdateHatching(), and PCB_SHAPE::UpdateHatching().
|
mutableprotected |
Definition at line 758 of file eda_shape.h.
Referenced by EDA_SHAPE(), GetPolyShape(), GetPolyShape(), operator=(), and SwapShape().
|
protected |
Definition at line 761 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), IsProxyItem(), PCB_SHAPE::IsProxyItem(), operator=(), SetIsProxyItem(), and PCB_SHAPE::SetIsProxyItem().
|
protected |
Definition at line 743 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), operator=(), SetRectangle(), and SetRectangleHeight().
|
protected |
Definition at line 744 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), operator=(), SetRectangle(), and SetRectangleWidth().
|
protected |
Definition at line 733 of file eda_shape.h.
Referenced by buildShapeEllipse(), Compare(), EDA_SHAPE(), EDA_SHAPE(), PCB_SHAPE::Flip(), flip(), getBoundingBox(), getCenter(), PCB_SHAPE::GetConnectionPoints(), GetCornersInSequence(), PCB_TEXTBOX::GetCornersInSequence(), GetEndingTangents(), PCB_SHAPE::GetFocusPosition(), getFriendlyName(), GetLength(), GetLineEndingEndpoints(), getPosition(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetShape(), hitTest(), hitTest(), IsClockwiseArc(), IsClosed(), PCB_SHAPE::IsType(), SCH_RULE_AREA::MakeEffectiveShapes(), makeEffectiveShapes(), MakeEffectiveShapesForStroking(), makeShortenedBodyShapes(), move(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), PCB_TEXTBOX::OnFootprintTransformed(), operator=(), operator==(), PCB_SHAPE::rebakeFromTransform(), RebuildBezierToSegmentsPointsList(), recalcEllipseArcEndpoints(), rotate(), scale(), SetCenter(), SetCornerRadius(), SetRectangle(), SetRectangleHeight(), SetRectangleWidth(), SetShape(), SHAPE_T_asString(), ShapeGetMsgPanelInfo(), ShortenedBezierCurve(), ShowShape(), SwapShape(), PCB_SHAPE::syncLibCoords(), TransformShapeToPolygon(), TransformWithLineEndingsToPolygon(), and UpdateHatching().
|
protected |
Definition at line 747 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), calcEdit(), Compare(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), flip(), GetArcMid(), getCenter(), PCB_TEXTBOX::GetCornersInSequence(), SCH_TEXTBOX::GetDrawPos(), GetEndingTangents(), SCH_SHAPE::GetItemDescription(), getPosition(), GetRadius(), GetStart(), GetStartX(), GetStartY(), hitTest(), hitTest(), IsClockwiseArc(), makeEffectiveShapes(), move(), operator=(), operator==(), SCH_SHAPE::Plot(), SCH_TEXTBOX::Plot(), recalcEllipseArcEndpoints(), PCB_TEXTBOX::Rotate(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenter(), SetCenterX(), SetCenterY(), SetRadius(), SetStart(), SetStartX(), SetStartY(), ShortenedBezierCurve(), Similarity(), SwapShape(), and PCB_TEXTBOX::syncLibCoords().
|
protected |
Definition at line 735 of file eda_shape.h.
Referenced by Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), GetEndingTangents(), GetLineEndingsBoundingBox(), GetStartEnding(), GetStartEndingLength(), GetStartEndingStrokeWidth(), GetStartEndingStyle(), GetStartEndingWidth(), hitTest(), hitTest(), hitTest(), MakeEffectiveShapesForStroking(), MakeLineEndingEffectiveShapes(), makeShortenedBodyShapes(), operator=(), operator==(), Serialize(), SetStartEnding(), SetStartEndingLength(), SetStartEndingStrokeWidth(), SetStartEndingStyle(), SetStartEndingWidth(), ShortenArcForEndings(), ShortenedBezierCurve(), ShortenPolyForEndings(), Similarity(), SwapShape(), TransformLineEndingsToPolygon(), and TransformWithLineEndingsToPolygon().
|
protected |
Definition at line 734 of file eda_shape.h.
Referenced by Compare(), Deserialize(), SCH_TEXTBOX::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EDA_SHAPE(), PCB_TEXTBOX::GetBorderWidth(), SCH_SHAPE::GetEffectiveLineStyle(), GetLineColor(), GetLineStyle(), PCB_TEXTBOX::GetMsgPanelInfo(), SCH_RULE_AREA::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), PCB_SHAPE::GetStroke(), SCH_SHAPE::GetStroke(), GetWidth(), operator=(), operator==(), Serialize(), PCB_TEXTBOX::SetBorderWidth(), PCB_SHAPE::SetLibStrokeWidth(), SetLineColor(), SetLineStyle(), PCB_SHAPE::SetStroke(), SCH_SHAPE::SetStroke(), SetWidth(), PCB_SHAPE::SetWidth(), ShapeGetMsgPanelInfo(), Similarity(), PCB_SHAPE::StyleFromSettings(), and SwapShape().