KiCad PCB EDA Suite
Loading...
Searching...
No Matches
EC_CONVERGING Class Reference

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>

Inheritance diagram for EC_CONVERGING:
EDIT_CONSTRAINT< EDIT_LINE >

Public Member Functions

 EC_CONVERGING (EDIT_LINE &aLine, EDIT_POINTS &aPoints)
 
virtual ~EC_CONVERGING ()
 
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_LINEm_constrained
 Point that is constrained by rules implemented by Apply().
 

Private Attributes

std::unique_ptr< EDIT_CONSTRAINT< EDIT_POINT > > m_originSideConstraint
 Constraint for origin side segment.
 
std::unique_ptr< EDIT_CONSTRAINT< EDIT_POINT > > m_endSideConstraint
 Constraint for end side segment.
 
EDIT_CONSTRAINT< EDIT_POINT > * m_colinearConstraint
 Additional constraint, applied when at least two points are collinear.
 
EDIT_POINTSm_editPoints
 EDIT_POINTS instance that stores currently modified lines.
 
VECTOR2I m_draggedVector
 Vector that represents the initial direction of the dragged segment.
 
bool m_originCollinear
 Flags to indicate when dragged and neighbouring lines are (almost) collinear.
 
bool m_endCollinear
 
EDIT_POINTm_prevOrigin
 Previous and next points to keep drag endpoints fixed.
 
EDIT_POINTm_nextEnd
 
VECTOR2I m_convergencePoint
 Original convergence point of adjacent segments.
 
VECTOR2I m_midVector
 Vector from the convergence point to the mid-line point.
 

Detailed Description

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 236 of file edit_constraints.h.

Constructor & Destructor Documentation

◆ EC_CONVERGING()

◆ ~EC_CONVERGING()

EC_CONVERGING::~EC_CONVERGING ( )
virtual

Definition at line 191 of file edit_constraints.cpp.

Member Function Documentation

◆ Apply() [1/2]

◆ Apply() [2/2]

void EDIT_CONSTRAINT< EDIT_LINE >::Apply ( const GRID_HELPER & aGrid)
inlineinherited

Correct coordinates of the constrained edit handle.

Definition at line 82 of file edit_constraints.h.

Member Data Documentation

◆ m_colinearConstraint

EDIT_CONSTRAINT<EDIT_POINT>* EC_CONVERGING::m_colinearConstraint
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 255 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_constrained

EDIT_LINE& EDIT_CONSTRAINT< EDIT_LINE >::m_constrained
protectedinherited

Point that is constrained by rules implemented by Apply().

Definition at line 88 of file edit_constraints.h.

◆ m_convergencePoint

VECTOR2I EC_CONVERGING::m_convergencePoint
private

Original convergence point of adjacent segments.

Definition at line 272 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_draggedVector

VECTOR2I EC_CONVERGING::m_draggedVector
private

Vector that represents the initial direction of the dragged segment.

Definition at line 261 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_editPoints

EDIT_POINTS& EC_CONVERGING::m_editPoints
private

EDIT_POINTS instance that stores currently modified lines.

Definition at line 258 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_endCollinear

bool EC_CONVERGING::m_endCollinear
private

Definition at line 265 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_endSideConstraint

std::unique_ptr<EDIT_CONSTRAINT<EDIT_POINT> > EC_CONVERGING::m_endSideConstraint
private

Constraint for end side segment.

Definition at line 251 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_midVector

VECTOR2I EC_CONVERGING::m_midVector
private

Vector from the convergence point to the mid-line point.

Definition at line 275 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_nextEnd

EDIT_POINT* EC_CONVERGING::m_nextEnd
private

Definition at line 269 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_originCollinear

bool EC_CONVERGING::m_originCollinear
private

Flags to indicate when dragged and neighbouring lines are (almost) collinear.

Definition at line 264 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_originSideConstraint

std::unique_ptr<EDIT_CONSTRAINT<EDIT_POINT> > EC_CONVERGING::m_originSideConstraint
private

Constraint for origin side segment.

Definition at line 248 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_prevOrigin

EDIT_POINT* EC_CONVERGING::m_prevOrigin
private

Previous and next points to keep drag endpoints fixed.

Definition at line 268 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().


The documentation for this class was generated from the following files: