|
KiCad PCB EDA Suite
|
Represent a line connecting two EDIT_POINTs. More...
#include <edit_points.h>
Public Member Functions | |
| EDIT_LINE (EDIT_POINT &aOrigin, EDIT_POINT &aEnd) | |
| virtual VECTOR2I | GetPosition () const override |
| Return coordinates of an EDIT_POINT. | |
| virtual void | SetPosition (const VECTOR2I &aPosition) override |
| Return coordinates of an EDIT_POINT. | |
| virtual void | ApplyRelation (const GRID_HELPER &aGrid) override |
| Correct coordinates of an EDIT_POINT by applying its relation. | |
| void | SetRelation (std::unique_ptr< EDIT_RELATION > aRelation) |
| Set a relation for an EDIT_LINE. | |
| EDIT_RELATION * | GetRelation () const |
| Return the relation imposed on an EDIT_LINE. | |
| void | SetDragPolicy (std::unique_ptr< POLYGON_EDGE_DRAG_POLICY > aPolicy) |
| POLYGON_EDGE_DRAG_POLICY * | GetDragPolicy () const |
| bool | IsConstrained () const override |
| Check if line is constrained. | |
| EDIT_POINT & | GetOrigin () |
| Return the origin EDIT_POINT. | |
| const EDIT_POINT & | GetOrigin () const |
| EDIT_POINT & | GetEnd () |
| Return the end EDIT_POINT. | |
| const EDIT_POINT & | GetEnd () const |
| bool | HasCenterPoint () const |
| Is the center-point of the line useful to be shown? | |
| void | SetHasCenterPoint (bool aHasCenterPoint) |
| Set if the center-point of the line should be shown. | |
| bool | DrawLine () const |
| Should the line itself be drawn, or just the end and/or center points? | |
| void | SetDrawLine (bool aShowLine) |
| Set if the line itself should be drawn. | |
| bool | operator== (const EDIT_POINT &aOther) const |
| bool | operator== (const EDIT_LINE &aOther) const |
| virtual std::pair< EDA_ITEM *, int > | GetConnected () const |
| Return a connected item record comprising an EDA_ITEM* and a STARTPOINT/ENDPOINT flag. | |
| int | GetX () const |
| Return X coordinate of an EDIT_POINT. | |
| int | GetY () const |
| Return Y coordinate of an EDIT_POINT. | |
| virtual void | SetPosition (int x, int y) |
| bool | WithinPoint (const VECTOR2I &aPoint, unsigned int aSize) const |
| Check if given point is within a square centered in the EDIT_POINT position. | |
| bool | IsActive () const |
| void | SetActive (bool aActive=true) |
| bool | IsHover () const |
| void | SetHover (bool aHover=true) |
| bool | DrawCircle () const |
| void | SetDrawCircle (bool aDrawCircle=true) |
| GRID_CONSTRAINT_TYPE | GetGridConstraint () const |
| void | SetGridConstraint (GRID_CONSTRAINT_TYPE aConstraint) |
| SNAP_CONSTRAINT_TYPE | GetSnapConstraint () const |
| void | SetSnapConstraint (SNAP_CONSTRAINT_TYPE aConstraint) |
Static Public Attributes | |
| static const int | POINT_SIZE = 8 |
| Single point size in pixels. | |
| static const int | BORDER_SIZE = 2 |
| Border size when not hovering. | |
| static const int | HOVER_SIZE = 5 |
| Border size when hovering. | |
Private Attributes | |
| EDIT_POINT & | m_origin |
| Origin point for a line. | |
| EDIT_POINT & | m_end |
| End point for a line. | |
| bool | m_hasCenterPoint = true |
| True if the line has a (useful) center point. | |
| bool | m_showLine = false |
| True if the line itself should be drawn. | |
| std::shared_ptr< EDIT_RELATION > | m_relation |
| Relation and geometry policy for the line, NULL if absent. | |
| std::shared_ptr< POLYGON_EDGE_DRAG_POLICY > | m_dragPolicy |
| VECTOR2I | m_position |
| Position of EDIT_POINT. | |
| bool | m_isActive |
| True if this point is being manipulated. | |
| bool | m_isHover |
| True if this point is being hovered over. | |
| bool | m_drawCircle |
| True if the point is drawn circular. | |
| GRID_CONSTRAINT_TYPE | m_gridConstraint |
| Describe the grid snapping behavior. | |
| SNAP_CONSTRAINT_TYPE | m_snapConstraint |
| Describe the object snapping behavior. | |
| std::pair< EDA_ITEM *, int > | m_connected |
| An optional connected item record used to mimic polyLine behavior with individual line segments. | |
Represent a line connecting two EDIT_POINTs.
This allows one to move them both by dragging the EDIT_POINT in the middle. It uses references to EDIT_POINTs, all coordinates are automatically synchronized.
Definition at line 215 of file edit_points.h.
|
inline |
Definition at line 222 of file edit_points.h.
References EDIT_POINT::EDIT_POINT(), GetPosition(), m_end, m_origin, EDIT_POINT::SetGridConstraint(), and SNAP_BY_GRID.
Referenced by operator==().
|
inlineoverridevirtual |
Correct coordinates of an EDIT_POINT by applying its relation.
Reimplemented from EDIT_POINT.
Definition at line 246 of file edit_points.h.
References m_dragPolicy, m_end, m_origin, and m_relation.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
inlineinherited |
Definition at line 167 of file edit_points.h.
References m_drawCircle.
|
inline |
Should the line itself be drawn, or just the end and/or center points?
Definition at line 331 of file edit_points.h.
References m_showLine.
|
inlinevirtualinherited |
Return a connected item record comprising an EDA_ITEM* and a STARTPOINT/ENDPOINT flag.
Definition at line 76 of file edit_points.h.
References m_connected.
Referenced by LINE_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Definition at line 282 of file edit_points.h.
References m_dragPolicy.
Referenced by BOOST_AUTO_TEST_CASE(), PCB_POINT_EDITOR::OnSelectionChange(), and PCB_POINT_EDITOR::setAltConstraint().
|
inline |
Return the end EDIT_POINT.
Definition at line 308 of file edit_points.h.
References EDIT_POINT::EDIT_POINT(), and m_end.
Referenced by POLYGON_EDGE_DRAG_POLICY::applyConverging(), POLYGON_EDGE_DRAG_POLICY::applyFixedLength(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), SCH_POINT_EDITOR::Main(), PCB_POINT_EDITOR::OnSelectionChange(), EDIT_RELATION::PerpendicularTranslation(), and POLYGON_EDGE_DRAG_POLICY::POLYGON_EDGE_DRAG_POLICY().
|
inline |
Definition at line 313 of file edit_points.h.
References EDIT_POINT::EDIT_POINT(), and m_end.
|
inlineinherited |
Definition at line 170 of file edit_points.h.
References m_gridConstraint.
Referenced by EDIT_RELATION::Apply().
|
inline |
Return the origin EDIT_POINT.
Definition at line 295 of file edit_points.h.
References EDIT_POINT::EDIT_POINT(), and m_origin.
Referenced by POLYGON_EDGE_DRAG_POLICY::applyConverging(), POLYGON_EDGE_DRAG_POLICY::applyFixedLength(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), SCH_POINT_EDITOR::Main(), PCB_POINT_EDITOR::OnSelectionChange(), EDIT_RELATION::PerpendicularTranslation(), and POLYGON_EDGE_DRAG_POLICY::POLYGON_EDGE_DRAG_POLICY().
|
inline |
Definition at line 300 of file edit_points.h.
References EDIT_POINT::EDIT_POINT(), and m_origin.
|
inlineoverridevirtual |
Return coordinates of an EDIT_POINT.
Reimplemented from EDIT_POINT.
Definition at line 231 of file edit_points.h.
References m_end, and m_origin.
Referenced by EDIT_RELATION::Apply(), POLYGON_EDGE_DRAG_POLICY::Apply(), POLYGON_EDGE_DRAG_POLICY::applyConverging(), POLYGON_EDGE_DRAG_POLICY::applyFixedLength(), EDIT_LINE(), operator==(), EDIT_RELATION::PerpendicularTranslation(), POLYGON_EDGE_DRAG_POLICY::POLYGON_EDGE_DRAG_POLICY(), and SetPosition().
|
inline |
Return the relation imposed on an EDIT_LINE.
If there is no relation, NULL is returned.
Definition at line 272 of file edit_points.h.
References m_relation.
|
inlineinherited |
Definition at line 173 of file edit_points.h.
References m_snapConstraint.
|
inlineinherited |
Return X coordinate of an EDIT_POINT.
Definition at line 84 of file edit_points.h.
References GetPosition(), and VECTOR2< T >::x.
Referenced by BOOST_AUTO_TEST_CASE(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), and SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inlineinherited |
Return Y coordinate of an EDIT_POINT.
Definition at line 92 of file edit_points.h.
References GetPosition(), and VECTOR2< T >::y.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), and SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inline |
Is the center-point of the line useful to be shown?
Definition at line 321 of file edit_points.h.
References m_hasCenterPoint.
|
inlineinherited |
Definition at line 161 of file edit_points.h.
References m_isActive.
Referenced by KIGFX::PREVIEW::ANGLE_ITEM::drawPreviewShape(), PCB_TUNING_PATTERN::UpdateFromEditPoints(), and EDIT_POINTS::ViewDraw().
|
inlineoverridevirtual |
Check if line is constrained.
Reimplemented from EDIT_POINT.
Definition at line 287 of file edit_points.h.
References m_dragPolicy, and m_relation.
|
inlineinherited |
Definition at line 164 of file edit_points.h.
References m_isHover.
Referenced by KIGFX::PREVIEW::ANGLE_ITEM::drawPreviewShape(), and EDIT_POINTS::ViewDraw().
|
inline |
Definition at line 343 of file edit_points.h.
References EDIT_LINE(), m_end, and m_origin.
|
inline |
Definition at line 338 of file edit_points.h.
References EDIT_POINT::EDIT_POINT(), GetPosition(), and EDIT_POINT::GetPosition().
|
inlineinherited |
Definition at line 162 of file edit_points.h.
References m_isActive.
Referenced by PCB_POINT_EDITOR::OnSelectionChange().
|
inline |
Definition at line 277 of file edit_points.h.
References m_dragPolicy.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), POLYGON_POINT_EDIT_BEHAVIOR::BuildForPolyOutline(), and POLYGON_POINT_EDIT_BEHAVIOR::UpdateOutlineFromPoints().
|
inlineinherited |
Definition at line 168 of file edit_points.h.
References m_drawCircle.
Referenced by RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), and RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints().
|
inline |
Set if the line itself should be drawn.
Definition at line 336 of file edit_points.h.
References m_showLine.
Referenced by EDIT_POINTS::AddIndicatorLine().
|
inlineinherited |
Definition at line 171 of file edit_points.h.
References m_gridConstraint.
Referenced by EDIT_LINE::EDIT_LINE(), and PCB_TUNING_PATTERN::MakeEditPoints().
|
inline |
Set if the center-point of the line should be shown.
Definition at line 326 of file edit_points.h.
References m_hasCenterPoint.
Referenced by EDIT_POINTS::AddIndicatorLine().
|
inlineinherited |
Definition at line 165 of file edit_points.h.
References m_isHover.
|
inlineoverridevirtual |
Return coordinates of an EDIT_POINT.
Reimplemented from EDIT_POINT.
Definition at line 237 of file edit_points.h.
References GetPosition(), m_end, and m_origin.
Referenced by EDIT_RELATION::Apply(), POLYGON_EDGE_DRAG_POLICY::Apply(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
inlinevirtualinherited |
Definition at line 109 of file edit_points.h.
References m_position.
|
inline |
Set a relation for an EDIT_LINE.
| aRelation | is the relation to be set. |
Definition at line 263 of file edit_points.h.
References m_relation.
Referenced by BOOST_AUTO_TEST_CASE(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), RECTANGLE_POINT_EDIT_BEHAVIOR::MakePoints(), SHEET_POINT_EDIT_BEHAVIOR::MakePoints(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), and SHEET_POINT_EDIT_BEHAVIOR::UpdateItem().
|
inlineinherited |
Definition at line 174 of file edit_points.h.
References m_snapConstraint.
Referenced by ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR::MakePoints(), DIM_CENTER_POINT_EDIT_BEHAVIOR::MakePoints(), DIM_LEADER_POINT_EDIT_BEHAVIOR::MakePoints(), and DIM_RADIAL_POINT_EDIT_BEHAVIOR::MakePoints().
|
inherited |
Check if given point is within a square centered in the EDIT_POINT position.
| aPoint | is point to be checked. |
| aSize | is length of the square side. |
Definition at line 33 of file edit_points.cpp.
References GetPosition(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
staticinherited |
Border size when not hovering.
Definition at line 188 of file edit_points.h.
Referenced by KIGFX::PREVIEW::ANGLE_ITEM::drawPreviewShape(), and EDIT_POINTS::ViewDraw().
|
staticinherited |
Border size when hovering.
Definition at line 189 of file edit_points.h.
Referenced by EDIT_POINTS::ViewDraw().
|
privateinherited |
An optional connected item record used to mimic polyLine behavior with individual line segments.
Definition at line 202 of file edit_points.h.
Referenced by GetConnected().
|
private |
Definition at line 357 of file edit_points.h.
Referenced by ApplyRelation(), GetDragPolicy(), IsConstrained(), and SetDragPolicy().
|
privateinherited |
True if the point is drawn circular.
Definition at line 196 of file edit_points.h.
Referenced by DrawCircle(), and SetDrawCircle().
|
private |
End point for a line.
Definition at line 350 of file edit_points.h.
Referenced by ApplyRelation(), EDIT_LINE(), GetEnd(), GetEnd(), GetPosition(), operator==(), and SetPosition().
|
privateinherited |
Describe the grid snapping behavior.
Definition at line 197 of file edit_points.h.
Referenced by GetGridConstraint(), and SetGridConstraint().
|
private |
True if the line has a (useful) center point.
Definition at line 352 of file edit_points.h.
Referenced by HasCenterPoint(), and SetHasCenterPoint().
|
privateinherited |
True if this point is being manipulated.
Definition at line 194 of file edit_points.h.
Referenced by IsActive(), and SetActive().
|
privateinherited |
True if this point is being hovered over.
Definition at line 195 of file edit_points.h.
Referenced by IsHover(), and SetHover().
|
private |
Origin point for a line.
Definition at line 349 of file edit_points.h.
Referenced by ApplyRelation(), EDIT_LINE(), GetOrigin(), GetOrigin(), GetPosition(), operator==(), and SetPosition().
|
privateinherited |
Position of EDIT_POINT.
Definition at line 193 of file edit_points.h.
Referenced by GetPosition(), operator==(), SetPosition(), and SetPosition().
|
private |
Relation and geometry policy for the line, NULL if absent.
Definition at line 356 of file edit_points.h.
Referenced by ApplyRelation(), GetRelation(), IsConstrained(), and SetRelation().
|
private |
True if the line itself should be drawn.
Definition at line 353 of file edit_points.h.
Referenced by DrawLine(), and SetDrawLine().
|
privateinherited |
Describe the object snapping behavior.
Definition at line 198 of file edit_points.h.
Referenced by GetSnapConstraint(), and SetSnapConstraint().
|
staticinherited |
Single point size in pixels.
Definition at line 182 of file edit_points.h.
Referenced by SCH_POINT_EDITOR::addCornerCondition(), KIGFX::PREVIEW::ANGLE_ITEM::drawPreviewShape(), EDIT_POINTS::FindPoint(), CONSTRAINT_BADGE_ITEM::ViewDraw(), EDIT_POINTS::ViewDraw(), and PCB_TUNING_PATTERN::ViewDraw().