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. | |
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. | |
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 |
bool | IsClosed () const |
COLOR4D | GetFillColor () const |
void | SetFillColor (const COLOR4D &aColor) |
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 |
void | SetShape (SHAPE_T aShape) |
SHAPE_T | GetShape () const |
const VECTOR2I & | GetStart () const |
Return the starting point of the graphic. | |
int | GetStartY () const |
int | GetStartX () const |
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 |
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) |
void | SetBezierC1 (const VECTOR2I &aPt) |
const VECTOR2I & | GetBezierC1 () const |
void | SetBezierC2 (const VECTOR2I &aPt) |
const VECTOR2I & | GetBezierC2 () const |
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. | |
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 |
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 |
void | DupPolyPointsList (std::vector< VECTOR2I > &aBuffer) const |
Duplicate the list of corners in a std::vector<VECTOR2I>. | |
int | GetPointCount () const |
SHAPE_POLY_SET & | GetPolyShape () |
const SHAPE_POLY_SET & | GetPolyShape () const |
bool | IsPolyShapeValid () const |
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. | |
virtual std::vector< SHAPE * > | MakeEffectiveShapes (bool aEdgeOnly=false) const |
Make a set of SHAPE objects representing the EDA_SHAPE. | |
void | ShapeGetMsgPanelInfo (EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) |
void | SetLength (const double &aLength) |
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 |
void | SetSegmentAngle (const EDA_ANGLE &aAngle) |
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. | |
int | Compare (const EDA_SHAPE *aOther) const |
double | Similarity (const EDA_SHAPE &aOther) const |
bool | operator== (const EDA_SHAPE &aOther) const |
Protected Member Functions | |
wxString | getFriendlyName () const |
void | setPosition (const VECTOR2I &aPos) |
VECTOR2I | getPosition () const |
virtual void | setFilled (bool aFlag) |
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) const |
Make a set of SHAPE objects representing the EDA_SHAPE. | |
virtual int | getMaxError () const |
Protected Attributes | |
bool | m_endsSwapped |
SHAPE_T | m_shape |
STROKE_PARAMS | m_stroke |
FILL_T | m_fill |
COLOR4D | m_fillColor |
SHAPE_POLY_SET | m_hatching |
bool | m_hatchingDirty |
long long int | m_rectangleHeight |
long long int | m_rectangleWidth |
int | m_cornerRadius |
double | m_segmentLength |
EDA_ANGLE | m_segmentAngle |
VECTOR2I | m_start |
VECTOR2I | m_end |
VECTOR2I | m_arcCenter |
ARC_MID | m_arcMidData |
VECTOR2I | m_bezierC1 |
VECTOR2I | m_bezierC2 |
std::vector< VECTOR2I > | m_bezierPoints |
SHAPE_POLY_SET | m_poly |
int | m_editState |
bool | m_proxyItem |
Definition at line 87 of file eda_shape.h.
Definition at line 51 of file eda_shape.cpp.
References DEFAULT, m_cornerRadius, m_editState, m_endsSwapped, m_fill, m_fillColor, m_hatchingDirty, m_proxyItem, m_rectangleHeight, m_rectangleWidth, m_segmentLength, m_shape, m_stroke, and UNSPECIFIED.
Referenced by Compare(), EDA_SHAPE_MOCK::EDA_SHAPE_MOCK(), operator==(), PCB_SHAPE::PCB_SHAPE(), PCB_SHAPE::PCB_SHAPE(), 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 73 of file eda_shape.cpp.
References DEFAULT, m_cornerRadius, m_editState, m_endsSwapped, m_fill, m_hatchingDirty, m_proxyItem, m_rectangleHeight, m_rectangleWidth, m_segmentLength, m_shape, m_stroke, SH_ARC, SH_CIRCLE, SH_COMPOUND, SH_LINE_CHAIN, SH_NULL, SH_POLY_SET, SH_POLY_SET_TRIANGLE, SH_SEGMENT, SH_SIMPLE, SHAPE_BASE::Type(), UNDEFINED, and UNSPECIFIED.
|
virtual |
Definition at line 68 of file eda_shape.cpp.
|
protected |
Definition at line 1990 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, getMaxError(), GetShape(), m_editState, m_poly, POLY, RebuildBezierToSegmentsPointsList(), RECTANGLE, SEGMENT, SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetEnd(), SetStart(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_SHAPE::BeginEdit().
|
protected |
Definition at line 942 of file eda_shape.cpp.
References BEZIER_POLY::GetPoly(), m_bezierC1, m_bezierC2, m_end, and m_start.
Referenced by makeEffectiveShapes(), and RebuildBezierToSegmentsPointsList().
Calc arc start and end angles such that aStartAngle < aEndAngle.
Each may be between -360.0 and 360.0.
Definition at line 1013 of file eda_shape.cpp.
References ANGLE_360, getCenter(), GetEnd(), and GetStart().
Referenced by CREEPAGE_GRAPH::Addshape(), computeArcBBox(), KIGFX::PCB_PAINTER::draw(), GetArcAngle(), hitTest(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SegmentIntersectsBoard(), and CREEPAGE_GRAPH::TransformEdgeToCreepShapes().
|
protected |
Definition at line 2065 of file eda_shape.cpp.
References ANGLE_180, ARC, BEZIER, CIRCLE, VECTOR2< T >::Distance(), GetArcAngle(), GetEnd(), getMaxError(), GetRadius(), GetShape(), GetStart(), KiROUND(), m_arcCenter, m_editState, m_end, m_poly, m_start, POLY, radius, RebuildBezierToSegmentsPointsList(), RECTANGLE, SEGMENT, SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetEnd(), SetStart(), SHAPE_T_asString(), sq, VECTOR2< T >::SquaredEuclideanNorm(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SCH_SHAPE::CalcEdit().
int EDA_SHAPE::Compare | ( | const EDA_SHAPE * | aOther | ) | const |
Definition at line 2291 of file eda_shape.cpp.
References ARC, BEZIER, SHAPE_POLY_SET::CVertex(), EDA_SHAPE(), GetArcMid(), STROKE_PARAMS::GetLineStyle(), STROKE_PARAMS::GetWidth(), m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_end, m_fill, m_poly, m_shape, m_start, m_stroke, POLY, RECTANGLE, TEST, TEST_E, TEST_PT, and SHAPE_POLY_SET::TotalVertices().
Referenced by SCH_SHAPE::compare(), and BOARD::cmp_drawings::operator()().
|
protected |
Definition at line 1779 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 2031 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::Append(), ARC, BEZIER, CIRCLE, SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::GetPointCount(), GetShape(), m_editState, m_poly, POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by 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, and PCB_TEXTBOX.
Definition at line 243 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, DASH, DASHDOT, DASHDOTDOT, DEFAULT, DOT, getMaxError(), m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_editState, m_end, m_endsSwapped, m_proxyItem, m_start, POLY, RebuildBezierToSegmentsPointsList(), RECTANGLE, SEGMENT, SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetCornerRadius(), SetEnd(), SetFilled(), SetLineStyle(), SetPolyShape(), SetShape(), SetStart(), SetWidth(), SOLID, kiapi::common::UnpackPolySet(), and kiapi::common::UnpackVector2().
Referenced by PCB_SHAPE::Deserialize().
void EDA_SHAPE::DupPolyPointsList | ( | std::vector< VECTOR2I > & | aBuffer | ) | const |
Duplicate the list of corners in a std::vector<VECTOR2I>.
It must be used only to convert the SHAPE_POLY_SET internal corner buffer to a list of VECTOR2Is, and nothing else, because it duplicates the buffer, that is inefficient to know for instance the corner count.
Definition at line 1958 of file eda_shape.cpp.
References m_poly.
Referenced by PCB_GRID_HELPER::computeAnchors(), SegmentIntersectsBoard(), and CREEPAGE_GRAPH::TransformEdgeToCreepShapes().
|
protected |
Finish editing the shape.
aClosed | Should polygon shapes be closed (yes for pcbnew/fpeditor, no for libedit). |
Definition at line 2227 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::GetPointCount(), GetShape(), m_poly, POLY, RECTANGLE, SHAPE_LINE_CHAIN::Remove(), SEGMENT, SHAPE_LINE_CHAIN::SetClosed(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_SHAPE::EndEdit().
|
inline |
Have the start and end points been swapped since they were set?
Definition at line 281 of file eda_shape.h.
References m_endsSwapped.
Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
protected |
Definition at line 883 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, getMaxError(), m_arcCenter, m_bezierC1, m_bezierC2, m_end, m_hatchingDirty, m_poly, m_shape, m_start, MIRROR(), POLY, RebuildBezierToSegmentsPointsList(), 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 1104 of file eda_shape.cpp.
References CalcArcAngles().
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), calcEdit(), ALTIUM_PCB::ConvertArcs6ToBoardItemOnLayer(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), GENCAD_EXPORTER::footprintWriteShape(), GetArcMid(), GetLength(), idf_export_outline(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), BRDITEMS_PLOTTER::PlotShape(), OUTSET_ROUTINE::ProcessItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), ShapeGetMsgPanelInfo(), and AR_MATRIX::TraceSegmentPcb().
VECTOR2I EDA_SHAPE::GetArcMid | ( | ) | const |
Definition at line 1000 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(), KI_TEST::CheckFpShape(), Compare(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), CONVERT_TOOL::CreateLines(), editArcMidKeepEndpoints(), PCB_IO_KICAD_SEXPR::format(), formatArc(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), GRAPH_CONNECTION::GetShapes(), hash_fp_item(), IsClockwiseArc(), CONVERT_TOOL::makePolysFromChainedSegs(), SCH_SHAPE::Plot(), processShapeSegment(), CONVERT_TOOL::SegmentToArc(), Serialize(), SetArcGeometry(), shapeNeedsUpdate(), PLOTTER::ThickArc(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), and ARC_GEOM_SYNCER::updateSME().
|
inline |
Definition at line 255 of file eda_shape.h.
References m_bezierC1.
Referenced by PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), KI_TEST::CheckFpShape(), ConnectBoardShapes(), KIGFX::PCB_PAINTER::draw(), PCB_IO_KICAD_SEXPR::format(), formatBezier(), hash_fp_item(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), shapeNeedsUpdate(), TransformShapeToPolygon(), and BEZIER_GEOM_SYNCER::updateBezier().
|
inline |
Definition at line 258 of file eda_shape.h.
References m_bezierC2.
Referenced by PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), KI_TEST::CheckFpShape(), ConnectBoardShapes(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawBezier(), PCB_IO_KICAD_SEXPR::format(), formatBezier(), hash_fp_item(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), shapeNeedsUpdate(), TransformShapeToPolygon(), and BEZIER_GEOM_SYNCER::updateBezier().
|
inline |
Definition at line 320 of file eda_shape.h.
References m_bezierPoints.
Referenced by FEATURES_MANAGER::AddShape(), KIGFX::PCB_PAINTER::draw(), GRAPHICS_CLEANER::isNullShape(), CONVERT_TOOL::makePolysFromChainedSegs(), processShapeSegment(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), and GRAPHICS_IMPORTER::setupSplineOrLine().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 247 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 1229 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, computeArcBBox(), GetEnd(), GetRadius(), GetRectCorners(), GetStart(), GetWidth(), BOX2< Vec >::Inflate(), m_bezierPoints, m_poly, 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(), and hitTest().
VECTOR2I EDA_SHAPE::getCenter | ( | ) | const |
Definition at line 955 of file eda_shape.cpp.
References ARC, BEZIER, BOX2< Vec >::Centre(), CIRCLE, getBoundingBox(), m_arcCenter, 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 443 of file eda_shape.cpp.
References m_cornerRadius.
Referenced by BOARD_ADAPTER::addShape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), 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(), Serialize(), TransformShapeToPolygon(), UpdateHatching(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints().
Definition at line 1663 of file eda_shape.cpp.
References ANGLE_0, ANGLE_180, ANGLE_270, ANGLE_90, BOX2< Vec >::GetBottom(), getBoundingBox(), BOX2< Vec >::GetLeft(), GetPolyShape(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetTop(), EDA_ANGLE::IsCardinal(), BOX2< Vec >::Normalize(), EDA_ANGLE::Normalize(), SHAPE_POLY_SET::OutlineCount(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PCB_TABLE::DrawBorders(), SCH_TABLE::DrawBorders(), PCB_TEXTBOX::GetDrawPos(), PCB_TABLE::GetEffectiveShape(), PCB_TEXTBOX::GetShownText(), and PCB_TEXTBOX::Rotate().
|
inlineprotectedvirtual |
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 157 of file eda_shape.h.
References GetWidth().
Referenced by GetHatchLineWidth(), and makeEffectiveShapes().
|
inline |
Return the ending point of the graphic.
Definition at line 215 of file eda_shape.h.
References m_end.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), CalcArcAngles(), calcEdit(), KI_TEST::CheckFpShape(), CheckLibSymbolGraphics(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), CONVERT_TOOL::CreateLines(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), DRAWING_TOOL::DrawBezier(), DRAWING_TOOL::DrawLine(), editArcEndpointKeepCenter(), editArcEndpointKeepTangent(), GENCAD_EXPORTER::footprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatRect(), GetBotRight(), PCB_TEXTBOX::GetBotRight(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), GetLength(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), SCH_TABLECELL::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), GetRectCorners(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), GetSegmentAngle(), GRAPH_CONNECTION::GetShapes(), SCH_TEXTBOX::GetShownText(), CONVERT_TOOL::getStartEndPoints(), PCB_TEXTBOX::GetTopLeft(), hash_fp_item(), hitTest(), hitTest(), idf_export_outline(), 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(), GRAPHICS_CLEANER::mergeRects(), EDIT_TOOL::ModifyLines(), PCB_SHAPE::Normalize(), PCB_TABLE::Normalize(), SCH_SHAPE::Normalize(), SCH_TABLE::Normalize(), PCB_SHAPE::NormalizeForCompare(), FOOTPRINT::cmp_drawings::operator()(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotShape(), OUTSET_ROUTINE::ProcessItem(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), LINE_FILLET_ROUTINE::ProcessLinePair(), processShapeSegment(), 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::saveRectangle(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), SegmentIntersectsBoard(), PCB_SELECTION_TOOL::selectAllConnectedShapes(), Serialize(), PCB_TEXTBOX::Serialize(), GRAPHICS_IMPORTER::setupSplineOrLine(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), DRC_TEST_PROVIDER_MISC::testOutline(), PLOTTER::ThickArc(), AR_MATRIX::TraceSegmentPcb(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), BEZIER_GEOM_SYNCER::updateBezier(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), RECTANGLE_GEOM_SYNCER::updateCorners(), LINE_GEOM_SYNCER::updateEnds(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints(), LINE_GEOM_SYNCER::updatePolar(), and ARC_GEOM_SYNCER::updateSME().
|
inline |
Definition at line 217 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 216 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 152 of file eda_shape.h.
References m_fillColor.
Referenced by SCH_EDIT_TABLE_TOOL::copyCell(), SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape(), SCH_DRAWING_TOOLS::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(), and DIALOG_TEXT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 142 of file eda_shape.h.
References m_fill.
Referenced by PCB_IO_IPC2581::addShape(), KI_TEST::CheckFpShape(), SCH_EDIT_TABLE_TOOL::copyCell(), SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape(), KIGFX::SCH_PAINTER::draw(), SCH_DRAWING_TOOLS::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(), shapeNeedsUpdate(), and UpdateHatching().
UI_FILL_MODE EDA_SHAPE::GetFillModeProp | ( | ) | const |
Definition at line 590 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 1147 of file eda_shape.cpp.
References _, ARC, BEZIER, CIRCLE, IsProxyItem(), m_shape, POLY, RECTANGLE, and SEGMENT.
Referenced by PCB_SHAPE::GetFriendlyName(), and ShapeGetMsgPanelInfo().
|
inline |
Definition at line 148 of file eda_shape.h.
References m_hatching.
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), hitTest(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformShapeToPolygon().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 159 of file eda_shape.h.
References GetHatchLineWidth().
Referenced by UpdateHatching(), and PCB_SHAPE::UpdateHatching().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 158 of file eda_shape.h.
References GetEffectiveWidth().
Referenced by GetHatchLineSpacing(), and UpdateHatching().
double EDA_SHAPE::GetLength | ( | ) | const |
Definition at line 384 of file eda_shape.cpp.
References ARC, EDA_ANGLE::AsRadians(), BEZIER, VECTOR2< T >::Distance(), GetArcAngle(), GetEnd(), GetRadius(), GetStart(), m_bezierPoints, m_poly, m_shape, POLY, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by 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 165 of file eda_shape.h.
References m_stroke.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
LINE_STYLE EDA_SHAPE::GetLineStyle | ( | ) | const |
Definition at line 2505 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 Serialize().
|
inlineprotectedvirtual |
Reimplemented in PCB_SHAPE, and SCH_SHAPE.
Definition at line 488 of file eda_shape.h.
Referenced by beginEdit(), calcEdit(), Deserialize(), flip(), makeEffectiveShapes(), scale(), and UpdateHatching().
int EDA_SHAPE::GetPointCount | ( | ) | const |
Definition at line 1982 of file eda_shape.cpp.
References GetPolyShape(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_POLY_SET::VertexCount().
Referenced by GRAPHICS_CLEANER::isNullShape(), and SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic().
|
inline |
Definition at line 337 of file eda_shape.h.
References m_poly.
Referenced by PCB_POINT_EDITOR::addCorner(), SCH_POINT_EDITOR::addCorner(), FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), PCB_POINT_EDITOR::chamferCorner(), KI_TEST::CheckFpShape(), CONVERT_TOOL::CreateLines(), CADSTAR_SCH_ARCHIVE_LOADER::fixUpLibraryPins(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::format(), formatPoly(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), GetCornersInSequence(), PCB_SHAPE::GetFocusPosition(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), SCH_RULE_AREA::GetMsgPanelInfo(), GetPointCount(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), hash_fp_item(), IsPolyShapeValid(), SCH_IO_EAGLE::loadSymbolPolyLine(), SCH_RULE_AREA::MakeEffectiveShapes(), makeEffectiveShapes(), EDIT_TOOL::ModifyLines(), FOOTPRINT::cmp_drawings::operator()(), PCB_IO_EAGLE::packagePolygon(), SCH_IO_KICAD_SEXPR_PARSER::ParseSchematic(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), SCHEMATIC::RecalculateConnections(), SCH_RULE_AREA::RefreshContainedItemsAndDirectives(), PCB_POINT_EDITOR::removeCorner(), SCH_POINT_EDITOR::removeCorner(), SCH_POINT_EDITOR::removeCornerCondition(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), SCH_IO_KICAD_LEGACY_LIB_CACHE::savePolyLine(), Serialize(), ShapeGetMsgPanelInfo(), and shapeNeedsUpdate().
|
inline |
Definition at line 338 of file eda_shape.h.
References m_poly.
|
protected |
Definition at line 373 of file eda_shape.cpp.
References ARC, getCenter(), m_poly, 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 1029 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 PCB_GRID_HELPER::AddConstructionItems(), FEATURES_MANAGER::AddShape(), CREEPAGE_GRAPH::Addshape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), BOOST_AUTO_TEST_CASE(), 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(), hitTest(), hitTest(), idf_export_outline(), GRAPHICS_CLEANER::isNullShape(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), CONVERT_TOOL::makePolysFromClosedGraphics(), ALTIUM_PCB::Parse(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), 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(), and UpdateHatching().
int EDA_SHAPE::GetRectangleHeight | ( | ) | const |
Definition at line 415 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(), SetCornerRadius(), TransformShapeToPolygon(), and UpdateHatching().
int EDA_SHAPE::GetRectangleWidth | ( | ) | const |
Definition at line 429 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(), SetCornerRadius(), TransformShapeToPolygon(), and UpdateHatching().
std::vector< VECTOR2I > EDA_SHAPE::GetRectCorners | ( | ) | const |
Definition at line 1648 of file eda_shape.cpp.
References GetEnd(), GetStart(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by BOARD_ADAPTER::addShape(), KIGFX::PCB_PAINTER::draw(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), hitTest(), hitTest(), makeEffectiveShapes(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), TransformShapeToPolygon(), and PCB_TEXTBOX::TransformShapeToPolygon().
EDA_ANGLE EDA_SHAPE::GetSegmentAngle | ( | ) | const |
Definition at line 1095 of file eda_shape.cpp.
References GetEnd(), GetStart(), and RADIANS_T.
|
inline |
Definition at line 168 of file eda_shape.h.
References m_shape.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), SCH_POINT_EDITOR::addCornerCondition(), PCB_IO_IPC2581::addLocationNode(), PCB_IO_IPC2581::addPackage(), SCH_SHAPE::AddPoint(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), beginEdit(), calcEdit(), canAddCorner(), canChamferCorner(), PCB_POINT_EDITOR::chamferCorner(), KI_TEST::CheckFpShape(), CheckLibSymbolGraphics(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), continueEdit(), CONVERT_TOOL::CreateLines(), 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_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(), PCB_IO_KICAD_SEXPR::format(), PCB_SHAPE::GetCorners(), FOOTPRINT::GetCoverageArea(), SCH_SHAPE::GetItemDescription(), SCH_SHAPE::GetMenuImage(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), ODB::GetShapePosition(), CONVERT_TOOL::getStartEndPoints(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), hash_fp_item(), idf_export_outline(), SCH_SHAPE::IsEndPoint(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), GRAPHICS_CLEANER::isNullShape(), DSN::SPECCTRA_DB::makeIMAGE(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), PCB_POINT_EDITOR::makePoints(), SCH_POINT_EDITOR::makePointsAndBehavior(), CONVERT_TOOL::makePolysFromClosedGraphics(), GRAPHICS_CLEANER::mergeRects(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), EDIT_TOOL::ModifyLines(), SCH_SHAPE::Normalize(), PCB_POINT_EDITOR::OnSelectionChange(), FOOTPRINT::cmp_drawings::operator()(), PCB_SHAPE::cmp_drawings::operator()(), operator==(), ALTIUM_PCB::Parse(), SCH_EDITOR_CONTROL::Paste(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), processShapeSegment(), PCB_POINT_EDITOR::removeCorner(), EDIT_TOOL::Rotate(), PCB_TEXTBOX::Rotate(), 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(), Serialize(), PCB_SHAPE::SetIsProxyItem(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), shapeNeedsUpdate(), Similarity(), AR_MATRIX::TraceSegmentPcb(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), PCB_TEXTBOX::TransformShapeToPolygon(), and PCB_CONTROL::UpdateMessagePanel().
|
inline |
Return the starting point of the graphic.
Definition at line 173 of file eda_shape.h.
References m_start.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), PCB_IO_IPC2581::addPadStack(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), CalcArcAngles(), calcEdit(), KI_TEST::CheckFpShape(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), ALTIUM_PCB::ConvertArcs6ToBoardItemOnLayer(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), CONVERT_TOOL::CreateLines(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), editArcEndpointKeepCenter(), editArcEndpointKeepCenterAndRadius(), editArcEndpointKeepTangent(), GENCAD_EXPORTER::footprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatCircle(), formatRect(), PCB_TEXTBOX::GetBotRight(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), GetLength(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), SCH_TABLECELL::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), GetRectCorners(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), GetSegmentAngle(), GRAPH_CONNECTION::GetShapes(), SCH_TEXTBOX::GetShownText(), CONVERT_TOOL::getStartEndPoints(), GetTopLeft(), PCB_TEXTBOX::GetTopLeft(), hash_fp_item(), hitTest(), hitTest(), idf_export_outline(), SCH_SHAPE::IsEndPoint(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), CONVERT_TOOL::makePolysFromChainedSegs(), GRAPHICS_CLEANER::mergeRects(), EDIT_TOOL::ModifyLines(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), FOOTPRINT::cmp_drawings::operator()(), SCH_IO_ALTIUM::ParseEllipse(), SCH_EDITOR_CONTROL::Paste(), 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(), 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(), shapeNeedsUpdate(), DRC_TEST_PROVIDER_MISC::testOutline(), PLOTTER::ThickArc(), AR_MATRIX::TraceSegmentPcb(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), BEZIER_GEOM_SYNCER::updateBezier(), RECTANGLE_GEOM_SYNCER::updateCorners(), RECTANGLE_GEOM_SYNCER::updateCornerSize(), ARC_GEOM_SYNCER::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().
|
inline |
Definition at line 175 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 174 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 246 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 156 of file eda_shape.h.
References m_stroke.
Referenced by 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(), Serialize(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), and TransformShapeToPolygon().
|
protected |
Definition at line 1445 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, BOX2< Vec >::Contains(), getBoundingBox(), getCenter(), GetEnd(), BEZIER_POLY::GetPoly(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), GetStart(), GetWidth(), BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), BOX2< Vec >::IntersectsCircleEdge(), IsAnyFill(), m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_end, m_poly, m_shape, m_start, BOX2< Vec >::Normalize(), SHAPE_POLY_SET::Outline(), POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.
|
protected |
Definition at line 1640 of file eda_shape.cpp.
References MakeEffectiveShapes(), and KIGEOM::ShapeHitTest().
|
protected |
Definition at line 1284 of file eda_shape.cpp.
References SHAPE_POLY_SET::Append(), ARC, BEZIER, CalcArcAngles(), CIRCLE, Collide(), SHAPE_POLY_SET::Collide(), SHAPE_POLY_SET::CollideEdge(), copy, VECTOR2< T >::Distance(), VECTOR2< T >::EuclideanNorm(), getCenter(), GetEnd(), GetHatching(), BEZIER_POLY::GetPoly(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), GetStart(), GetWidth(), IsFilledForHitTesting(), IsHatchedFill(), IsProxyItem(), m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_end, m_poly, m_shape, m_start, SHAPE_POLY_SET::NewOutline(), EDA_ANGLE::Normalize(), POLY, radius, RECTANGLE, SEGMENT, SHAPE_T_asString(), 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 112 of file eda_shape.h.
References GetFillMode(), and NO_FILL.
Referenced by computeArcBBox(), KIGFX::PCB_RENDER_SETTINGS::GetColor(), FOOTPRINT::GetCoverageArea(), PCB_SHAPE::GetFocusPosition(), hitTest(), PAD::Recombine(), and PCB_SELECTION_TOOL::Selectable().
bool EDA_SHAPE::IsClockwiseArc | ( | ) | const |
Definition at line 1115 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 539 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, m_bezierPoints, m_poly, m_shape, POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_POINT_EDITOR::addCorner(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), CONVERT_TOOL::makePolysFromClosedGraphics(), CONVERT_TOOL::makePolysFromOpenGraphics(), and UpdateHatching().
|
inlinevirtual |
Reimplemented in SCH_RULE_AREA.
Definition at line 131 of file eda_shape.h.
References IsSolidFill().
Referenced by SCH_SELECTION_TOOL::GuessSelectionCandidates(), and hitTest().
|
inline |
Definition at line 124 of file eda_shape.h.
References CROSS_HATCH, GetFillMode(), HATCH, and REVERSE_HATCH.
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), hitTest(), makeEffectiveShapes(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), and TransformShapeToPolygon().
|
inlineprotectedvirtual |
Reimplemented in PCB_SHAPE, and SCH_SHAPE.
Definition at line 473 of file eda_shape.h.
Referenced by UpdateHatching().
bool EDA_SHAPE::IsPolyShapeValid | ( | ) | const |
Definition at line 1975 of file eda_shape.cpp.
References GetPolyShape(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_LINE_CHAIN::PointCount().
Referenced by PCB_IO_KICAD_SEXPR::format(), BRDITEMS_PLOTTER::PlotShape(), and TransformShapeToPolygon().
|
inlinevirtual |
Reimplemented in PCB_SHAPE.
Definition at line 109 of file eda_shape.h.
References m_proxyItem.
Referenced by getFriendlyName(), hitTest(), makeEffectiveShapes(), ShowShape(), and TransformShapeToPolygon().
|
inline |
Definition at line 117 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(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetSolderMaskExpansion(), IsFilledForHitTesting(), SCH_RULE_AREA::MakeEffectiveShapes(), makeEffectiveShapes(), BRDITEMS_PLOTTER::PlotShape(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), and TransformShapeToPolygon().
|
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 379 of file eda_shape.h.
References makeEffectiveShapes().
Referenced by BOARD_ADAPTER::addShape(), EXPORTER_STEP::buildGraphic3DShape(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), PCB_SHAPE::GetEffectiveShape(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), hitTest(), BRDITEMS_PLOTTER::PlotShape(), and PNS_KICAD_IFACE_BASE::syncGraphicalItem().
|
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 1839 of file eda_shape.cpp.
References ANGLE_360, ARC, BEZIER, buildBezierToSegmentsPointsList(), CIRCLE, SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CSegment(), GetArcAngle(), getCenter(), GetEffectiveWidth(), GetEnd(), getMaxError(), GetPolyShape(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), GetStart(), SHAPE_LINE_CHAIN::IsClosed(), IsHatchedFill(), IsProxyItem(), IsSolidFill(), m_arcCenter, m_cornerRadius, m_end, m_shape, m_start, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, RECTANGLE, SEGMENT, SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_T_asString(), ROUNDRECT::TransformToPolygon(), and UNIMPLEMENTED_FOR.
Referenced by MakeEffectiveShapes(), and SCH_SHAPE::MakeEffectiveShapes().
|
protected |
Definition at line 722 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, KI_FALLTHROUGH, m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_hatchingDirty, m_poly, m_shape, m_start, POLY, RECTANGLE, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_TEXTBOX::Move().
bool EDA_SHAPE::operator== | ( | const EDA_SHAPE & | aOther | ) | const |
Definition at line 2514 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), EDA_SHAPE(), STROKE_PARAMS::GetLineStyle(), GetShape(), STROKE_PARAMS::GetWidth(), m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_fill, m_fillColor, m_poly, m_start, and m_stroke.
Referenced by PCB_SHAPE::operator==(), and SCH_SHAPE::operator==().
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 928 of file eda_shape.cpp.
References BEZIER, buildBezierToSegmentsPointsList(), m_bezierPoints, and m_shape.
Referenced by beginEdit(), calcEdit(), Deserialize(), flip(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), processShapeSegment(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), scale(), and GRAPHICS_IMPORTER::setupSplineOrLine().
Definition at line 820 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, EDA_ANGLE::IsCardinal(), KI_FALLTHROUGH, m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_hatchingDirty, m_poly, m_shape, m_start, POLY, RECTANGLE, RotatePoint(), SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::Rotate(), and SCH_SHAPE::Rotate().
|
protected |
Definition at line 765 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, getMaxError(), KI_FALLTHROUGH, KiROUND(), m_arcCenter, m_bezierC1, m_bezierC2, m_end, m_hatchingDirty, m_poly, m_shape, m_start, POLY, RebuildBezierToSegmentsPointsList(), 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, and PCB_TEXTBOX.
Definition at line 154 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, circle(), DASH, DASHDOT, DASHDOTDOT, DEFAULT, DOT, FILLED_SHAPE, GetArcMid(), GetBezierC1(), GetBezierC2(), GetCornerRadius(), GetEnd(), GetFillMode(), GetLineStyle(), GetPolyShape(), GetShape(), GetStart(), GetWidth(), kiapi::common::PackPolySet(), kiapi::common::PackVector2(), POLY, RECTANGLE, SEGMENT, and SOLID.
Referenced by API_HANDLER_COMMON::handleGetTextAsShapes(), and PCB_SHAPE::Serialize().
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 1132 of file eda_shape.cpp.
References ANGLE_0, m_arcCenter, m_end, m_endsSwapped, m_start, EDA_ANGLE::Normalize720(), and RotatePoint().
Referenced by PCAD2KICAD::PCAD_ARC::AddToBoard(), BOOST_AUTO_TEST_CASE(), ALTIUM_PCB::ConvertArcs6ToBoardItemOnLayer(), ALTIUM_PCB::ConvertArcs6ToPcbShape(), DRAWING_TOOL::drawArc(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), PCB_IO_EAGLE::loadPlain(), SCH_IO_EAGLE::loadSymbolWire(), ARC_GEOM_SYNCER::OnCSAChange(), PCB_IO_EAGLE::packageWire(), and GPCB_FPL_CACHE::parseFOOTPRINT().
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 1065 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(), beginEdit(), BOOST_AUTO_TEST_CASE(), calcEdit(), ConnectBoardShapes(), Deserialize(), editArcMidKeepEndpoints(), PCB_IO_IPC2581::generateLayerSetNet(), FEATURES_MANAGER::InitFeatureList(), CADSTAR_SCH_ARCHIVE_LOADER::loadShapeVertices(), ARC_GEOM_SYNCER::OnSMEChange(), SCH_SCREEN::Plot(), and CONVERT_TOOL::SegmentToArc().
|
inline |
Definition at line 254 of file eda_shape.h.
References m_bezierC1.
Referenced by beginEdit(), calcEdit(), ConnectBoardShapes(), Deserialize(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), BEZIER_GEOM_SYNCER::OnBezierChange(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), and SCH_IO_ALTIUM::ParseEllipticalArc().
|
inline |
Definition at line 257 of file eda_shape.h.
References m_bezierC2.
Referenced by beginEdit(), calcEdit(), ConnectBoardShapes(), Deserialize(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), BEZIER_GEOM_SYNCER::OnBezierChange(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), and SCH_IO_ALTIUM::ParseEllipticalArc().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 252 of file eda_shape.h.
References SetEndY().
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
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 1055 of file eda_shape.cpp.
References m_arcMidData.
Referenced by SetArcGeometry().
void EDA_SHAPE::SetCenter | ( | const VECTOR2I & | aCenter | ) |
Definition at line 981 of file eda_shape.cpp.
References ARC, CIRCLE, m_arcCenter, m_hatchingDirty, m_shape, m_start, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCAD2KICAD::PCAD_ARC::AddToBoard(), BOOST_AUTO_TEST_CASE(), ALTIUM_PCB::ConvertArcs6ToBoardItemOnLayer(), ALTIUM_PCB::ConvertArcs6ToPcbShape(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), editArcCenterKeepEndpoints(), editArcEndpointKeepCenter(), editArcEndpointKeepTangent(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), GRAPH_CONNECTION::GetShapes(), 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(), GPCB_FPL_CACHE::parseFOOTPRINT(), CONVERT_TOOL::SegmentToArc(), and updateArcFromConstructionMgr().
|
inline |
Definition at line 205 of file eda_shape.h.
References m_end, m_hatchingDirty, and m_start.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 198 of file eda_shape.h.
References m_end, m_hatchingDirty, and m_start.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
void EDA_SHAPE::SetCornerRadius | ( | int | aRadius | ) |
Definition at line 449 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(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inlineprotected |
Definition at line 471 of file eda_shape.h.
References m_editState.
Referenced by SCH_SHAPE::SetEditState().
|
inline |
Definition at line 219 of file eda_shape.h.
References m_end, m_endsSwapped, and m_hatchingDirty.
Referenced by PCB_POINT_EDITOR::addCorner(), SCH_IO_ALTIUM::AddLibTextBox(), PCB_IO_IPC2581::addPadStack(), PCB_IO_IPC2581::addPadStack(), SCH_IO_ALTIUM::AddTextBox(), PCAD2KICAD::PCAD_LINE::AddToBoard(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), SCH_EDIT_TOOL::ChangeTextType(), ConnectBoardShapes(), ALTIUM_PCB::ConvertArcs6ToPcbShape(), ALTIUM_PCB::ConvertFills6ToBoardItem(), ALTIUM_PCB::ConvertFills6ToFootprintItem(), ALTIUM_PCB::ConvertTracks6ToBoardItem(), ALTIUM_PCB::ConvertTracks6ToFootprintItem(), PCB_EDIT_TABLE_TOOL::copyCell(), 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(), CONVERT_TOOL::CreateLines(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_IO_LTSPICE_PARSER::CreateRect(), SCH_IO_LTSPICE_PARSER::CreateRect(), SCH_IO_LTSPICE_PARSER::CreateRect(), Deserialize(), PCB_TEXTBOX::Deserialize(), DRAWING_TOOL::DrawTable(), SCH_DRAWING_TOOLS::DrawTable(), editArcEndpointKeepCenter(), editArcEndpointKeepCenterAndRadius(), editArcEndpointKeepTangent(), editArcMidKeepCenter(), PCB_IO_IPC2581::generateLayerSetAuxilliary(), PCB_IO_IPC2581::generateLayerSetNet(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), DRC_TEST_PROVIDER_CLEARANCE_BASE::GetShapes(), GRAPH_CONNECTION::GetShapes(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), ALTIUM_PCB::HelperParsePad6NonCopper(), ALTIUM_PCB::HelperSetTextboxAlignmentAndPos(), FEATURES_MANAGER::InitFeatureList(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), FABMASTER::loadFootprints(), CADSTAR_SCH_ARCHIVE_LOADER::loadLibrarySymbolShapeVertices(), PCB_IO_EAGLE::loadPlain(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect(), SCH_IO_EAGLE::loadSymbolRectangle(), GRAPHICS_CLEANER::mergeRects(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), EDIT_TOOL::ModifyLines(), PCB_SHAPE::Normalize(), PCB_TABLE::Normalize(), SCH_TABLE::Normalize(), PCB_SHAPE::NormalizeForCompare(), BEZIER_GEOM_SYNCER::OnBezierChange(), CIRCLE_GEOM_SYNCER::OnCenterPointChange(), RECTANGLE_GEOM_SYNCER::OnCenterSizeChange(), RECTANGLE_GEOM_SYNCER::OnCornersChange(), RECTANGLE_GEOM_SYNCER::OnCornerSizeChange(), LINE_GEOM_SYNCER::OnEndsChange(), LINE_GEOM_SYNCER::OnPolarChange(), LINE_GEOM_SYNCER::OnStartMidpointChange(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packageWire(), SCH_IO_ALTIUM::ParseArc(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), GPCB_FPL_CACHE::parseFOOTPRINT(), SCH_IO_ALTIUM::ParseRectangle(), SCH_IO_ALTIUM::ParseRoundRectangle(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), SCH_TEXTBOX::Plot(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), DRC_TEST_PROVIDER_CLEARANCE_BASE::ReportAndShowPathCuToCu(), PCB_TEXTBOX::Rotate(), CONVERT_TOOL::SegmentToArc(), PCB_TARGET::TransformShapeToPolygon(), updateArcFromConstructionMgr(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), and updateSegmentFromGeometryMgr().
|
inline |
Definition at line 233 of file eda_shape.h.
References m_end, m_endsSwapped, and m_hatchingDirty.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), PCB_TEXTBOX::SetLeft(), SetRectangleWidth(), SetRight(), PCB_TEXTBOX::SetRight(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 226 of file eda_shape.h.
References m_end, m_endsSwapped, and m_hatchingDirty.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SetBottom(), PCB_TEXTBOX::SetBottom(), SetRectangleHeight(), PCB_TEXTBOX::SetTop(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 153 of file eda_shape.h.
References m_fillColor.
Referenced by SCH_IO_ALTIUM::AddLibTextBox(), SCH_IO_ALTIUM::AddTextBox(), SCH_EDIT_TABLE_TOOL::copyCell(), SYMBOL_EDITOR_DRAWING_TOOLS::doDrawShape(), SCH_DRAWING_TOOLS::DrawShape(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), fixupSchFillMode(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), and DIALOG_TEXT_PROPERTIES::TransferDataFromWindow().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 136 of file eda_shape.h.
References setFilled().
Referenced by PAD::AddPrimitivePoly(), PAD::AddPrimitivePoly(), ZONE_CREATE_HELPER::commitZone(), ALTIUM_PCB::ConvertFills6ToBoardItem(), ALTIUM_PCB::ConvertFills6ToFootprintItem(), MICROWAVE_TOOL::createPolygonShape(), CONVERT_TOOL::CreatePolys(), Deserialize(), CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarShape(), DRAWING_TOOL::DrawRectangle(), DRAWING_TOOL::drawShape(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), ALTIUM_PCB::HelperParsePad6NonCopper(), FABMASTER::loadGraphics(), PCB_IO_EAGLE::loadPlain(), FABMASTER::loadPolygon(), CONVERT_TOOL::makePolysFromClosedGraphics(), GRAPHICS_CLEANER::mergeRects(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), PAD::Recombine(), SCH_TABLECELL_DESC::SCH_TABLECELL_DESC(), CONVERT_TOOL::SegmentToArc(), and SetFillModeProp().
|
inlineprotectedvirtual |
Reimplemented in SCH_SHAPE.
Definition at line 439 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 570 of file eda_shape.cpp.
References m_fill, and m_hatchingDirty.
Referenced by SCH_IO_ALTIUM::AddLibTextBox(), SCH_IO_ALTIUM::AddTextBox(), SCH_EDIT_TABLE_TOOL::copyCell(), PANEL_EESCHEMA_COLOR_SETTINGS::createPreviewItems(), SCH_IO_LTSPICE_PARSER::CreateRect(), 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(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), 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 577 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 147 of file eda_shape.h.
References m_hatchingDirty.
Referenced by SCH_POINT_EDITOR::removeCorner().
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 250 of file eda_shape.h.
References SetStartX().
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
void EDA_SHAPE::SetLength | ( | const double & | aLength | ) |
Definition at line 466 of file eda_shape.cpp.
References m_segmentLength, m_shape, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
|
inline |
Definition at line 164 of file eda_shape.h.
References m_stroke.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
void EDA_SHAPE::SetLineStyle | ( | const LINE_STYLE | aStyle | ) |
Definition at line 2499 of file eda_shape.cpp.
References m_stroke.
Referenced by 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 1829 of file eda_shape.cpp.
References m_poly.
Referenced by PAD::AddPrimitivePoly(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), MICROWAVE_TOOL::createPolygonShape(), ALTIUM_PCB::HelperParsePad6NonCopper(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), and scale().
|
inline |
Definition at line 345 of file eda_shape.h.
References m_poly.
Referenced by PAD::AddPrimitivePoly(), ZONE_CREATE_HELPER::commitZone(), CONVERT_TOOL::CreatePolys(), Deserialize(), CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarShape(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), TEST_EE_ITEM_FIXTURE::Instantiate(), FABMASTER::loadGraphics(), FABMASTER::loadPolygon(), CADSTAR_SCH_ARCHIVE_LOADER::loadSymdef(), and PAD::Recombine().
|
protected |
Definition at line 367 of file eda_shape.cpp.
References getPosition(), and move.
Referenced by PCB_SHAPE::SetPosition(), and SCH_SHAPE::SetPosition().
|
inline |
Definition at line 240 of file eda_shape.h.
References m_end, m_hatchingDirty, and m_start.
Referenced by DRC_TEST_PROVIDER_CREEPAGE::CollectBoardEdges(), 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 510 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 480 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 495 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 251 of file eda_shape.h.
References SetEndX().
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
void EDA_SHAPE::SetSegmentAngle | ( | const EDA_ANGLE & | aAngle | ) |
Definition at line 525 of file eda_shape.cpp.
References m_segmentAngle, m_shape, SEGMENT, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
|
inline |
Definition at line 167 of file eda_shape.h.
References m_shape.
Referenced by PAD::AddPrimitivePoly(), ZONE_CREATE_HELPER::commitZone(), ALTIUM_PCB::ConvertArcs6ToPcbShape(), CONVERT_TOOL::CreatePolys(), Deserialize(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawLine(), DRAWING_TOOL::DrawRectangle(), DRAWING_TOOL::drawShape(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), ALTIUM_PCB::HelperParsePad6NonCopper(), PCB_IO_EAGLE::loadPlain(), FABMASTER::loadPolygon(), GRAPHICS_CLEANER::mergeRects(), GPCB_FPL_CACHE::parseFOOTPRINT(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), PCB_TEXTBOX::Rotate(), and GRAPHICS_IMPORTER::setupSplineOrLine().
|
inline |
Definition at line 177 of file eda_shape.h.
References m_endsSwapped, m_hatchingDirty, and m_start.
Referenced by PCB_POINT_EDITOR::addCorner(), SCH_IO_ALTIUM::AddLibTextBox(), PCB_IO_IPC2581::addPadStack(), SCH_IO_ALTIUM::AddTextBox(), PCAD2KICAD::PCAD_ARC::AddToBoard(), PCAD2KICAD::PCAD_LINE::AddToBoard(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), beginEdit(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), calcEdit(), ConnectBoardShapes(), ALTIUM_PCB::ConvertArcs6ToBoardItemOnLayer(), ALTIUM_PCB::ConvertArcs6ToPcbShape(), ALTIUM_PCB::ConvertFills6ToBoardItem(), ALTIUM_PCB::ConvertFills6ToFootprintItem(), ALTIUM_PCB::ConvertTracks6ToBoardItem(), ALTIUM_PCB::ConvertTracks6ToFootprintItem(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), SCH_IO_LTSPICE_PARSER::CreateArc(), CONVERT_TOOL::CreateLines(), MICROWAVE_TOOL::createMicrowaveInductor(), Deserialize(), editArcEndpointKeepCenter(), editArcEndpointKeepCenterAndRadius(), editArcEndpointKeepTangent(), editArcMidKeepCenter(), PCB_IO_IPC2581::generateLayerSetNet(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), DRC_TEST_PROVIDER_CLEARANCE_BASE::GetShapes(), GRAPH_CONNECTION::GetShapes(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), ALTIUM_PCB::HelperParsePad6NonCopper(), FEATURES_MANAGER::InitFeatureList(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), FABMASTER::loadFootprints(), CADSTAR_SCH_ARCHIVE_LOADER::loadLibrarySymbolShapeVertices(), PCB_IO_EAGLE::loadPlain(), SCH_IO_EAGLE::loadSymbolWire(), GRAPHICS_CLEANER::mergeRects(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), EDIT_TOOL::ModifyLines(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), BEZIER_GEOM_SYNCER::OnBezierChange(), RECTANGLE_GEOM_SYNCER::OnCenterSizeChange(), RECTANGLE_GEOM_SYNCER::OnCornersChange(), RECTANGLE_GEOM_SYNCER::OnCornerSizeChange(), ARC_GEOM_SYNCER::OnCSAChange(), LINE_GEOM_SYNCER::OnEndsChange(), LINE_GEOM_SYNCER::OnPolarChange(), LINE_GEOM_SYNCER::OnStartMidpointChange(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packageWire(), SCH_IO_ALTIUM::ParseArc(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), GPCB_FPL_CACHE::parseFOOTPRINT(), PCB_IO_KICAD_SEXPR_PARSER::parseTextBoxContent(), SCH_TEXTBOX::Plot(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), DRC_TEST_PROVIDER_CLEARANCE_BASE::ReportAndShowPathCuToCu(), PCB_TEXTBOX::Rotate(), CONVERT_TOOL::SegmentToArc(), PCB_TARGET::TransformShapeToPolygon(), updateArcFromConstructionMgr(), and updateSegmentFromGeometryMgr().
|
inline |
Definition at line 191 of file eda_shape.h.
References m_endsSwapped, m_hatchingDirty, and m_start.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SetLeft(), PCB_TEXTBOX::SetLeft(), PCB_TEXTBOX::SetRight(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 184 of file eda_shape.h.
References m_endsSwapped, m_hatchingDirty, and m_start.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), PCB_TEXTBOX::SetBottom(), SetTop(), PCB_TEXTBOX::SetTop(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 249 of file eda_shape.h.
References SetStartY().
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
void EDA_SHAPE::SetWidth | ( | int | aWidth | ) |
Definition at line 2492 of file eda_shape.cpp.
References m_hatchingDirty, and m_stroke.
Referenced by CONVERT_TOOL::CreateLines(), Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PAD_TOOL::explodePad(), PCB_IO_IPC2581::generateLayerSetNet(), FEATURES_MANAGER::InitFeatureList(), EDIT_TOOL::ModifyLines(), SCH_IO_ALTIUM::ParseEllipse(), PCB_TEXTBOX::Rotate(), CONVERT_TOOL::SegmentToArc(), PCB_SHAPE::SetIsProxyItem(), and SHAPE_GROUP_POINT_EDIT_BEHAVIOR::UpdateItem().
wxString EDA_SHAPE::SHAPE_T_asString | ( | ) | const |
Definition at line 350 of file eda_shape.cpp.
References ARC, BEZIER, CIRCLE, 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(), 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(), SetLength(), SetRectangle(), SetRectangleHeight(), SetRectangleWidth(), SetSegmentAngle(), shapeNeedsUpdate(), TransformShapeToPolygon(), and UpdateHatching().
void EDA_SHAPE::ShapeGetMsgPanelInfo | ( | EDA_DRAW_FRAME * | aFrame, |
std::vector< MSG_PANEL_ITEM > & | aList ) |
Definition at line 1174 of file eda_shape.cpp.
References _, std::abs(), ARC, BEZIER, CIRCLE, GetArcAngle(), GetEnd(), getFriendlyName(), GetLength(), GetPolyShape(), GetRadius(), GetStart(), m_shape, m_stroke, EDA_UNIT_UTILS::UI::MessageTextFromValue(), UNITS_PROVIDER::MessageTextFromValue(), POLY, RADIANS_T, RECTANGLE, and SEGMENT.
Referenced by PCB_SHAPE::GetMsgPanelInfo(), and SCH_SHAPE::GetMsgPanelInfo().
wxString EDA_SHAPE::ShowShape | ( | ) | const |
double EDA_SHAPE::Similarity | ( | const EDA_SHAPE & | aOther | ) | const |
Definition at line 2559 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), EDA_SHAPE(), STROKE_PARAMS::GetLineStyle(), GetShape(), STROKE_PARAMS::GetWidth(), alg::longest_common_subset(), m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_fill, m_fillColor, m_poly, m_start, 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 2265 of file eda_shape.cpp.
References EDA_SHAPE(), image, m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_cornerRadius, m_editState, m_end, m_endsSwapped, m_fill, m_fillColor, m_hatchingDirty, m_poly, m_shape, m_start, m_stroke, and SWAPITEM.
Referenced by PCB_SHAPE::swapData(), and SCH_SHAPE::swapData().
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 2336 of file eda_shape.cpp.
References SEG::A, SHAPE_POLY_SET::AddOutline(), ANGLE_0, SHAPE_POLY_SET::Append(), ARC, SEG::B, BEZIER, CIRCLE, SHAPE_LINE_CHAIN::CPoint(), ERROR_OUTSIDE, GetArcMid(), GetBezierC1(), GetBezierC2(), getCenter(), GetCornerRadius(), GetEnd(), GetHatching(), SHAPE_LINE_CHAIN::GetPoint(), SHAPE_LINE_CHAIN::GetPointCount(), BEZIER_POLY::GetPoly(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetRectCorners(), SHAPE_LINE_CHAIN::GetSegment(), GetStart(), GetWidth(), SHAPE_POLY_SET::Inflate(), IsHatchedFill(), IsPolyShapeValid(), IsProxyItem(), IsSolidFill(), m_poly, m_shape, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, RECTANGLE, ROUND_ALL_CORNERS, SEGMENT, SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_LINE_CHAIN::SetClosed(), SHAPE_T_asString(), TransformArcToPolygon(), TransformCircleToPolygon(), TransformOvalToPolygon(), TransformRingToPolygon(), TransformRoundChamferedRectToPolygon(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::TransformShapeToPolygon(), and PCB_SHAPE::TransformShapeToPolySet().
|
virtual |
Reimplemented in PCB_SHAPE.
Definition at line 603 of file eda_shape.cpp.
References SHAPE_POLY_SET::AddOutline(), ANGLE_45, SHAPE_LINE_CHAIN::Append(), ARC, BEZIER, CIRCLE, SHAPE_POLY_SET::CloneDropTriangulation(), CROSS_HATCH, ERROR_INSIDE, SHAPE_POLY_SET::GenerateHatchLines(), BOX2< Vec >::GetBottom(), getCenter(), GetCornerRadius(), GetFillMode(), GetHatchLineSpacing(), GetHatchLineWidth(), getMaxError(), getPosition(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), HATCH, IsClosed(), isMoving(), m_hatching, m_hatchingDirty, m_poly, m_shape, SHAPE_LINE_CHAIN::Move(), POLY, RECTANGLE, REVERSE_HATCH, SEGMENT, SHAPE_LINE_CHAIN::SetClosed(), SHAPE_T_asString(), TransformCircleToPolygon(), TransformOvalToPolygon(), ROUNDRECT::TransformToPolygon(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SCH_SHEET_PATH::UpdateAllScreenReferences(), and PCB_SHAPE::UpdateHatching().
|
protected |
Definition at line 510 of file eda_shape.h.
Referenced by calcEdit(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetArcMid(), getCenter(), GetRadius(), makeEffectiveShapes(), move(), operator==(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenter(), Similarity(), and SwapShape().
|
protected |
Definition at line 511 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), GetArcMid(), move(), rotate(), SetArcGeometry(), and SetCachedArcData().
|
protected |
Definition at line 513 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), Compare(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetBezierC1(), hitTest(), hitTest(), move(), operator==(), rotate(), scale(), SetBezierC1(), Similarity(), and SwapShape().
|
protected |
Definition at line 514 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), Compare(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetBezierC2(), hitTest(), hitTest(), move(), operator==(), rotate(), scale(), SetBezierC2(), Similarity(), and SwapShape().
|
protected |
Definition at line 516 of file eda_shape.h.
Referenced by Compare(), GetBezierPoints(), getBoundingBox(), SCH_SHAPE::GetItemDescription(), GetLength(), hitTest(), hitTest(), IsClosed(), move(), operator==(), SCH_SHAPE::Plot(), RebuildBezierToSegmentsPointsList(), rotate(), Similarity(), and SwapShape().
|
protected |
Definition at line 502 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), EDA_SHAPE(), GetCornerRadius(), hitTest(), hitTest(), makeEffectiveShapes(), SetCornerRadius(), and SwapShape().
|
protected |
Definition at line 519 of file eda_shape.h.
Referenced by beginEdit(), calcEdit(), continueEdit(), Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), setEditState(), and SwapShape().
|
protected |
Definition at line 508 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), calcEdit(), Compare(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetArcMid(), getCenter(), SCH_TEXTBOX::GetDrawPos(), GetEnd(), GetEndX(), GetEndY(), SCH_SHAPE::GetItemDescription(), GetRadius(), hitTest(), hitTest(), IsClockwiseArc(), makeEffectiveShapes(), move(), PCB_SHAPE::Normalize(), operator==(), SCH_SHAPE::Plot(), SCH_TEXTBOX::Plot(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenterX(), SetCenterY(), SetEnd(), SetEndX(), SetEndY(), SetRadius(), Similarity(), and SwapShape().
|
protected |
Definition at line 491 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), EndsSwapped(), SetArcAngleAndEnd(), SetArcGeometry(), SetEnd(), SetEndX(), SetEndY(), SetStart(), SetStartX(), SetStartY(), and SwapShape().
|
protected |
Definition at line 494 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), EDA_SHAPE(), GetFillMode(), GetFillModeProp(), 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 495 of file eda_shape.h.
Referenced by EDA_SHAPE(), GetFillColor(), operator==(), SetFillColor(), Similarity(), and SwapShape().
|
mutableprotected |
Definition at line 497 of file eda_shape.h.
Referenced by GetHatching(), UpdateHatching(), and PCB_SHAPE::UpdateHatching().
|
mutableprotected |
Definition at line 498 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), flip(), move(), rotate(), scale(), SetCenter(), SetCenterX(), SetCenterY(), SetEnd(), SetEndX(), SetEndY(), SetFillMode(), SetHatchingDirty(), SetRadius(), SetStart(), SetStartX(), SetStartY(), SetWidth(), SwapShape(), UpdateHatching(), and PCB_SHAPE::UpdateHatching().
|
protected |
Definition at line 517 of file eda_shape.h.
Referenced by SCH_SHAPE::AddPoint(), beginEdit(), calcEdit(), Compare(), continueEdit(), DupPolyPointsList(), endEdit(), flip(), getBoundingBox(), SCH_SHAPE::GetItemDescription(), GetLength(), GetPolyShape(), GetPolyShape(), getPosition(), hitTest(), hitTest(), IsClosed(), move(), PCB_SHAPE::Normalize(), operator==(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), rotate(), scale(), SetPolyPoints(), SetPolyShape(), Similarity(), SwapShape(), TransformShapeToPolygon(), PCB_TEXTBOX::TransformShapeToPolygon(), and UpdateHatching().
|
protected |
Definition at line 520 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), EDA_SHAPE(), EDA_SHAPE(), IsProxyItem(), PCB_SHAPE::IsProxyItem(), SetIsProxyItem(), and PCB_SHAPE::SetIsProxyItem().
|
protected |
Definition at line 500 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), SetRectangle(), and SetRectangleHeight().
|
protected |
Definition at line 501 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), SetRectangle(), and SetRectangleWidth().
|
protected |
Definition at line 505 of file eda_shape.h.
Referenced by SetSegmentAngle().
|
protected |
Definition at line 504 of file eda_shape.h.
Referenced by EDA_SHAPE(), EDA_SHAPE(), and SetLength().
|
protected |
Definition at line 492 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), EDA_SHAPE(), flip(), getBoundingBox(), getCenter(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), getFriendlyName(), GetLength(), getPosition(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetShape(), hitTest(), hitTest(), IsClockwiseArc(), IsClosed(), PCB_SHAPE::IsType(), SCH_RULE_AREA::MakeEffectiveShapes(), makeEffectiveShapes(), move(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), RebuildBezierToSegmentsPointsList(), rotate(), scale(), SetCenter(), SetCornerRadius(), SetLength(), SetRectangle(), SetRectangleHeight(), SetRectangleWidth(), SetSegmentAngle(), SetShape(), SHAPE_T_asString(), ShapeGetMsgPanelInfo(), ShowShape(), SwapShape(), TransformShapeToPolygon(), and UpdateHatching().
|
protected |
Definition at line 507 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), calcEdit(), Compare(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetArcMid(), getCenter(), SCH_TEXTBOX::GetDrawPos(), SCH_SHAPE::GetItemDescription(), getPosition(), GetRadius(), GetStart(), GetStartX(), GetStartY(), hitTest(), hitTest(), IsClockwiseArc(), makeEffectiveShapes(), move(), PCB_SHAPE::Normalize(), operator==(), SCH_SHAPE::Plot(), SCH_TEXTBOX::Plot(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenter(), SetCenterX(), SetCenterY(), SetRadius(), SetStart(), SetStartX(), SetStartY(), Similarity(), and SwapShape().
|
protected |
Definition at line 493 of file eda_shape.h.
Referenced by Compare(), 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==(), PCB_TEXTBOX::SetBorderWidth(), SetLineColor(), SetLineStyle(), PCB_SHAPE::SetStroke(), SCH_SHAPE::SetStroke(), SetWidth(), ShapeGetMsgPanelInfo(), Similarity(), PCB_SHAPE::StyleFromSettings(), and SwapShape().