QCAD
Open Source 2D CAD
RSnap Class Referenceabstract

Abstract base class for all grid and object snap implementations. More...

#include <RSnap.h>

Inheritance diagram for RSnap:
RSnapAuto RSnapCoordinate RSnapEntityBase RSnapFree RSnapGrid RSnapIntersection RSnapCoordinatePolar RSnapCenter RSnapDistance RSnapEnd RSnapMiddle RSnapOnEntity RSnapPerpendicular RSnapReference RSnapTangential

Public Types

enum  Status {
  Unknown, Free, Grid, Endpoint,
  OnEntity, Center, Middle, Distance,
  Intersection, IntersectionManual, Reference, Perpendicular,
  Tangential, Coordinate, CoordinatePolar
}
 Snap status, returned by snap tools (most importantly auto snap tool) to indicate what snap was used. More...
 

Public Member Functions

virtual void finishEvent ()
 
QSet< REntity::IdgetEntityIds ()
 
RVector getLastSnap () const
 
RSnap::Status getStatus () const
 
virtual void hideUiOptions ()
 
void reset ()
 
 RSnap (RSnap::Status s=RSnap::Unknown)
 
virtual void showUiOptions ()
 
virtual RVector snap (const RVector &position, RGraphicsView &view, double range=RNANDOUBLE)=0
 
virtual RVector snap (RMouseEvent &event)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void suspendEvent ()
 
virtual ~RSnap ()
 

Protected Attributes

QSet< REntity::IdentityIds
 
RVector lastSnap
 
RSnap::Status status
 

Detailed Description

Abstract base class for all grid and object snap implementations.

A snap class implements an object or grid snap tool. For example to snap to end points of objects.

Scriptable:\nThis class is available in script environments.\n
\generateScriptShell

Member Enumeration Documentation

◆ Status

Snap status, returned by snap tools (most importantly auto snap tool) to indicate what snap was used.

Enumerator
Unknown 
Free 
Grid 
Endpoint 
OnEntity 
Center 
Middle 
Distance 
Intersection 
IntersectionManual 
Reference 
Perpendicular 
Tangential 
Coordinate 
CoordinatePolar 

Constructor & Destructor Documentation

◆ RSnap()

RSnap::RSnap ( RSnap::Status  s = RSnap::Unknown)
inline

◆ ~RSnap()

virtual RSnap::~RSnap ( )
inlinevirtual

Member Function Documentation

◆ finishEvent()

virtual void RSnap::finishEvent ( )
inlinevirtual

◆ getEntityIds()

QSet<REntity::Id> RSnap::getEntityIds ( )
inline
Returns
Set of entity IDs that are relevant for the last performed snap, usually used for highlighting.

◆ getLastSnap()

RVector RSnap::getLastSnap ( ) const
inline

◆ getStatus()

RSnap::Status RSnap::getStatus ( ) const
inline

◆ hideUiOptions()

virtual void RSnap::hideUiOptions ( )
inlinevirtual

◆ reset()

void RSnap::reset ( )
inline

◆ showUiOptions()

virtual void RSnap::showUiOptions ( )
inlinevirtual

◆ snap() [1/2]

virtual RVector RSnap::snap ( const RVector position,
RGraphicsView view,
double  range = RNANDOUBLE 
)
pure virtual
Returns
The snapped position (closest relevant position) for the given mouse position.

Implemented in RSnapIntersection, RSnapAuto, RSnapEntityBase, RSnapFree, and RSnapGrid.

◆ snap() [2/2]

virtual RVector RSnap::snap ( RMouseEvent event)
inlinevirtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Non-Scriptable:\nThis function is not available in script environments.\n

◆ suspendEvent()

virtual void RSnap::suspendEvent ( )
inlinevirtual

Member Data Documentation

◆ entityIds

QSet<REntity::Id> RSnap::entityIds
protected

◆ lastSnap

RVector RSnap::lastSnap
protected

◆ status

RSnap::Status RSnap::status
protected

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