LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lc::SimpleSnapConstrain Class Reference

#include <snapconstrain.h>

Public Member Functions

SimpleSnapConstrainoperator= (const SimpleSnapConstrain &other)
 
 SimpleSnapConstrain ()
 
 SimpleSnapConstrain (uint16_t constrain, int divisions, double angle)
 
const uint16_t constrain () const
 
int divisions () const
 
double angle () const
 
SimpleSnapConstrain setDivisions (int divisions) const
 
SimpleSnapConstrain setAngle (double angle) const
 
SimpleSnapConstrain enableConstrain (uint16_t constrain) const
 
SimpleSnapConstrain disableConstrain (uint16_t constrain) const
 
bool hasConstrain (uint16_t constrain) const
 

Static Public Attributes

static const uint16_t NONE = 0x00
 
static const uint16_t ON_ENTITY = 0x01
 
static const uint16_t ON_ENTITYPATH = 0x02
 
static const uint16_t ENTITY_CENTER = 0x04
 
static const uint16_t LOGICAL = 0x08
 
static const uint16_t DIVIDED = 0x10
 

Private Attributes

uint16_t _constrain
 
int _divisions
 
double _angle
 

Detailed Description

A SimpleSnapConstrain allow's setting up snapping where we are only interested in possible snap point's based on a location. Each entity that implements Snapable needs to take into the rules of SimpleSnapConstrain where possible and/or where it makes sense

Definition at line 15 of file snapconstrain.h.

Constructor & Destructor Documentation

lc::SimpleSnapConstrain::SimpleSnapConstrain ( )
inline

Definition at line 37 of file snapconstrain.h.

37  :
39  _divisions(0),
40  _angle(0.) { }
static const uint16_t LOGICAL
Definition: snapconstrain.h:22
lc::SimpleSnapConstrain::SimpleSnapConstrain ( uint16_t  constrain,
int  divisions,
double  angle 
)
inline

Definition at line 42 of file snapconstrain.h.

42  :
45  _angle(angle) { }
const uint16_t constrain() const
Definition: snapconstrain.h:47
double angle() const
Definition: snapconstrain.h:55

Member Function Documentation

double lc::SimpleSnapConstrain::angle ( ) const
inline

Definition at line 55 of file snapconstrain.h.

55  {
56  return _angle;
57  }
const uint16_t lc::SimpleSnapConstrain::constrain ( ) const
inline

Definition at line 47 of file snapconstrain.h.

47  {
48  return _constrain;
49  }
SimpleSnapConstrain lc::SimpleSnapConstrain::disableConstrain ( uint16_t  constrain) const
inline

Definition at line 71 of file snapconstrain.h.

int lc::SimpleSnapConstrain::divisions ( ) const
inline

Definition at line 51 of file snapconstrain.h.

51  {
52  return _divisions;
53  }
SimpleSnapConstrain lc::SimpleSnapConstrain::enableConstrain ( uint16_t  constrain) const
inline

Definition at line 67 of file snapconstrain.h.

bool lc::SimpleSnapConstrain::hasConstrain ( uint16_t  constrain) const
inline

Definition at line 75 of file snapconstrain.h.

75  {
76  return (bool) (_constrain & constrain);
77  }
const uint16_t constrain() const
Definition: snapconstrain.h:47
SimpleSnapConstrain& lc::SimpleSnapConstrain::operator= ( const SimpleSnapConstrain other)
inline

Definition at line 27 of file snapconstrain.h.

27  {
28  if (this != &other) {
29  _angle = other._angle;
30  _divisions = other._divisions;
31  _constrain = other._constrain;
32  }
33  return *this;
34  }
SimpleSnapConstrain lc::SimpleSnapConstrain::setAngle ( double  angle) const
inline

Definition at line 63 of file snapconstrain.h.

SimpleSnapConstrain lc::SimpleSnapConstrain::setDivisions ( int  divisions) const
inline

Definition at line 59 of file snapconstrain.h.

Member Data Documentation

double lc::SimpleSnapConstrain::_angle
private

Definition at line 83 of file snapconstrain.h.

uint16_t lc::SimpleSnapConstrain::_constrain
private

Definition at line 81 of file snapconstrain.h.

int lc::SimpleSnapConstrain::_divisions
private

Definition at line 82 of file snapconstrain.h.

const uint16_t SimpleSnapConstrain::DIVIDED = 0x10
static

Definition at line 24 of file snapconstrain.h.

const uint16_t SimpleSnapConstrain::ENTITY_CENTER = 0x04
static

Definition at line 20 of file snapconstrain.h.

const uint16_t SimpleSnapConstrain::LOGICAL = 0x08
static

Definition at line 22 of file snapconstrain.h.

const uint16_t SimpleSnapConstrain::NONE = 0x00
static

Definition at line 17 of file snapconstrain.h.

const uint16_t SimpleSnapConstrain::ON_ENTITY = 0x01
static

Definition at line 18 of file snapconstrain.h.

const uint16_t SimpleSnapConstrain::ON_ENTITYPATH = 0x02
static

Definition at line 19 of file snapconstrain.h.


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