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) | |
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 | IsFilled () const |
virtual bool | IsFilledForHitTesting () const |
void | SetFilled (bool aFlag) |
void | SetFillMode (FILL_T aFill) |
FILL_T | GetFillMode () const |
bool | IsClosed () const |
COLOR4D | GetFillColor () const |
void | SetFillColor (const COLOR4D &aColor) |
void | SetWidth (int aWidth) |
virtual int | GetWidth () const |
virtual int | GetEffectiveWidth () 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 |
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 | SetSegmentAngle (const EDA_ANGLE &aAngle) |
bool | IsClockwiseArc () const |
double | GetLength () const |
int | GetRectangleHeight () const |
int | GetRectangleWidth () const |
void | TransformShapeToPolygon (SHAPE_POLY_SET &aBuffer, int aClearance, int aError, ERROR_LOC aErrorLoc, bool ignoreLineWidth=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) |
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 |
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) |
Finishes editing the shape. | |
void | setEditState (int aState) |
std::vector< SHAPE * > | makeEffectiveShapes (bool aEdgeOnly, bool aLineChainOnly=false) const |
Make a set of SHAPE objects representing the EDA_SHAPE. | |
Protected Attributes | |
bool | m_endsSwapped |
SHAPE_T | m_shape |
STROKE_PARAMS | m_stroke |
FILL_T | m_fill |
COLOR4D | m_fillColor |
long long int | m_rectangleHeight |
long long int | m_rectangleWidth |
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 73 of file eda_shape.h.
Definition at line 47 of file eda_shape.cpp.
EDA_SHAPE::EDA_SHAPE | ( | const SHAPE & | aShape | ) |
Definition at line 67 of file eda_shape.cpp.
References SHAPE_POLY_SET::AddOutline(), ERROR_INSIDE, m_poly, m_shape, SetArcGeometry(), SetEnd(), SetStart(), SetWidth(), SH_ARC, SH_CIRCLE, SH_COMPOUND, SH_LINE_CHAIN, SH_NULL, SH_POLY_SET, SH_POLY_SET_TRIANGLE, SH_RECT, SH_SEGMENT, SH_SIMPLE, and SHAPE_BASE::Type().
|
virtual |
Definition at line 62 of file eda_shape.cpp.
|
protected |
Definition at line 1586 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::Append(), GetShape(), GetWidth(), m_editState, m_poly, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::Outline(), RebuildBezierToSegmentsPointsList(), SetArcGeometry(), SetBezierC1(), SetBezierC2(), SHAPE_LINE_CHAIN::SetClosed(), SetEnd(), SetStart(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_SHAPE::BeginEdit().
|
protected |
Definition at line 739 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 810 of file eda_shape.cpp.
References ANGLE_360, getCenter(), GetEnd(), and GetStart().
Referenced by CreepageGraph::Addshape(), computeArcBBox(), KIGFX::PCB_PAINTER::draw(), GetArcAngle(), hitTest(), SCH_SHAPE::Print(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SegmentIntersectsBoard(), and CreepageGraph::TransformEdgeToCreepShapes().
|
protected |
Definition at line 1661 of file eda_shape.cpp.
References ANGLE_180, VECTOR2< T >::Distance(), GetArcAngle(), GetEnd(), SHAPE_LINE_CHAIN::GetPointCount(), GetRadius(), GetShape(), GetStart(), GetWidth(), KiROUND(), m_arcCenter, m_editState, m_end, m_poly, m_start, SHAPE_POLY_SET::Outline(), RebuildBezierToSegmentsPointsList(), SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetEnd(), SHAPE_LINE_CHAIN::SetPoint(), 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 1875 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), STROKE_PARAMS::GetLineStyle(), STROKE_PARAMS::GetWidth(), m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_fill, m_poly, m_shape, m_start, m_stroke, TEST, TEST_E, TEST_PT, and SHAPE_POLY_SET::TotalVertices().
Referenced by SCH_SHAPE::compare(), and BOARD::cmp_drawings::operator()().
|
protected |
Definition at line 1401 of file eda_shape.cpp.
References ANGLE_0, ANGLE_180, ANGLE_270, ANGLE_90, CalcArcAngles(), GetRadius(), IsFilled(), m_arcCenter, m_end, m_start, BOX2< Vec >::Merge(), EDA_ANGLE::Normalize(), BOX2< Vec >::SetOrigin(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by getBoundingBox().
|
protected |
Definition at line 1627 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::GetPointCount(), GetShape(), m_editState, m_poly, SHAPE_POLY_SET::Outline(), 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 234 of file eda_shape.cpp.
References ARC_HIGH_DEF, m_arcCenter, m_arcMidData, m_bezierC1, m_bezierC2, m_editState, m_end, m_endsSwapped, m_proxyItem, m_start, RebuildBezierToSegmentsPointsList(), SetArcGeometry(), SetBezierC1(), SetBezierC2(), SetEnd(), SetFilled(), SetLineStyle(), SetPolyShape(), SetShape(), SetStart(), and SetWidth().
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 1554 of file eda_shape.cpp.
References SHAPE_POLY_SET::CIterate(), SHAPE_POLY_SET::COutline(), m_poly, SHAPE_POLY_SET::OutlineCount(), and SHAPE_LINE_CHAIN::PointCount().
Referenced by PCB_GRID_HELPER::computeAnchors(), SegmentIntersectsBoard(), and CreepageGraph::TransformEdgeToCreepShapes().
|
protected |
Finishes editing the shape.
aClosed | Should polygon shapes be closed (yes for pcbnew/fpeditor, no for libedit) |
Definition at line 1815 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::GetPointCount(), GetShape(), m_poly, SHAPE_POLY_SET::Outline(), SHAPE_LINE_CHAIN::Remove(), 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 234 of file eda_shape.h.
References m_endsSwapped.
Referenced by BOOST_AUTO_TEST_CASE().
|
protected |
Definition at line 682 of file eda_shape.cpp.
References STROKE_PARAMS::GetWidth(), m_arcCenter, m_bezierC1, m_bezierC2, m_end, m_poly, m_shape, m_start, m_stroke, SHAPE_POLY_SET::Mirror(), MIRROR(), RebuildBezierToSegmentsPointsList(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::Flip(), SCH_SHAPE::MirrorHorizontally(), and SCH_SHAPE::MirrorVertically().
EDA_ANGLE EDA_SHAPE::GetArcAngle | ( | ) | const |
Definition at line 896 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(), ShapeGetMsgPanelInfo(), and AR_MATRIX::TraceSegmentPcb().
VECTOR2I EDA_SHAPE::GetArcMid | ( | ) | const |
Definition at line 796 of file eda_shape.cpp.
References ARC_MID::center, ARC_MID::end, GetArcAngle(), m_arcCenter, m_arcMidData, m_end, m_start, ARC_MID::mid, RotatePoint(), and ARC_MID::start.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), KI_TEST::CheckFpShape(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), doConvertOutlineToPolygon(), ARC_POINT_EDIT_BEHAVIOR::editArcMidKeepEndpoints(), PCB_IO_KICAD_SEXPR::format(), formatArc(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), GraphConnection::GetShapes(), hash_fp_item(), IsClockwiseArc(), ARC_POINT_EDIT_BEHAVIOR::MakePoints(), CONVERT_TOOL::makePolysFromChainedSegs(), SCH_SHAPE::Plot(), Serialize(), SetArcGeometry(), PLOTTER::ThickArc(), CreepageGraph::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), ARC_POINT_EDIT_BEHAVIOR::UpdatePoints(), and ARC_GEOM_SYNCER::updateSME().
|
inline |
Definition at line 210 of file eda_shape.h.
References m_bezierC1.
Referenced by PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), KI_TEST::CheckFpShape(), KIGFX::PCB_PAINTER::draw(), PCB_IO_KICAD_SEXPR::format(), formatBezier(), hash_fp_item(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::MakePoints(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), Serialize(), shapeNeedsUpdate(), TransformShapeToPolygon(), BEZIER_GEOM_SYNCER::updateBezier(), and EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdatePoints().
|
inline |
Definition at line 213 of file eda_shape.h.
References m_bezierC2.
Referenced by PCB_IO_IPC2581::addShape(), GRAPHICS_CLEANER::areEquivalent(), KI_TEST::CheckFpShape(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawBezier(), PCB_IO_KICAD_SEXPR::format(), formatBezier(), hash_fp_item(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::MakePoints(), FOOTPRINT::cmp_drawings::operator()(), BRDITEMS_PLOTTER::PlotShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveBezier(), Serialize(), shapeNeedsUpdate(), TransformShapeToPolygon(), BEZIER_GEOM_SYNCER::updateBezier(), and EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdatePoints().
|
inline |
Definition at line 269 of file eda_shape.h.
References m_bezierPoints.
Referenced by FEATURES_MANAGER::AddShape(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), GRAPHICS_CLEANER::isNullShape(), and CONVERT_TOOL::makePolysFromChainedSegs().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 202 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 1023 of file eda_shape.cpp.
References SHAPE_POLY_SET::CIterate(), computeArcBBox(), GetEnd(), GetRadius(), GetRectCorners(), GetStart(), GetWidth(), BOX2< Vec >::Inflate(), SHAPE_POLY_SET::IsEmpty(), m_bezierPoints, m_poly, m_shape, BOX2< Vec >::Merge(), BOX2< Vec >::Normalize(), BOX2< Vec >::SetEnd(), BOX2< Vec >::SetOrigin(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_SHAPE::GetBoundingBox(), PCB_SHAPE::GetBoundingBox(), getCenter(), and hitTest().
VECTOR2I EDA_SHAPE::getCenter | ( | ) | const |
Definition at line 752 of file eda_shape.cpp.
References BOX2< Vec >::Centre(), getBoundingBox(), m_arcCenter, m_end, m_shape, m_start, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by CreepageGraph::Addshape(), BOOST_AUTO_TEST_CASE(), CalcArcAngles(), SCH_SHAPE::GetCenter(), PCB_SHAPE::GetCenter(), getPosition(), hitTest(), makeEffectiveShapes(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::MakePoints(), SCH_SHAPE::Plot(), SCH_SHAPE::Print(), SCH_SHAPE::PrintBackground(), PLOTTER::ThickArc(), TransformShapeToPolygon(), and EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdatePoints().
|
inlinevirtual |
Reimplemented in SCH_SHAPE.
Definition at line 123 of file eda_shape.h.
References GetWidth().
Referenced by makeEffectiveShapes().
|
inline |
Return the ending point of the graphic.
Definition at line 174 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(), CalcArcAngles(), calcEdit(), KI_TEST::CheckFpShape(), CheckLibSymbolGraphics(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), DRAWING_TOOL::DrawBezier(), DRAWING_TOOL::DrawLine(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepCenter(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepTangent(), GENCAD_EXPORTER::FootprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatRect(), GetBotRight(), PCB_TEXTBOX::GetBotRight(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_TABLE::GetEffectiveShape(), GetLength(), SCH_TABLECELL::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), GetRectCorners(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), GetSegmentAngle(), GraphConnection::GetShapes(), SCH_TEXTBOX::GetShownText(), CONVERT_TOOL::getStartEndPoints(), PCB_TEXTBOX::GetTopLeft(), hash_fp_item(), hitTest(), idf_export_outline(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_EAGLE::loadSymbolRectangle(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), ARC_POINT_EDIT_BEHAVIOR::MakePoints(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::MakePoints(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::MakePoints(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::MakePoints(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::MakePoints(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), CONVERT_TOOL::makePolysFromChainedSegs(), GRAPHICS_CLEANER::mergeRects(), SCH_SHAPE::Normalize(), SCH_TABLE::Normalize(), PCB_SHAPE::Normalize(), PCB_TABLE::Normalize(), PCB_SHAPE::NormalizeForCompare(), FOOTPRINT::cmp_drawings::operator()(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotShape(), BRDITEMS_PLOTTER::PlotTableBorders(), SCH_SHAPE::Print(), SCH_TEXTBOX::Print(), SCH_SHAPE::PrintBackground(), OUTSET_ROUTINE::ProcessItem(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), 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(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PLOTTER::ThickArc(), AR_MATRIX::TraceSegmentPcb(), CreepageGraph::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), BEZIER_GEOM_SYNCER::updateBezier(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), RECTANGLE_GEOM_SYNCER::updateCorners(), LINE_GEOM_SYNCER::updateEnds(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), ARC_POINT_EDIT_BEHAVIOR::UpdatePoints(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::UpdatePoints(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdatePoints(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdatePoints(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::UpdatePoints(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdatePoints(), LINE_GEOM_SYNCER::updatePolar(), and ARC_GEOM_SYNCER::updateSME().
|
inline |
Definition at line 176 of file eda_shape.h.
References m_end, and VECTOR2< T >::x.
Referenced by KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), PCB_TABLE::GetEffectiveShape(), GetRectangleWidth(), PCB_TEXTBOX::GetTopLeft(), SCH_TABLE::Plot(), BRDITEMS_PLOTTER::PlotTableBorders(), SCH_TABLE::Print(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), and PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 175 of file eda_shape.h.
References m_end, and VECTOR2< T >::y.
Referenced by KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), PCB_TABLE::GetEffectiveShape(), GetRectangleHeight(), PCB_TEXTBOX::GetTopLeft(), SCH_TABLE::Plot(), BRDITEMS_PLOTTER::PlotTableBorders(), SCH_TABLE::Print(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), and PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 118 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_SHAPE::Print(), SCH_TEXTBOX::Print(), SCH_SHAPE::PrintBackground(), SCH_IO_KICAD_SEXPR::saveShape(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveSymbolDrawItem(), SCH_IO_KICAD_SEXPR::saveTextBox(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveTextBox(), DIALOG_SHAPE_PROPERTIES::TransferDataToWindow(), and DIALOG_TEXT_PROPERTIES::TransferDataToWindow().
|
inline |
Definition at line 114 of file eda_shape.h.
References m_fill.
Referenced by FEATURES_MANAGER::AddShape(), 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(), KIGFX::SCH_PAINTER::getRenderColor(), IsFilled(), CONVERT_TOOL::makePolysFromClosedGraphics(), SCH_IO_ALTIUM::ParsePolygon(), LIB_SYMBOL::Print(), SCH_SHAPE::Print(), SCH_TEXTBOX::Print(), LIB_SYMBOL::PrintBackground(), SCH_SHAPE::PrintBackground(), 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(), and DIALOG_SHAPE_PROPERTIES::TransferDataToWindow().
|
protected |
Definition at line 939 of file eda_shape.cpp.
References _, IsProxyItem(), and m_shape.
Referenced by PCB_SHAPE::GetFriendlyName(), and ShapeGetMsgPanelInfo().
double EDA_SHAPE::GetLength | ( | ) | const |
Definition at line 374 of file eda_shape.cpp.
References EDA_ANGLE::AsRadians(), SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CSegment(), VECTOR2< T >::Distance(), GetArcAngle(), GetEnd(), GetRadius(), GetStart(), SEG::Length(), m_bezierPoints, m_poly, m_shape, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by DRAWING_TOOL::drawShape(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), and ShapeGetMsgPanelInfo().
|
inline |
Definition at line 129 of file eda_shape.h.
References STROKE_PARAMS::GetColor(), and m_stroke.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
LINE_STYLE EDA_SHAPE::GetLineStyle | ( | ) | const |
Definition at line 2041 of file eda_shape.cpp.
References STROKE_PARAMS::GetLineStyle(), and m_stroke.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), hash_fp_item(), PCB_TEXTBOX_DESC::PCB_TEXTBOX_DESC(), and Serialize().
int EDA_SHAPE::GetPointCount | ( | ) | const |
Definition at line 1578 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 286 of file eda_shape.h.
References m_poly.
Referenced by EE_POINT_EDITOR::addCorner(), PCB_POINT_EDITOR::addCorner(), FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), PCB_POINT_EDITOR::chamferCorner(), KI_TEST::CheckFpShape(), doConvertOutlineToPolygon(), CADSTAR_SCH_ARCHIVE_LOADER::fixUpLibraryPins(), PCB_IO_KICAD_SEXPR::format(), formatPoly(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), 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(), makeEffectiveShapes(), SCH_RULE_AREA::MakeEffectiveShapes(), 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(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), SCH_EDIT_FRAME::RecalculateConnections(), SCH_RULE_AREA::RefreshContainedItemsAndDirectives(), EE_POINT_EDITOR::removeCorner(), PCB_POINT_EDITOR::removeCorner(), EE_POINT_EDITOR::removeCornerCondition(), PCB_POINT_EDITOR::removeCornerCondition(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), SCH_IO_KICAD_LEGACY_LIB_CACHE::savePolyLine(), Serialize(), ShapeGetMsgPanelInfo(), and shapeNeedsUpdate().
|
inline |
Definition at line 287 of file eda_shape.h.
References m_poly.
|
protected |
Definition at line 363 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), getCenter(), m_poly, m_shape, and m_start.
Referenced by SCH_SHAPE::GetPosition(), PCB_SHAPE::GetPosition(), and setPosition().
int EDA_SHAPE::GetRadius | ( | ) | const |
Definition at line 826 of file eda_shape.cpp.
References VECTOR2< T >::Distance(), KiROUND(), m_arcCenter, m_end, m_shape, m_start, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), CreepageGraph::Addshape(), PCB_IO_IPC2581::addShape(), BOOST_AUTO_TEST_CASE(), calcEdit(), CheckLibSymbolGraphics(), computeArcBBox(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), formatCircle(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), SCH_SHAPE::GetItemDescription(), GetLength(), hash_fp_item(), hitTest(), idf_export_outline(), GRAPHICS_CLEANER::isNullShape(), makeEffectiveShapes(), DSN::SPECCTRA_DB::makeIMAGE(), ALTIUM_PCB::Parse(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), SCH_SHAPE::Print(), SCH_SHAPE::PrintBackground(), OUTSET_ROUTINE::ProcessItem(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::saveCircle(), scale(), SegmentIntersectsBoard(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), ShapeGetMsgPanelInfo(), CreepageGraph::TransformEdgeToCreepShapes(), and TransformShapeToPolygon().
int EDA_SHAPE::GetRectangleHeight | ( | ) | const |
Definition at line 404 of file eda_shape.cpp.
References GetEndY(), GetStartY(), m_shape, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_IO_IPC2581::addLocationNode(), FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), ODB::GetShapePosition(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::MakePoints(), OUTSET_ROUTINE::ProcessItem(), SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), and EDA_TABLECELL_POINT_EDIT_BEHAVIOR::UpdatePoints().
int EDA_SHAPE::GetRectangleWidth | ( | ) | const |
Definition at line 417 of file eda_shape.cpp.
References GetEndX(), GetStartX(), m_shape, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by PCB_IO_IPC2581::addLocationNode(), FEATURES_MANAGER::AddShape(), PCB_IO_IPC2581::addShape(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), ODB::GetShapePosition(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::MakePoints(), OUTSET_ROUTINE::ProcessItem(), SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), and EDA_TABLECELL_POINT_EDIT_BEHAVIOR::UpdatePoints().
std::vector< VECTOR2I > EDA_SHAPE::GetRectCorners | ( | ) | const |
Definition at line 1386 of file eda_shape.cpp.
References GetEnd(), GetStart(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by BOARD_ADAPTER::addShape(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetCorners(), hitTest(), makeEffectiveShapes(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotShape(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), TransformShapeToPolygon(), and PCB_TEXTBOX::TransformShapeToPolygon().
EDA_ANGLE EDA_SHAPE::GetSegmentAngle | ( | ) | const |
Definition at line 887 of file eda_shape.cpp.
References GetEnd(), GetStart(), and RADIANS_T.
|
inline |
Definition at line 132 of file eda_shape.h.
References m_shape.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_POINT_EDITOR::addCorner(), EE_POINT_EDITOR::addCornerCondition(), PCB_IO_IPC2581::addLocationNode(), PCB_IO_IPC2581::addPackage(), SCH_SHAPE::AddPoint(), FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), PCB_IO_IPC2581::addShape(), ARC_POINT_EDIT_BEHAVIOR::ARC_POINT_EDIT_BEHAVIOR(), GRAPHICS_CLEANER::areEquivalent(), beginEdit(), calcEdit(), canAddCorner(), canChamferCorner(), PCB_POINT_EDITOR::chamferCorner(), KI_TEST::CheckFpShape(), CheckLibSymbolGraphics(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), continueEdit(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), doConvertOutlineToPolygon(), 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_SHAPE::GetCorners(), FOOTPRINT::GetCoverageArea(), SCH_SHAPE::GetItemDescription(), SCH_SHAPE::GetMenuImage(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), ODB::GetShapePosition(), CONVERT_TOOL::getStartEndPoints(), EE_SELECTION_TOOL::GuessSelectionCandidates(), hash_fp_item(), idf_export_outline(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), GRAPHICS_CLEANER::isNullShape(), DSN::SPECCTRA_DB::makeIMAGE(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), PCB_POINT_EDITOR::makePoints(), TEXTBOX_POINT_EDIT_BEHAVIOR::MakePoints(), EE_POINT_EDITOR::makePointsAndBehavior(), CONVERT_TOOL::makePolysFromChainedSegs(), GRAPHICS_CLEANER::mergeRects(), PCB_SHAPE::Mirror(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), SCH_SHAPE::Normalize(), PCB_SHAPE::cmp_drawings::operator()(), FOOTPRINT::cmp_drawings::operator()(), operator==(), ALTIUM_PCB::Parse(), SCH_EDITOR_CONTROL::Paste(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), SCH_SHAPE::Print(), SCH_SHAPE::PrintBackground(), OUTSET_ROUTINE::ProcessItem(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), RECTANGLE_POINT_EDIT_BEHAVIOR::RECTANGLE_POINT_EDIT_BEHAVIOR(), PCB_POINT_EDITOR::removeCorner(), PCB_POINT_EDITOR::removeCornerCondition(), PCB_TEXTBOX::Rotate(), DRC_TEST_PROVIDER_EDGE_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(), Serialize(), PCB_SHAPE::SetIsProxyItem(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), shapeNeedsUpdate(), Similarity(), AR_MATRIX::TraceSegmentPcb(), CreepageGraph::TransformEdgeToCreepShapes(), PCB_TEXTBOX::TransformShapeToPolygon(), TEXTBOX_POINT_EDIT_BEHAVIOR::UpdateItem(), TEXTBOX_POINT_EDIT_BEHAVIOR::UpdatePoints(), and DIALOG_SHAPE_PROPERTIES::Validate().
|
inline |
Return the starting point of the graphic.
Definition at line 137 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(), CalcArcAngles(), calcEdit(), KI_TEST::CheckFpShape(), PCB_GRID_HELPER::computeAnchors(), ConnectBoardShapes(), ALTIUM_PCB::ConvertArcs6ToBoardItemOnLayer(), PCB_EDIT_TABLE_TOOL::copyCell(), SCH_EDIT_TABLE_TOOL::copyCell(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepCenter(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepTangent(), GENCAD_EXPORTER::FootprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), formatArc(), formatBezier(), formatCircle(), formatRect(), PCB_TEXTBOX::GetBotRight(), getBoundingBox(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), GetLength(), SCH_TABLECELL::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), PCB_TABLECELL::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), GetRectCorners(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), GetSegmentAngle(), GraphConnection::GetShapes(), SCH_TEXTBOX::GetShownText(), CONVERT_TOOL::getStartEndPoints(), GetTopLeft(), PCB_TEXTBOX::GetTopLeft(), hash_fp_item(), hitTest(), idf_export_outline(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), DSN::SPECCTRA_DB::makeIMAGE(), ARC_POINT_EDIT_BEHAVIOR::MakePoints(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::MakePoints(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::MakePoints(), CONVERT_TOOL::makePolysFromChainedSegs(), GRAPHICS_CLEANER::mergeRects(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), FOOTPRINT::cmp_drawings::operator()(), SCH_IO_ALTIUM::ParseEllipse(), SCH_EDITOR_CONTROL::Paste(), BRDITEMS_PLOTTER::PlotPcbTarget(), BRDITEMS_PLOTTER::PlotShape(), SCH_SHAPE::Print(), SCH_TEXTBOX::Print(), SCH_SHAPE::PrintBackground(), OUTSET_ROUTINE::ProcessItem(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), 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(), ShapeGetMsgPanelInfo(), shapeNeedsUpdate(), PLOTTER::ThickArc(), AR_MATRIX::TraceSegmentPcb(), CreepageGraph::TransformEdgeToCreepShapes(), TransformShapeToPolygon(), BEZIER_GEOM_SYNCER::updateBezier(), RECTANGLE_GEOM_SYNCER::updateCorners(), RECTANGLE_GEOM_SYNCER::updateCornerSize(), ARC_GEOM_SYNCER::updateCSA(), LINE_GEOM_SYNCER::updateEnds(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), ARC_POINT_EDIT_BEHAVIOR::UpdatePoints(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::UpdatePoints(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdatePoints(), LINE_GEOM_SYNCER::updatePolar(), ARC_GEOM_SYNCER::updateSME(), and LINE_GEOM_SYNCER::updateStartMidpoint().
|
inline |
Definition at line 139 of file eda_shape.h.
References m_start, and VECTOR2< T >::x.
Referenced by KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), PCB_TABLE::GetEffectiveShape(), GetRectangleWidth(), PCB_TEXTBOX::GetTopLeft(), SCH_SHAPE::Normalize(), SCH_TABLE::Plot(), BRDITEMS_PLOTTER::PlotTableBorders(), SCH_TABLE::Print(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), and SetRectangleWidth().
|
inline |
Definition at line 138 of file eda_shape.h.
References m_start, and VECTOR2< T >::y.
Referenced by KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_TEXTBOX::GetBotRight(), PCB_TABLE::GetEffectiveShape(), GetRectangleHeight(), PCB_TEXTBOX::GetTopLeft(), SCH_SHAPE::Normalize(), SCH_TABLE::Plot(), BRDITEMS_PLOTTER::PlotTableBorders(), SCH_TABLE::Print(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), and SetRectangleHeight().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 201 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 122 of file eda_shape.h.
References STROKE_PARAMS::GetWidth(), and m_stroke.
Referenced by beginEdit(), calcEdit(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), getBoundingBox(), GetEffectiveWidth(), SCH_TEXTBOX::GetLegacyTextMargin(), PCB_SHAPE::GetWidth(), hitTest(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), 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_SHAPE_PROPERTIES::TransferDataToWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), and TransformShapeToPolygon().
|
protected |
Definition at line 1210 of file eda_shape.cpp.
References BOX2< Vec >::Contains(), getBoundingBox(), getCenter(), GetEnd(), SHAPE_LINE_CHAIN::GetPoint(), SHAPE_LINE_CHAIN::GetPointCount(), BEZIER_POLY::GetPoly(), GetRadius(), GetRectCorners(), GetStart(), GetWidth(), BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), BOX2< Vec >::IntersectsCircleEdge(), SHAPE_LINE_CHAIN::IsClosed(), IsFilled(), m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_poly, m_shape, m_start, BOX2< Vec >::Normalize(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
|
protected |
Definition at line 1077 of file eda_shape.cpp.
References SHAPE_POLY_SET::Append(), CalcArcAngles(), SHAPE_POLY_SET::Collide(), SHAPE_POLY_SET::CollideEdge(), copy, SHAPE_POLY_SET::COutline(), VECTOR2< T >::Distance(), VECTOR2< T >::EuclideanNorm(), getCenter(), GetEnd(), BEZIER_POLY::GetPoly(), GetRadius(), GetRectCorners(), GetStart(), GetWidth(), SHAPE_LINE_CHAIN::IsClosed(), IsFilledForHitTesting(), IsProxyItem(), m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_poly, m_shape, m_start, SHAPE_POLY_SET::NewOutline(), EDA_ANGLE::Normalize(), SHAPE_T_asString(), TestSegmentHit(), and UNIMPLEMENTED_FOR.
Referenced by SCH_SHAPE::HitTest(), and PCB_SHAPE::HitTest().
bool EDA_SHAPE::IsClockwiseArc | ( | ) | const |
Definition at line 907 of file eda_shape.cpp.
References 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 498 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::IsClosed(), SHAPE_POLY_SET::IsEmpty(), m_bezierPoints, m_poly, m_shape, SHAPE_POLY_SET::Outline(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by EE_POINT_EDITOR::addCorner(), PCB_SELECTION_TOOL::isExpandableGraphicShape(), CONVERT_TOOL::makePolysFromClosedGraphics(), and CONVERT_TOOL::makePolysFromOpenGraphics().
|
inline |
Definition at line 98 of file eda_shape.h.
References GetFillMode().
Referenced by FEATURES_MANAGER::AddShape(), BOARD_ADAPTER::addShape(), computeArcBBox(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PCB_IO_KICAD_SEXPR::format(), PCB_SHAPE::GetConnectionPoints(), FOOTPRINT::GetCoverageArea(), PCB_SHAPE::GetFocusPosition(), PCB_SHAPE::GetSolderMaskExpansion(), EE_SELECTION_TOOL::GuessSelectionCandidates(), hash_fp_item(), hitTest(), IsFilledForHitTesting(), makeEffectiveShapes(), SCH_RULE_AREA::MakeEffectiveShapes(), BRDITEMS_PLOTTER::PlotShape(), POLYGON_BOOLEAN_ROUTINE::ProcessShape(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), shapeNeedsUpdate(), DIALOG_SHAPE_PROPERTIES::TransferDataToWindow(), DIALOG_TEXT_PROPERTIES::TransferDataToWindow(), and TransformShapeToPolygon().
|
inlinevirtual |
Reimplemented in SCH_RULE_AREA.
Definition at line 103 of file eda_shape.h.
References IsFilled().
Referenced by hitTest().
bool EDA_SHAPE::IsPolyShapeValid | ( | ) | const |
Definition at line 1571 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 95 of file eda_shape.h.
References m_proxyItem.
Referenced by getFriendlyName(), hitTest(), makeEffectiveShapes(), ShowShape(), and TransformShapeToPolygon().
|
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 1461 of file eda_shape.cpp.
References ANGLE_360, buildBezierToSegmentsPointsList(), SHAPE_POLY_SET::COutline(), SHAPE_LINE_CHAIN::CSegment(), GetArcAngle(), getCenter(), GetEffectiveWidth(), GetEnd(), GetPolyShape(), GetRadius(), GetRectCorners(), SHAPE_LINE_CHAIN::IsClosed(), IsFilled(), IsProxyItem(), m_arcCenter, m_end, m_shape, m_start, SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by MakeEffectiveShapes(), and SCH_SHAPE::MakeEffectiveShapes().
|
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 326 of file eda_shape.h.
References makeEffectiveShapes().
Referenced by BOARD_ADAPTER::addShape(), KIGFX::PCB_PAINTER::draw(), PCB_SHAPE::GetEffectiveShape(), EE_SELECTION_TOOL::GuessSelectionCandidates(), BRDITEMS_PLOTTER::PlotShape(), and PNS_KICAD_IFACE_BASE::syncGraphicalItem().
|
protected |
Definition at line 530 of file eda_shape.cpp.
References KI_FALLTHROUGH, m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_poly, m_shape, m_start, SHAPE_POLY_SET::Move(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by SCH_TEXTBOX::Move().
bool EDA_SHAPE::operator== | ( | const EDA_SHAPE & | aOther | ) | const |
Definition at line 2050 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), 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, m_stroke, and SHAPE_POLY_SET::TotalVertices().
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 725 of file eda_shape.cpp.
References buildBezierToSegmentsPointsList(), m_bezierPoints, and m_shape.
Referenced by beginEdit(), calcEdit(), Deserialize(), doConvertOutlineToPolygon(), flip(), GRAPHICS_CLEANER::isNullShape(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), PCB_SHAPE::Mirror(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), scale(), updateBezierFromConstructionMgr(), and EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdateItem().
Definition at line 625 of file eda_shape.cpp.
References SHAPE_POLY_SET::Append(), EDA_ANGLE::IsCardinal(), KI_FALLTHROUGH, m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_end, m_poly, m_shape, m_start, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::RemoveAllContours(), SHAPE_POLY_SET::Rotate(), RotatePoint(), SHAPE_T_asString(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SCH_SHAPE::Rotate(), and PCB_SHAPE::Rotate().
|
protected |
Definition at line 567 of file eda_shape.cpp.
References SHAPE_LINE_CHAIN::CPoints(), GetRadius(), STROKE_PARAMS::GetWidth(), KI_FALLTHROUGH, KiROUND(), m_arcCenter, m_bezierC1, m_bezierC2, m_end, m_poly, m_shape, m_start, m_stroke, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), RebuildBezierToSegmentsPointsList(), SetPolyPoints(), SHAPE_T_asString(), UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
|
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 146 of file eda_shape.cpp.
References GetArcMid(), GetBezierC1(), GetBezierC2(), GetEnd(), GetFillMode(), GetLineStyle(), GetPolyShape(), GetShape(), GetStart(), and GetWidth().
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 924 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 858 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 CreepageGraph::Addshape(), beginEdit(), BOOST_AUTO_TEST_CASE(), calcEdit(), ConnectBoardShapes(), Deserialize(), EDA_SHAPE(), ARC_POINT_EDIT_BEHAVIOR::editArcMidKeepEndpoints(), PCB_IO_IPC2581::generateLayerSetNet(), FEATURES_MANAGER::InitFeatureList(), CADSTAR_SCH_ARCHIVE_LOADER::loadShapeVertices(), and ARC_GEOM_SYNCER::OnSMEChange().
|
inline |
Definition at line 209 of file eda_shape.h.
References m_bezierC1.
Referenced by beginEdit(), calcEdit(), Deserialize(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), BEZIER_GEOM_SYNCER::OnBezierChange(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), updateBezierFromConstructionMgr(), and EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 212 of file eda_shape.h.
References m_bezierC2.
Referenced by beginEdit(), calcEdit(), Deserialize(), HelperGeneratePowerPortGraphics(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), BEZIER_GEOM_SYNCER::OnBezierChange(), SCH_IO_ALTIUM::ParseBezier(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseEllipticalArc(), updateBezierFromConstructionMgr(), and EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 207 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 849 of file eda_shape.cpp.
References ARC_MID::center, ARC_MID::end, m_arcMidData, ARC_MID::mid, and ARC_MID::start.
Referenced by SetArcGeometry().
void EDA_SHAPE::SetCenter | ( | const VECTOR2I & | aCenter | ) |
Definition at line 778 of file eda_shape.cpp.
References m_arcCenter, 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(), ARC_POINT_EDIT_BEHAVIOR::editArcCenterKeepEndpoints(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepCenter(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepTangent(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), GraphConnection::GetShapes(), FABMASTER::loadFootprints(), 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(), updateArcFromConstructionMgr(), and EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 165 of file eda_shape.h.
References m_end, m_start, and VECTOR2< T >::x.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inline |
Definition at line 159 of file eda_shape.h.
References m_end, m_start, and VECTOR2< T >::y.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inlineprotected |
Definition at line 406 of file eda_shape.h.
References m_editState.
Referenced by SCH_SHAPE::SetEditState().
|
inline |
Definition at line 178 of file eda_shape.h.
References m_end, and m_endsSwapped.
Referenced by PCB_POINT_EDITOR::addCorner(), SCH_IO_ALTIUM::AddLibTextBox(), PCB_IO_IPC2581::addPadStack(), SCH_IO_ALTIUM::AddTextBox(), PCAD2KICAD::PCAD_LINE::AddToBoard(), PCAD2KICAD::PCAD_POLYGON::AddToBoard(), beginEdit(), 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::CreateCircle(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_IO_LTSPICE_PARSER::CreateRect(), Deserialize(), PCB_TEXTBOX::Deserialize(), SCH_DRAWING_TOOLS::DrawTable(), DRAWING_TOOL::DrawTable(), EDA_SHAPE(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepCenter(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepTangent(), ARC_POINT_EDIT_BEHAVIOR::editArcMidKeepCenter(), PCB_IO_IPC2581::generateLayerSetNet(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), GraphConnection::GetShapes(), HelperGeneratePowerPortGraphics(), ALTIUM_PCB::HelperParsePad6NonCopper(), ALTIUM_PCB::HelperSetTextboxAlignmentAndPos(), FEATURES_MANAGER::InitFeatureList(), initTextTable(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), FABMASTER::loadFootprints(), CADSTAR_SCH_ARCHIVE_LOADER::loadLibrarySymbolShapeVertices(), PCB_IO_EAGLE::loadPlain(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect(), SCH_IO_EAGLE::loadSymbolCircle(), SCH_IO_EAGLE::loadSymbolRectangle(), GRAPHICS_CLEANER::mergeRects(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), SCH_TABLE::Normalize(), PCB_SHAPE::Normalize(), PCB_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::ParseCircle(), 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(), DRAWING_TOOL::PlaceCharacteristics(), DRAWING_TOOL::PlaceStackup(), SCH_TEXTBOX::Plot(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), PCB_TEXTBOX::Rotate(), DRC_TEST_PROVIDER_CLEARANCE_BASE::ShowPathDRC(), DRC_TEST_PROVIDER_CREEPAGE::testCreepage(), PCB_TARGET::TransformShapeToPolygon(), updateArcFromConstructionMgr(), updateBezierFromConstructionMgr(), SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdateItem(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), and updateSegmentFromGeometryMgr().
|
inline |
Definition at line 190 of file eda_shape.h.
References m_end, m_endsSwapped, and VECTOR2< T >::x.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SCH_IO_ALTIUM::ParseHarnessPort(), PCB_TEXTBOX::SetLeft(), SetRectangleWidth(), PCB_TEXTBOX::SetRight(), SetRight(), PCB_TARGET::TransformShapeToPolygon(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 184 of file eda_shape.h.
References m_end, m_endsSwapped, and VECTOR2< T >::y.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SCH_IO_ALTIUM::ParseHarnessPort(), PCB_TEXTBOX::SetBottom(), SetBottom(), SetRectangleHeight(), PCB_TEXTBOX::SetTop(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 119 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(), SCH_IO_ALTIUM::ParseCircle(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseHarnessPort(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), DIALOG_SHAPE_PROPERTIES::TransferDataFromWindow(), and DIALOG_TEXT_PROPERTIES::TransferDataFromWindow().
|
inline |
Definition at line 108 of file eda_shape.h.
References setFilled().
Referenced by SCH_IO_ALTIUM::AddLibTextBox(), PAD::AddPrimitivePoly(), SCH_IO_ALTIUM::AddTextBox(), ZONE_CREATE_HELPER::commitZone(), ALTIUM_PCB::ConvertFills6ToBoardItem(), ALTIUM_PCB::ConvertFills6ToFootprintItem(), MICROWAVE_TOOL::createPolygonShape(), CONVERT_TOOL::CreatePolys(), Deserialize(), CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarShape(), DRAWING_TOOL::DrawCircle(), DRAWING_TOOL::DrawRectangle(), DRAWING_TOOL::drawShape(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad(), ALTIUM_PCB::HelperParsePad6NonCopper(), FABMASTER::loadFootprints(), 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(), SCH_IO_ALTIUM::ParseCircle(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), PAD::Recombine(), and DRC_TEST_PROVIDER_CLEARANCE_BASE::ShowPathDRC().
|
inlineprotectedvirtual |
Reimplemented in SCH_SHAPE.
Definition at line 378 of file eda_shape.h.
References m_fill.
Referenced by SetFilled().
|
inline |
Definition at line 113 of file eda_shape.h.
References m_fill.
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(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), 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::ParseCircle(), SCH_IO_ALTIUM::ParseEllipse(), SCH_IO_ALTIUM::ParseHarnessPort(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), SCH_SHAPE_DESC::SCH_SHAPE_DESC(), SetLibShapeFillAndColor(), SetSchShapeFillAndColor(), DIALOG_SHAPE_PROPERTIES::TransferDataFromWindow(), and DIALOG_TEXT_PROPERTIES::TransferDataFromWindow().
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 205 of file eda_shape.h.
References SetStartX().
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
void EDA_SHAPE::SetLength | ( | const double & | aLength | ) |
Definition at line 430 of file eda_shape.cpp.
References m_segmentLength, m_shape, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
|
inline |
Definition at line 128 of file eda_shape.h.
References m_stroke, and STROKE_PARAMS::SetColor().
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), and DRC_TEST_PROVIDER_CLEARANCE_BASE::ShowPathDRC().
void EDA_SHAPE::SetLineStyle | ( | const LINE_STYLE | aStyle | ) |
Definition at line 2035 of file eda_shape.cpp.
References m_stroke, and STROKE_PARAMS::SetLineStyle().
Referenced by Deserialize(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_IO_ALTIUM::ParseLine(), and PCB_TEXTBOX_DESC::PCB_TEXTBOX_DESC().
void EDA_SHAPE::SetPolyPoints | ( | const std::vector< VECTOR2I > & | aPoints | ) |
Definition at line 1451 of file eda_shape.cpp.
References SHAPE_POLY_SET::Append(), m_poly, SHAPE_POLY_SET::NewOutline(), and SHAPE_POLY_SET::RemoveAllContours().
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 294 of file eda_shape.h.
References SHAPE_POLY_SET::Fracture(), SHAPE_POLY_SET::HoleCount(), m_poly, SHAPE_POLY_SET::OutlineCount(), and SHAPE_POLY_SET::PM_FAST.
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 357 of file eda_shape.cpp.
References getPosition(), and move.
Referenced by SCH_SHAPE::SetPosition(), and PCB_SHAPE::SetPosition().
|
inline |
Definition at line 196 of file eda_shape.h.
References m_end, 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 470 of file eda_shape.cpp.
References m_rectangleHeight, m_rectangleWidth, m_shape, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
void EDA_SHAPE::SetRectangleHeight | ( | const int & | aHeight | ) |
Definition at line 442 of file eda_shape.cpp.
References GetStartY(), m_rectangleHeight, m_shape, SetEndY(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
void EDA_SHAPE::SetRectangleWidth | ( | const int & | aWidth | ) |
Definition at line 456 of file eda_shape.cpp.
References GetStartX(), m_rectangleWidth, m_shape, SetEndX(), SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 206 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 485 of file eda_shape.cpp.
References m_segmentAngle, m_shape, SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
|
inline |
Definition at line 131 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::DrawCircle(), 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(), and PCB_TEXTBOX::Rotate().
|
inline |
Definition at line 141 of file eda_shape.h.
References m_endsSwapped, 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(), 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(), MICROWAVE_TOOL::createMicrowaveInductor(), Deserialize(), EDA_SHAPE(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepCenter(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepTangent(), ARC_POINT_EDIT_BEHAVIOR::editArcMidKeepCenter(), PCB_IO_IPC2581::generateLayerSetNet(), CADSTAR_SCH_ARCHIVE_LOADER::getScaledLibPart(), CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex(), GraphConnection::GetShapes(), HelperGeneratePowerPortGraphics(), ALTIUM_PCB::HelperParsePad6NonCopper(), FEATURES_MANAGER::InitFeatureList(), initTextTable(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadBezier(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), FABMASTER::loadFootprints(), CADSTAR_SCH_ARCHIVE_LOADER::loadLibrarySymbolShapeVertices(), PCB_IO_EAGLE::loadPlain(), SCH_IO_EAGLE::loadSymbolWire(), GRAPHICS_CLEANER::mergeRects(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), 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(), DRAWING_TOOL::PlaceCharacteristics(), DRAWING_TOOL::PlaceStackup(), SCH_TEXTBOX::Plot(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), PCB_TEXTBOX::Rotate(), DRC_TEST_PROVIDER_CLEARANCE_BASE::ShowPathDRC(), DRC_TEST_PROVIDER_CREEPAGE::testCreepage(), PCB_TARGET::TransformShapeToPolygon(), updateArcFromConstructionMgr(), updateBezierFromConstructionMgr(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdateItem(), and updateSegmentFromGeometryMgr().
|
inline |
Definition at line 153 of file eda_shape.h.
References m_endsSwapped, m_start, and VECTOR2< T >::x.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SCH_IO_ALTIUM::ParseHarnessPort(), PCB_TEXTBOX::SetLeft(), SetLeft(), PCB_TEXTBOX::SetRight(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 147 of file eda_shape.h.
References m_endsSwapped, m_start, and VECTOR2< T >::y.
Referenced by EDA_SHAPE_DESC::EDA_SHAPE_DESC(), SCH_SHAPE::Normalize(), SCH_IO_ALTIUM::ParseHarnessPort(), PCB_TEXTBOX::SetBottom(), PCB_TEXTBOX::SetTop(), SetTop(), and RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inlinevirtual |
Reimplemented in PCB_TEXTBOX.
Definition at line 204 of file eda_shape.h.
References SetStartY().
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 121 of file eda_shape.h.
References m_stroke, and STROKE_PARAMS::SetWidth().
Referenced by Deserialize(), EDA_SHAPE(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), PAD_TOOL::explodePad(), PCB_IO_IPC2581::generateLayerSetNet(), GraphConnection::GetShapes(), FEATURES_MANAGER::InitFeatureList(), FABMASTER::loadFootprints(), SCH_IO_ALTIUM::ParseEllipse(), PCB_SHAPE::SetIsProxyItem(), and DRC_TEST_PROVIDER_CLEARANCE_BASE::ShowPathDRC().
wxString EDA_SHAPE::SHAPE_T_asString | ( | ) | const |
Definition at line 340 of file eda_shape.cpp.
References m_shape.
Referenced by SCH_SHAPE::AddPoint(), BOARD_ADAPTER::addShape(), GRAPHICS_CLEANER::areEquivalent(), beginEdit(), calcEdit(), CheckLibSymbolGraphics(), continueEdit(), doConvertOutlineToPolygon(), endEdit(), flip(), PCB_IO_KICAD_SEXPR::format(), getBoundingBox(), getCenter(), PCB_SHAPE::GetCorners(), SCH_SHAPE::GetItemDescription(), GetLength(), SCH_SHAPE::GetMenuImage(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), hitTest(), IsClockwiseArc(), IsClosed(), GRAPHICS_CLEANER::isNullShape(), makeEffectiveShapes(), EE_POINT_EDITOR::makePointsAndBehavior(), PCB_SHAPE::Mirror(), move(), SCH_SHAPE::Plot(), BRDITEMS_PLOTTER::PlotShape(), SCH_SHAPE::Print(), SCH_SHAPE::PrintBackground(), rotate(), SCH_IO_KICAD_SEXPR::saveShape(), SCH_IO_KICAD_SEXPR_LIB_CACHE::saveSymbolDrawItem(), scale(), SetCenter(), SetLength(), SetRectangle(), SetRectangleHeight(), SetRectangleWidth(), SetSegmentAngle(), shapeNeedsUpdate(), TransformShapeToPolygon(), and DIALOG_SHAPE_PROPERTIES::Validate().
void EDA_SHAPE::ShapeGetMsgPanelInfo | ( | EDA_DRAW_FRAME * | aFrame, |
std::vector< MSG_PANEL_ITEM > & | aList | ||
) |
Definition at line 966 of file eda_shape.cpp.
References _, std::abs(), GetArcAngle(), GetEnd(), getFriendlyName(), GetLength(), STROKE_PARAMS::GetMsgPanelInfo(), GetPolyShape(), GetRadius(), GetStart(), m_shape, m_stroke, EDA_UNIT_UTILS::UI::MessageTextFromValue(), UNITS_PROVIDER::MessageTextFromValue(), and RADIANS_T.
Referenced by SCH_SHAPE::GetMsgPanelInfo(), and PCB_SHAPE::GetMsgPanelInfo().
wxString EDA_SHAPE::ShowShape | ( | ) | const |
Definition at line 313 of file eda_shape.cpp.
References _, IsProxyItem(), and m_shape.
double EDA_SHAPE::Similarity | ( | const EDA_SHAPE & | aOther | ) | const |
Definition at line 2095 of file eda_shape.cpp.
References SHAPE_POLY_SET::CVertex(), 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 1852 of file eda_shape.cpp.
References image, m_arcCenter, m_bezierC1, m_bezierC2, m_bezierPoints, m_editState, m_end, m_endsSwapped, m_fill, m_fillColor, 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 |
||
) | 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 shoule be placed inside or outside |
ignoreLineWidth | is used for edge cut items where the line width is only for visualization |
Definition at line 1916 of file eda_shape.cpp.
References SEG::A, SHAPE_POLY_SET::Append(), SEG::B, ERROR_OUTSIDE, GetArcMid(), GetBezierC1(), GetBezierC2(), getCenter(), GetEnd(), SHAPE_LINE_CHAIN::GetPoint(), SHAPE_LINE_CHAIN::GetPointCount(), BEZIER_POLY::GetPoly(), GetRadius(), GetRectCorners(), SHAPE_LINE_CHAIN::GetSegment(), GetStart(), GetWidth(), SHAPE_POLY_SET::Inflate(), IsFilled(), IsPolyShapeValid(), IsProxyItem(), m_poly, m_shape, SHAPE_POLY_SET::NewOutline(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_T_asString(), TransformArcToPolygon(), TransformCircleToPolygon(), TransformOvalToPolygon(), TransformRingToPolygon(), and UNIMPLEMENTED_FOR.
Referenced by PCB_SHAPE::TransformShapeToPolygon().
|
protected |
Definition at line 435 of file eda_shape.h.
Referenced by calcEdit(), Compare(), computeArcBBox(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetArcMid(), getCenter(), GetRadius(), makeEffectiveShapes(), PCB_SHAPE::Mirror(), move(), operator==(), rotate(), scale(), SetArcAngleAndEnd(), SetArcGeometry(), SetCenter(), Similarity(), and SwapShape().
|
protected |
Definition at line 436 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), GetArcMid(), SetArcGeometry(), and SetCachedArcData().
|
protected |
Definition at line 438 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), Compare(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetBezierC1(), hitTest(), PCB_SHAPE::Mirror(), move(), operator==(), rotate(), scale(), SetBezierC1(), Similarity(), and SwapShape().
|
protected |
Definition at line 439 of file eda_shape.h.
Referenced by buildBezierToSegmentsPointsList(), Compare(), Deserialize(), PCB_SHAPE::Deserialize(), flip(), GetBezierC2(), hitTest(), PCB_SHAPE::Mirror(), move(), operator==(), rotate(), scale(), SetBezierC2(), Similarity(), and SwapShape().
|
protected |
Definition at line 441 of file eda_shape.h.
Referenced by Compare(), GetBezierPoints(), getBoundingBox(), SCH_SHAPE::GetItemDescription(), GetLength(), hitTest(), IsClosed(), move(), operator==(), SCH_SHAPE::Plot(), SCH_SHAPE::Print(), SCH_SHAPE::PrintBackground(), RebuildBezierToSegmentsPointsList(), rotate(), Similarity(), and SwapShape().
|
protected |
Definition at line 444 of file eda_shape.h.
Referenced by beginEdit(), calcEdit(), continueEdit(), Deserialize(), PCB_SHAPE::Deserialize(), setEditState(), and SwapShape().
|
protected |
Definition at line 433 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(), IsClockwiseArc(), makeEffectiveShapes(), PCB_SHAPE::Mirror(), 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 420 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), EndsSwapped(), SetArcAngleAndEnd(), SetArcGeometry(), SetEnd(), SetEndX(), SetEndY(), SetStart(), SetStartX(), SetStartY(), and SwapShape().
|
protected |
Definition at line 423 of file eda_shape.h.
Referenced by Compare(), GetFillMode(), operator==(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), setFilled(), SCH_SHAPE::setFilled(), SetFillMode(), Similarity(), and SwapShape().
|
protected |
Definition at line 424 of file eda_shape.h.
Referenced by GetFillColor(), operator==(), SetFillColor(), Similarity(), and SwapShape().
|
protected |
Definition at line 442 of file eda_shape.h.
Referenced by SCH_SHAPE::AddPoint(), beginEdit(), calcEdit(), Compare(), continueEdit(), DupPolyPointsList(), EDA_SHAPE(), endEdit(), flip(), getBoundingBox(), SCH_SHAPE::GetItemDescription(), GetLength(), GetPolyShape(), getPosition(), hitTest(), IsClosed(), PCB_SHAPE::Mirror(), move(), PCB_SHAPE::Normalize(), operator==(), SCH_RULE_AREA::Plot(), SCH_SHAPE::Plot(), SCH_SHAPE::Print(), SCH_SHAPE::PrintBackground(), rotate(), scale(), SetPolyPoints(), SetPolyShape(), Similarity(), SwapShape(), TransformShapeToPolygon(), and PCB_TEXTBOX::TransformShapeToPolygon().
|
protected |
Definition at line 445 of file eda_shape.h.
Referenced by Deserialize(), PCB_SHAPE::Deserialize(), IsProxyItem(), PCB_SHAPE::IsProxyItem(), SetIsProxyItem(), and PCB_SHAPE::SetIsProxyItem().
|
protected |
Definition at line 426 of file eda_shape.h.
Referenced by SetRectangle(), and SetRectangleHeight().
|
protected |
Definition at line 427 of file eda_shape.h.
Referenced by SetRectangle(), and SetRectangleWidth().
|
protected |
Definition at line 430 of file eda_shape.h.
Referenced by SetSegmentAngle().
|
protected |
Definition at line 429 of file eda_shape.h.
Referenced by SetLength().
|
protected |
Definition at line 421 of file eda_shape.h.
Referenced by Compare(), EDA_SHAPE(), flip(), getBoundingBox(), getCenter(), PCB_SHAPE::GetConnectionPoints(), PCB_SHAPE::GetFocusPosition(), getFriendlyName(), GetLength(), getPosition(), GetRadius(), GetRectangleHeight(), GetRectangleWidth(), GetShape(), hitTest(), IsClockwiseArc(), IsClosed(), PCB_SHAPE::IsType(), makeEffectiveShapes(), SCH_RULE_AREA::MakeEffectiveShapes(), move(), PCB_SHAPE::Normalize(), PCB_SHAPE::NormalizeForCompare(), RebuildBezierToSegmentsPointsList(), rotate(), scale(), SetCenter(), SetLength(), SetRectangle(), SetRectangleHeight(), SetRectangleWidth(), SetSegmentAngle(), SetShape(), SHAPE_T_asString(), ShapeGetMsgPanelInfo(), ShowShape(), SwapShape(), and TransformShapeToPolygon().
|
protected |
Definition at line 432 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(), IsClockwiseArc(), makeEffectiveShapes(), PCB_SHAPE::Mirror(), 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 422 of file eda_shape.h.
Referenced by Compare(), flip(), PCB_TEXTBOX::GetBorderWidth(), SCH_SHAPE::GetEffectiveLineStyle(), GetLineColor(), GetLineStyle(), SCH_RULE_AREA::GetMsgPanelInfo(), SCH_TEXTBOX::GetMsgPanelInfo(), PCB_TEXTBOX::GetMsgPanelInfo(), SCH_SHAPE::GetStroke(), PCB_SHAPE::GetStroke(), GetWidth(), operator==(), scale(), PCB_TEXTBOX::SetBorderWidth(), SetLineColor(), SetLineStyle(), SCH_SHAPE::SetStroke(), PCB_SHAPE::SetStroke(), SetWidth(), ShapeGetMsgPanelInfo(), Similarity(), PCB_SHAPE::StyleFromSettings(), and SwapShape().