KiCad PCB EDA Suite
|
EDIT_CONSTRAINT for 3 segments: dragged and two adjacent ones, enforcing to keep their slopes and allows only to change ending points. More...
#include <edit_constraints.h>
Public Member Functions | |
EC_CONVERGING (EDIT_LINE &aLine, EDIT_POINTS &aPoints) | |
virtual | ~EC_CONVERGING () |
Correct coordinates of the constrained edit handle. | |
virtual void | Apply (EDIT_LINE &aHandle, const GRID_HELPER &aGrid) override |
Correct coordinates of the constrained edit handle. | |
void | Apply (const GRID_HELPER &aGrid) |
Correct coordinates of the constrained edit handle. | |
Protected Attributes | |
EDIT_LINE & | m_constrained |
Point that is constrained by rules implemented by Apply(). | |
Private Attributes | |
EDIT_CONSTRAINT< EDIT_POINT > * | m_originSideConstraint |
< Constraint for origin side segment. | |
EDIT_CONSTRAINT< EDIT_POINT > * | m_endSideConstraint |
Additional constraint, applied when at least two points are collinear. | |
EDIT_CONSTRAINT< EDIT_POINT > * | m_colinearConstraint |
EDIT_POINTS instance that stores currently modified lines. | |
EDIT_POINTS & | m_editPoints |
Vector that represents the initial direction of the dragged segment. | |
VECTOR2I | m_draggedVector |
Flags to indicate when dragged and neighbouring lines are (almost) collinear. | |
bool | m_originCollinear |
bool | m_endCollinear |
EDIT_CONSTRAINT for 3 segments: dragged and two adjacent ones, enforcing to keep their slopes and allows only to change ending points.
Applied to zones.
Definition at line 213 of file edit_constraints.h.
EC_CONVERGING::EC_CONVERGING | ( | EDIT_LINE & | aLine, |
EDIT_POINTS & | aPoints | ||
) |
Definition at line 126 of file edit_constraints.cpp.
References SEG::Angle(), EDA_ANGLE::AsDegrees(), EDIT_LINE::GetEnd(), EDIT_LINE::GetOrigin(), EDIT_POINT::GetPosition(), m_colinearConstraint, m_draggedVector, m_endCollinear, m_endSideConstraint, m_originCollinear, m_originSideConstraint, EDIT_POINTS::Next(), and EDIT_POINTS::Previous().
|
virtual |
Correct coordinates of the constrained edit handle.
Definition at line 164 of file edit_constraints.cpp.
References m_endSideConstraint, and m_originSideConstraint.
|
inlineinherited |
Correct coordinates of the constrained edit handle.
Definition at line 82 of file edit_constraints.h.
|
overridevirtual |
Correct coordinates of the constrained edit handle.
Implements EDIT_CONSTRAINT< EDIT_LINE >.
Definition at line 172 of file edit_constraints.cpp.
References EDIT_CONSTRAINT< EDIT_TYPE >::Apply(), EDIT_LINE::GetEnd(), EDIT_LINE::GetOrigin(), EDIT_POINT::GetPosition(), SEG::Intersect(), SEG::IntersectLines(), EDIT_POINTS::LinesSize(), m_colinearConstraint, m_draggedVector, m_editPoints, m_endCollinear, m_endSideConstraint, m_originCollinear, m_originSideConstraint, EDIT_POINTS::Next(), EDIT_POINTS::Previous(), and EDIT_POINT::SetPosition().
|
private |
EDIT_POINTS instance that stores currently modified lines.
Definition at line 232 of file edit_constraints.h.
Referenced by Apply(), and EC_CONVERGING().
|
protectedinherited |
Point that is constrained by rules implemented by Apply().
Definition at line 88 of file edit_constraints.h.
|
private |
Flags to indicate when dragged and neighbouring lines are (almost) collinear.
Definition at line 238 of file edit_constraints.h.
Referenced by Apply(), and EC_CONVERGING().
|
private |
Vector that represents the initial direction of the dragged segment.
Definition at line 235 of file edit_constraints.h.
Referenced by Apply().
|
private |
Definition at line 242 of file edit_constraints.h.
Referenced by Apply(), and EC_CONVERGING().
|
private |
Additional constraint, applied when at least two points are collinear.
It is a pointer to m_[origin/end]SideConstraint, so it should not be freed.
Definition at line 228 of file edit_constraints.h.
Referenced by Apply(), EC_CONVERGING(), and ~EC_CONVERGING().
|
private |
Definition at line 241 of file edit_constraints.h.
Referenced by Apply(), and EC_CONVERGING().
|
private |
< Constraint for origin side segment.
Constraint for end side segment.
Definition at line 225 of file edit_constraints.h.
Referenced by Apply(), EC_CONVERGING(), and ~EC_CONVERGING().