KiCad PCB EDA Suite
Loading...
Searching...
No Matches
KIGFX::PREVIEW::ARC_GEOM_MANAGER Class Reference

Manage the construction of a circular arc though sequential setting of critical points. More...

#include <arc_geom_manager.h>

Inheritance diagram for KIGFX::PREVIEW::ARC_GEOM_MANAGER:
KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER

Public Types

enum  ARC_STEPS { FIRST_POINT = 0 , SECOND_POINT , THIRD_POINT , COMPLETE }
 The point each step waits for depends on the mode, for example the origin, the start, then the end. More...
 

Public Member Functions

 ARC_GEOM_MANAGER ()
 
int getMaxStep () const override
 The highest step this manager has - used to recognize completion and to clamp the step as it advances.
 
ARC_STEPS GetStep () const
 Get the current step the manager is on (useful when drawing something depends on the current state)
 
void Reset () override
 Reset to the initial state, ready for the next arc.
 
void SetMode (ARC_DRAW_MODE aMode)
 Select the construction sequence.
 
ARC_DRAW_MODE GetMode () const
 
void SetTangentSeed (const VECTOR2I &aStart, const VECTOR2D &aDirection, bool aDirectionIsAxis=false)
 Preload the start point and departure direction for ARC_DRAW_MODE::TANGENT.
 
bool HasTangentSeed () const
 True when the TANGENT mode is running from a seed, so its first click already sets the end.
 
bool HasPreview () const
 True when there is something to preview, which a seeded tangent has before any click.
 
void ToggleClockwise ()
 Reverse the current arc direction in center mode, or switch between the minor and major arc in START_END_CENTER mode, or the departure sign of an axis tangent seed.
 
void SetAngleSnap (bool aSnap)
 Set angle snapping (for the next point)
 
VECTOR2I GetOrigin () const
 Get the center point of the arc (valid when state > FIRST_POINT in center mode)
 
VECTOR2I GetStartRadiusEnd () const
 Get the coordinates of the arc start.
 
VECTOR2I GetEndRadiusEnd () const
 Get the coordinates of the arc end point.
 
double GetRadius () const
 Get the radius of the arc (valid if step >= SECOND_POINT in center mode)
 
EDA_ANGLE GetStartAngle () const
 Get the angle of the vector leading to the start point (valid if step >= SECOND_POINT in center mode)
 
EDA_ANGLE GetSubtended () const
 Get the angle of the vector leading to the end point (valid if step >= THIRD_POINT in center mode)
 
bool UsesExactEndpoints () const
 True when the committed endpoints are the clicked points, described by GetSolution()
 
const KIGEOM::ARC_SOLUTION & GetSolution () const
 The arc as start, mid and end (never used in center mode).
 
int GetPointIndex () const
 Index of the point the next click sets, counting a tangent seed as point 0.
 
const VECTOR2I & GetPoint (int aIndex) const
 A point of the construction as set so far (index 0 to 2), including the one following the cursor.
 
const VECTOR2D & GetTangentDirection () const
 The departure direction of the arc (valid once the direction is set, or seeded)
 
bool UsesDirectionClick () const
 True when a direction is part of the construction, that is START_DIR_END or an unseeded TANGENT.
 
void AddPoint (const VECTOR2I &aPt, bool aLockIn)
 Add a point to the construction manager.
 
void RemoveLastPoint ()
 Undo the last point, and move the manager back to the previous step.
 
bool IsReset () const
 
bool IsComplete () const
 
VECTOR2I GetLastPoint () const
 Get the last point added (locked in or not).
 
bool HasGeometryChanged () const
 
void ClearGeometryChanged ()
 Clear the geometry changed flag, call after the client code has updated everything as needed.
 

Protected Member Functions

bool acceptPoint (const VECTOR2I &aPt) override
 Function that accepts a point for a stage, or rejects it to return to the previous stage.
 
void setGeometryChanged ()
 Mark the geometry as changed for clients to notice.
 
int getStep () const
 Get the current stage of the manager.
 

Private Member Functions

bool rejectRegresses () const override
 Only the center mode returns to the previous step, so a refused click in the others is ignored.
 
bool acceptExactPoint (const VECTOR2I &aPt)
 Point acceptor for every mode that keeps the clicked endpoints.
 
void applySolution (const KIGEOM::ARC_SOLUTION &aSolution)
 Take over a valid solution as the canonical arc state.
 
void clearSolution ()
 Forget the solution, leaving nothing drawable.
 
bool setDirection (const VECTOR2I &aPt)
 Set the departure direction from the second click, snapped if requested.
 
bool setOrigin (const VECTOR2I &aOrigin)
 Set the center point of the arc.
 
bool setStart (const VECTOR2I &aEnd)
 Set the end of the first radius line (arc start)
 
bool setEnd (const VECTOR2I &aCursor)
 Set a point of the second radius line (collinear with arc end)
 
void performStep (bool aForward)
 Moves the manager forward or backward through the stages.
 

Private Attributes

bool m_clockwise = true
 
VECTOR2I m_origin
 
double m_radius = 0.0
 
EDA_ANGLE m_startAngle
 
EDA_ANGLE m_endAngle
 
bool m_angleSnap = false
 
bool m_directionLocked = false
 
ARC_DRAW_MODE m_mode = ARC_DRAW_MODE::CENTER_START_END
 
std::array< VECTOR2I, 3 > m_pts
 The points set so far for the modes that keep the clicked endpoints, the last following the cursor.
 
VECTOR2D m_dir
 
bool m_hasSeed = false
 
bool m_seedIsAxis = false
 
bool m_axisFlipped = false
 
VECTOR2D m_axis
 
bool m_major = false
 
KIGEOM::ARC_SOLUTION m_solution
 
bool m_changed = false
 Has the geometry changed such that a client should redraw?
 
VECTOR2I m_lastPoint
 The last (raw) point added, which is usually the cursor position.
 
int m_step = 0
 The current manager step, from 0 to some highest number that depends on the manager.
 

Detailed Description

Manage the construction of a circular arc though sequential setting of critical points.

Which points are set, and in what order, depends on the ARC_DRAW_MODE. The manager is driven by setting cursor points, which update the geometry, and optionally advance the manager state.

Interfaces are provided to return both arc geometry (can be used to set up real arcs on PCBs, for example) as well as important control points for informational overlays.

Every mode except ARC_DRAW_MODE::CENTER_START_END keeps the clicked endpoints exactly and describes the arc through GetSolution(), because storing them as center, radius and angles moves them by up to one internal unit.

Definition at line 45 of file arc_geom_manager.h.

Member Enumeration Documentation

◆ ARC_STEPS

The point each step waits for depends on the mode, for example the origin, the start, then the end.

Enumerator
FIRST_POINT 

Waiting to lock in the first point.

SECOND_POINT 

Waiting to lock in the second point.

THIRD_POINT 

Waiting to lock in the third point.

COMPLETE 

Definition at line 52 of file arc_geom_manager.h.

Constructor & Destructor Documentation

◆ ARC_GEOM_MANAGER()

KIGFX::PREVIEW::ARC_GEOM_MANAGER::ARC_GEOM_MANAGER ( )
inline

Definition at line 48 of file arc_geom_manager.h.

Member Function Documentation

◆ acceptExactPoint()

◆ acceptPoint()

bool ARC_GEOM_MANAGER::acceptPoint ( const VECTOR2I & aPt)
overrideprotectedvirtual

Function that accepts a point for a stage, or rejects it to return to the previous stage.

Implements KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER.

Definition at line 36 of file arc_geom_manager.cpp.

References acceptExactPoint(), CENTER_START_END, COMPLETE, FIRST_POINT, KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::getStep(), m_mode, SECOND_POINT, setEnd(), setOrigin(), setStart(), and THIRD_POINT.

Referenced by ToggleClockwise().

◆ AddPoint()

void KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::AddPoint ( const VECTOR2I & aPt,
bool aLockIn )
inlineinherited

Add a point to the construction manager.

Parameters
aPtthe new point
aLockInwhether to "lock in" the point, and move the geometry manager to the next (or previous) step. False to update geometry and not affect manager state.

Definition at line 57 of file multistep_geom_manager.h.

References acceptPoint(), m_lastPoint, performStep(), rejectRegresses(), and setGeometryChanged().

Referenced by KIGFX::PREVIEW::ARC_GEOM_MANAGER::SetMode().

◆ applySolution()

◆ ClearGeometryChanged()

void KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::ClearGeometryChanged ( )
inlineinherited

Clear the geometry changed flag, call after the client code has updated everything as needed.

Definition at line 137 of file multistep_geom_manager.h.

References m_changed.

◆ clearSolution()

void ARC_GEOM_MANAGER::clearSolution ( )
private

Forget the solution, leaving nothing drawable.

Definition at line 128 of file arc_geom_manager.cpp.

References ANGLE_0, m_clockwise, m_endAngle, m_origin, m_radius, m_solution, and m_startAngle.

Referenced by acceptExactPoint(), SetMode(), and SetTangentSeed().

◆ GetEndRadiusEnd()

VECTOR2I ARC_GEOM_MANAGER::GetEndRadiusEnd ( ) const

Get the coordinates of the arc end point.

Definition at line 294 of file arc_geom_manager.cpp.

References m_endAngle, m_origin, m_pts, m_radius, m_solution, RotatePoint(), and UsesExactEndpoints().

◆ GetLastPoint()

VECTOR2I KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::GetLastPoint ( ) const
inlineinherited

Get the last point added (locked in or not).

This can* be useful when drawing previews, as the point given isn't always what gets locked into the geometry, if that step doesn't have full degrees of freedom.

Definition at line 120 of file multistep_geom_manager.h.

References m_lastPoint.

Referenced by RemoveLastPoint(), KIGFX::PREVIEW::ARC_GEOM_MANAGER::SetMode(), and KIGFX::PREVIEW::ARC_GEOM_MANAGER::ToggleClockwise().

◆ getMaxStep()

int KIGFX::PREVIEW::ARC_GEOM_MANAGER::getMaxStep ( ) const
inlineoverridevirtual

The highest step this manager has - used to recognize completion and to clamp the step as it advances.

Implements KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER.

Definition at line 60 of file arc_geom_manager.h.

References COMPLETE, HasTangentSeed(), and SECOND_POINT.

◆ GetMode()

ARC_DRAW_MODE KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetMode ( ) const
inline

Definition at line 89 of file arc_geom_manager.h.

References m_mode.

◆ GetOrigin()

VECTOR2I ARC_GEOM_MANAGER::GetOrigin ( ) const

Get the center point of the arc (valid when state > FIRST_POINT in center mode)

Definition at line 274 of file arc_geom_manager.cpp.

References m_origin, m_pts, m_solution, and UsesExactEndpoints().

◆ GetPoint()

const VECTOR2I & KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetPoint ( int aIndex) const
inline

A point of the construction as set so far (index 0 to 2), including the one following the cursor.

Definition at line 159 of file arc_geom_manager.h.

References m_pts.

◆ GetPointIndex()

int KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetPointIndex ( ) const
inline

Index of the point the next click sets, counting a tangent seed as point 0.

Definition at line 156 of file arc_geom_manager.h.

References KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::getStep(), and HasTangentSeed().

Referenced by acceptExactPoint().

◆ GetRadius()

double ARC_GEOM_MANAGER::GetRadius ( ) const

Get the radius of the arc (valid if step >= SECOND_POINT in center mode)

Definition at line 305 of file arc_geom_manager.cpp.

References m_radius.

◆ GetSolution()

const KIGEOM::ARC_SOLUTION & KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetSolution ( ) const
inline

The arc as start, mid and end (never used in center mode).

It is invalid until the arc is fully determined, and keeps the last valid arc while the cursor is on a degenerate position.

Definition at line 153 of file arc_geom_manager.h.

References m_solution.

◆ GetStartAngle()

EDA_ANGLE ARC_GEOM_MANAGER::GetStartAngle ( ) const

Get the angle of the vector leading to the start point (valid if step >= SECOND_POINT in center mode)

Definition at line 311 of file arc_geom_manager.cpp.

References ANGLE_360, m_clockwise, and m_startAngle.

◆ GetStartRadiusEnd()

VECTOR2I ARC_GEOM_MANAGER::GetStartRadiusEnd ( ) const

Get the coordinates of the arc start.

Definition at line 283 of file arc_geom_manager.cpp.

References m_origin, m_pts, m_radius, m_startAngle, RotatePoint(), and UsesExactEndpoints().

◆ GetStep()

ARC_STEPS KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetStep ( ) const
inline

Get the current step the manager is on (useful when drawing something depends on the current state)

Definition at line 69 of file arc_geom_manager.h.

References COMPLETE, KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::getStep(), and KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::IsComplete().

◆ getStep()

◆ GetSubtended()

EDA_ANGLE ARC_GEOM_MANAGER::GetSubtended ( ) const

Get the angle of the vector leading to the end point (valid if step >= THIRD_POINT in center mode)

Definition at line 322 of file arc_geom_manager.cpp.

References ANGLE_360, m_clockwise, m_endAngle, and m_startAngle.

Referenced by setEnd().

◆ GetTangentDirection()

const VECTOR2D & KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetTangentDirection ( ) const
inline

The departure direction of the arc (valid once the direction is set, or seeded)

Definition at line 162 of file arc_geom_manager.h.

References m_dir.

◆ HasGeometryChanged()

bool KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::HasGeometryChanged ( ) const
inlineinherited
Returns
true if the geometry has changed, eg such that a client should redraw.

Definition at line 128 of file multistep_geom_manager.h.

References m_changed.

◆ HasPreview()

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::HasPreview ( ) const
inline

True when there is something to preview, which a seeded tangent has before any click.

Definition at line 106 of file arc_geom_manager.h.

References HasTangentSeed(), and KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::IsReset().

◆ HasTangentSeed()

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::HasTangentSeed ( ) const
inline

True when the TANGENT mode is running from a seed, so its first click already sets the end.

Definition at line 103 of file arc_geom_manager.h.

References m_hasSeed, m_mode, and TANGENT.

Referenced by acceptExactPoint(), getMaxStep(), GetPointIndex(), HasPreview(), and ToggleClockwise().

◆ IsComplete()

bool KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::IsComplete ( ) const
inlineinherited
Returns
true if the manager reached the final state.

Definition at line 109 of file multistep_geom_manager.h.

References getMaxStep(), and m_step.

Referenced by KIGFX::PREVIEW::ARC_GEOM_MANAGER::acceptExactPoint(), and KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetStep().

◆ IsReset()

bool KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::IsReset ( ) const
inlineinherited
Returns
true if the manager is in the initial state

Definition at line 88 of file multistep_geom_manager.h.

References m_step.

Referenced by KIGFX::PREVIEW::ARC_GEOM_MANAGER::HasPreview(), KIGFX::PREVIEW::ARC_GEOM_MANAGER::SetMode(), and KIGFX::PREVIEW::ARC_GEOM_MANAGER::SetTangentSeed().

◆ performStep()

void KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::performStep ( bool aForward)
inlineprivateinherited

Moves the manager forward or backward through the stages.

Definition at line 175 of file multistep_geom_manager.h.

References getMaxStep(), and m_step.

Referenced by AddPoint(), and RemoveLastPoint().

◆ rejectRegresses()

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::rejectRegresses ( ) const
inlineoverrideprivatevirtual

Only the center mode returns to the previous step, so a refused click in the others is ignored.

Reimplemented from KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER.

Definition at line 175 of file arc_geom_manager.h.

References CENTER_START_END, and m_mode.

◆ RemoveLastPoint()

void KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::RemoveLastPoint ( )
inlineinherited

Undo the last point, and move the manager back to the previous step.

Definition at line 75 of file multistep_geom_manager.h.

References acceptPoint(), GetLastPoint(), performStep(), and setGeometryChanged().

◆ Reset()

void ARC_GEOM_MANAGER::Reset ( )
overridevirtual

Reset to the initial state, ready for the next arc.

The draw mode is kept. The tangent seed is cleared and must be set again.

Reimplemented from KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER.

Definition at line 165 of file arc_geom_manager.cpp.

References ANGLE_0, m_angleSnap, m_axis, m_axisFlipped, m_clockwise, m_dir, m_directionLocked, m_endAngle, m_hasSeed, m_major, m_origin, m_pts, m_radius, m_seedIsAxis, m_solution, m_startAngle, and KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::Reset().

Referenced by SetMode().

◆ SetAngleSnap()

void KIGFX::PREVIEW::ARC_GEOM_MANAGER::SetAngleSnap ( bool aSnap)
inline

Set angle snapping (for the next point)

Definition at line 117 of file arc_geom_manager.h.

References m_angleSnap.

◆ setDirection()

bool ARC_GEOM_MANAGER::setDirection ( const VECTOR2I & aPt)
private

Set the departure direction from the second click, snapped if requested.

Definition at line 139 of file arc_geom_manager.cpp.

References ANGLE_45, VECTOR2< T >::EuclideanNorm(), KiROUND(), m_angleSnap, m_dir, and m_pts.

Referenced by acceptExactPoint().

◆ setEnd()

bool ARC_GEOM_MANAGER::setEnd ( const VECTOR2I & aCursor)
private

Set a point of the second radius line (collinear with arc end)

Definition at line 366 of file arc_geom_manager.cpp.

References std::abs(), ANGLE_0, ANGLE_360, ANGLE_90, GetSubtended(), m_angleSnap, m_clockwise, m_directionLocked, m_endAngle, m_origin, m_startAngle, and snapAngle().

Referenced by acceptPoint().

◆ setGeometryChanged()

void KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::setGeometryChanged ( )
inlineprotectedinherited

◆ SetMode()

void ARC_GEOM_MANAGER::SetMode ( ARC_DRAW_MODE aMode)

Select the construction sequence.

Switching mid-draw keeps the first locked point when it is an arc start in both modes, which is every mode except CENTER_START_END. Otherwise construction restarts.

Definition at line 189 of file arc_geom_manager.cpp.

References KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::AddPoint(), CENTER_START_END, clearSolution(), cursor, KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::GetLastPoint(), KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::IsReset(), m_angleSnap, m_mode, m_pts, Reset(), and KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::setGeometryChanged().

◆ setOrigin()

bool ARC_GEOM_MANAGER::setOrigin ( const VECTOR2I & aOrigin)
private

Set the center point of the arc.

Definition at line 336 of file arc_geom_manager.cpp.

References ANGLE_0, m_endAngle, m_origin, and m_startAngle.

Referenced by acceptPoint().

◆ setStart()

bool ARC_GEOM_MANAGER::setStart ( const VECTOR2I & aEnd)
private

Set the end of the first radius line (arc start)

Definition at line 346 of file arc_geom_manager.cpp.

References ANGLE_0, ANGLE_360, VECTOR2< T >::EuclideanNorm(), m_angleSnap, m_endAngle, m_origin, m_radius, m_startAngle, and snapAngle().

Referenced by acceptPoint().

◆ SetTangentSeed()

void ARC_GEOM_MANAGER::SetTangentSeed ( const VECTOR2I & aStart,
const VECTOR2D & aDirection,
bool aDirectionIsAxis = false )

Preload the start point and departure direction for ARC_DRAW_MODE::TANGENT.

Only takes effect before the first point is locked in. Without a seed TANGENT takes its start and direction from clicks like START_DIR_END, and with one a single click sets the end.

With aDirectionIsAxis only the tangent line is known, so the sign giving the smaller sweep to the cursor is used and ToggleClockwise() flips it.

Definition at line 222 of file arc_geom_manager.cpp.

References clearSolution(), KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::IsReset(), m_axis, m_axisFlipped, m_dir, m_hasSeed, m_pts, m_seedIsAxis, KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::setGeometryChanged(), VECTOR2< T >::x, and VECTOR2< T >::y.

◆ ToggleClockwise()

void ARC_GEOM_MANAGER::ToggleClockwise ( )

Reverse the current arc direction in center mode, or switch between the minor and major arc in START_END_CENTER mode, or the departure sign of an axis tangent seed.

Has no effect in the other modes, where the points fix the direction.

Definition at line 238 of file arc_geom_manager.cpp.

References acceptPoint(), CENTER_START_END, KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::GetLastPoint(), KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::getStep(), HasTangentSeed(), m_axisFlipped, m_clockwise, m_directionLocked, m_major, m_mode, m_seedIsAxis, KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::setGeometryChanged(), START_END_CENTER, TANGENT, and THIRD_POINT.

◆ UsesDirectionClick()

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::UsesDirectionClick ( ) const
inline

True when a direction is part of the construction, that is START_DIR_END or an unseeded TANGENT.

Definition at line 165 of file arc_geom_manager.h.

References m_hasSeed, m_mode, START_DIR_END, and TANGENT.

Referenced by acceptExactPoint().

◆ UsesExactEndpoints()

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::UsesExactEndpoints ( ) const
inline

True when the committed endpoints are the clicked points, described by GetSolution()

Definition at line 145 of file arc_geom_manager.h.

References CENTER_START_END, and m_mode.

Referenced by GetEndRadiusEnd(), GetOrigin(), and GetStartRadiusEnd().

Member Data Documentation

◆ m_angleSnap

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_angleSnap = false
private

Definition at line 214 of file arc_geom_manager.h.

Referenced by Reset(), SetAngleSnap(), setDirection(), setEnd(), SetMode(), and setStart().

◆ m_axis

VECTOR2D KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_axis
private

Definition at line 225 of file arc_geom_manager.h.

Referenced by acceptExactPoint(), Reset(), and SetTangentSeed().

◆ m_axisFlipped

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_axisFlipped = false
private

Definition at line 224 of file arc_geom_manager.h.

Referenced by acceptExactPoint(), Reset(), SetTangentSeed(), and ToggleClockwise().

◆ m_changed

bool KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::m_changed = false
privateinherited

Has the geometry changed such that a client should redraw?

Definition at line 184 of file multistep_geom_manager.h.

Referenced by ClearGeometryChanged(), HasGeometryChanged(), and setGeometryChanged().

◆ m_clockwise

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_clockwise = true
private

◆ m_dir

VECTOR2D KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_dir
private

◆ m_directionLocked

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_directionLocked = false
private

Definition at line 215 of file arc_geom_manager.h.

Referenced by Reset(), setEnd(), and ToggleClockwise().

◆ m_endAngle

EDA_ANGLE KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_endAngle
private

◆ m_hasSeed

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_hasSeed = false
private

Definition at line 222 of file arc_geom_manager.h.

Referenced by HasTangentSeed(), Reset(), SetTangentSeed(), and UsesDirectionClick().

◆ m_lastPoint

VECTOR2I KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::m_lastPoint
privateinherited

The last (raw) point added, which is usually the cursor position.

Definition at line 187 of file multistep_geom_manager.h.

Referenced by AddPoint(), GetLastPoint(), and Reset().

◆ m_major

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_major = false
private

Definition at line 226 of file arc_geom_manager.h.

Referenced by acceptExactPoint(), Reset(), and ToggleClockwise().

◆ m_mode

◆ m_origin

VECTOR2I KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_origin
private

◆ m_pts

std::array<VECTOR2I, 3> KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_pts
private

The points set so far for the modes that keep the clicked endpoints, the last following the cursor.

Definition at line 220 of file arc_geom_manager.h.

Referenced by acceptExactPoint(), GetEndRadiusEnd(), GetOrigin(), GetPoint(), GetStartRadiusEnd(), Reset(), setDirection(), SetMode(), and SetTangentSeed().

◆ m_radius

double KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_radius = 0.0
private

◆ m_seedIsAxis

bool KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_seedIsAxis = false
private

Definition at line 223 of file arc_geom_manager.h.

Referenced by acceptExactPoint(), Reset(), SetTangentSeed(), and ToggleClockwise().

◆ m_solution

KIGEOM::ARC_SOLUTION KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_solution
private

◆ m_startAngle

EDA_ANGLE KIGFX::PREVIEW::ARC_GEOM_MANAGER::m_startAngle
private

◆ m_step

int KIGFX::PREVIEW::MULTISTEP_GEOM_MANAGER::m_step = 0
privateinherited

The current manager step, from 0 to some highest number that depends on the manager.

Definition at line 192 of file multistep_geom_manager.h.

Referenced by getStep(), IsComplete(), IsReset(), performStep(), and Reset().


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