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 ()
 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_LINEm_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_POINTSm_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
 

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

Constructor & Destructor Documentation

◆ EC_CONVERGING()

◆ ~EC_CONVERGING()

EC_CONVERGING::~EC_CONVERGING ( )
virtual

Correct coordinates of the constrained edit handle.

Definition at line 164 of file edit_constraints.cpp.

References m_endSideConstraint, and m_originSideConstraint.

Member Function Documentation

◆ Apply() [1/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.

◆ Apply() [2/2]

Member Data Documentation

◆ m_colinearConstraint

EDIT_CONSTRAINT<EDIT_POINT>* EC_CONVERGING::m_colinearConstraint
private

EDIT_POINTS instance that stores currently modified lines.

Definition at line 232 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_draggedVector

VECTOR2I EC_CONVERGING::m_draggedVector
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().

◆ m_editPoints

EDIT_POINTS& EC_CONVERGING::m_editPoints
private

Vector that represents the initial direction of the dragged segment.

Definition at line 235 of file edit_constraints.h.

Referenced by Apply().

◆ m_endCollinear

bool EC_CONVERGING::m_endCollinear
private

Definition at line 242 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_endSideConstraint

EDIT_CONSTRAINT<EDIT_POINT>* EC_CONVERGING::m_endSideConstraint
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().

◆ m_originCollinear

bool EC_CONVERGING::m_originCollinear
private

Definition at line 241 of file edit_constraints.h.

Referenced by Apply(), and EC_CONVERGING().

◆ m_originSideConstraint

EDIT_CONSTRAINT<EDIT_POINT>* EC_CONVERGING::m_originSideConstraint
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().


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