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

#include <dimangular.h>

Inheritance diagram for lc::entity::DimAngular:
Collaboration diagram for lc::entity::DimAngular:

Public Member Functions

 DimAngular (geo::Coordinate const &definitionPoint, geo::Coordinate const &middleOfText, TextConst::AttachmentPoint const &attachmentPoint, double textAngle, double const lineSpacingFactor, TextConst::LineSpacingStyle const &lineSpacingStyle, std::string const &explicitValue, geo::Coordinate const &_defLine11, geo::Coordinate const &_defLine12, geo::Coordinate const &_defLine21, geo::Coordinate const &_defLine22, const Layer_CSPtr layer, const MetaInfo_CSPtr metaInfo=nullptr, const Block_CSPtr block=nullptr)
 
 DimAngular (const DimAngular_CSPtr other, bool sameID=false)
 
virtual CADEntity_CSPtr move (const geo::Coordinate &offset) const override
 move, moves by an offset More...
 
virtual CADEntity_CSPtr copy (const geo::Coordinate &offset) const override
 copy, copies by an offset More...
 
virtual CADEntity_CSPtr rotate (const geo::Coordinate &rotation_center, const double rotation_angle) const override
 rotate, rotate operation More...
 
virtual CADEntity_CSPtr scale (const geo::Coordinate &scale_center, const geo::Coordinate &scale_factor) const override
 scale, scales the entity More...
 
virtual CADEntity_CSPtr mirror (const geo::Coordinate &axis1, const geo::Coordinate &axis2) const override
 
virtual const geo::Area boundingBox () const override
 boundingBox of the entity More...
 
virtual CADEntity_CSPtr modify (Layer_CSPtr layer, const MetaInfo_CSPtr metaInfo, Block_CSPtr block) const override
 modify Return a new entity with the same ID bit with possible modified metainfo and/pr layer information #return new entity with same ID More...
 
geo::Coordinate defLine11 () const
 
geo::Coordinate defLine12 () const
 
geo::Coordinate defLine21 () const
 
geo::Coordinate defLine22 () const
 
virtual void accept (GeoEntityVisitor &v) const override
 
virtual void dispatch (EntityDispatch &ed) const override
 
virtual std::map< unsigned int,
lc::geo::Coordinate
dragPoints () const override
 Get all points of the entity that can be dragged. More...
 
virtual CADEntity_CSPtr setDragPoints (std::map< unsigned int, lc::geo::Coordinate > dragPoints) const override
 Return modified entity. More...
 
- Public Member Functions inherited from lc::entity::CADEntity
 CADEntity ()
 
 CADEntity (Layer_CSPtr layer, const MetaInfo_CSPtr metaInfo=nullptr, const Block_CSPtr block=nullptr)
 CADEntity Constructor. More...
 
 CADEntity (CADEntity_CSPtr cadEntity, bool sameID)
 
 CADEntity (CADEntity_CSPtr cadEntity)
 
virtual ~CADEntity ()=default
 
Layer_CSPtr layer () const
 layer return the layer this entity is placed on More...
 
template<typename T >
const std::shared_ptr< const T > metaInfo (std::string metaName) const
 
MetaInfo_CSPtr metaInfo () const
 
Block_CSPtr block () const
 Return the current entity block. More...
 
- Public Member Functions inherited from lc::ID
 ID ()
 Default constructor, provides a new unique ID to each entity. More...
 
 ID (ID_DATATYPE)
 
virtual ~ID ()=default
 
ID_DATATYPE id () const
 returns the ID of the entity More...
 
bool operator== (const ID &id) const
 
void setID (ID_DATATYPE id)
 
- Public Member Functions inherited from lc::Visitable
virtual ~Visitable ()=default
 
- Public Member Functions inherited from lc::entity::Dimension
 Dimension (geo::Coordinate const &definitionPoint, geo::Coordinate const &middleOfText, TextConst::AttachmentPoint const &attachmentPoint, double const textAngle, double lineSpacingFactor, TextConst::LineSpacingStyle const &lineSpacingStyle, std::string const &explicitValue)
 Dimension. More...
 
 Dimension (geo::Coordinate const &_definitionPoint, geo::Coordinate const &_middleOfText, TextConst::AttachmentPoint _attachPt, double _angle)
 Dimension. More...
 
 Dimension (Dimension const &other)
 
const geo::CoordinatedefinitionPoint () const noexcept
 move, moves by an offset More...
 
const geo::CoordinatemiddleOfText () const noexcept
 
TextConst::AttachmentPoint const & attachmentPoint () const
 
double textAngle () const
 
double lineSpacingFactor () const
 
TextConst::LineSpacingStyle lineSpacingStyle () const
 
std::string explicitValue () const
 

Static Public Member Functions

static DimAngular_SPtr dimAuto (geo::Coordinate const &center, geo::Coordinate const &p1, geo::Coordinate const &p2, std::string const &explicitValue, const Layer_CSPtr layer, const MetaInfo_CSPtr metaInfo=nullptr, const Block_CSPtr block=nullptr)
 

Protected Attributes

const geo::Coordinate _defLine11
 
const geo::Coordinate _defLine12
 
const geo::Coordinate _defLine21
 
const geo::Coordinate _defLine22
 

Additional Inherited Members

- Static Public Attributes inherited from lc::ID
static std::atomic< ID_DATATYPE__idCounter
 
- Protected Member Functions inherited from lc::entity::CADEntity
 CADEntity (const lc::builder::CADEntityBuilder &builder)
 

Detailed Description

Definition at line 15 of file dimangular.h.

Constructor & Destructor Documentation

DimAngular::DimAngular ( geo::Coordinate const &  definitionPoint,
geo::Coordinate const &  middleOfText,
TextConst::AttachmentPoint const &  attachmentPoint,
double  textAngle,
double const  lineSpacingFactor,
TextConst::LineSpacingStyle const &  lineSpacingStyle,
std::string const &  explicitValue,
geo::Coordinate const &  _defLine11,
geo::Coordinate const &  _defLine12,
geo::Coordinate const &  _defLine21,
geo::Coordinate const &  _defLine22,
const Layer_CSPtr  layer,
const MetaInfo_CSPtr  metaInfo = nullptr,
const Block_CSPtr  block = nullptr 
)
Parameters
Dimensiondimension
geo::Coordinateextension_point1
geo::Coordinateextension_point2
doubleoblique
Layer_CSPtrlayer

Definition at line 7 of file dimangular.cpp.

21  :
28 
29 }
geo::Coordinate defLine21() const
Definition: dimangular.cpp:132
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
geo::Coordinate defLine12() const
Definition: dimangular.cpp:128
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
geo::Coordinate defLine11() const
Definition: dimangular.cpp:124
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
double lineSpacingFactor() const
Definition: dimension.cpp:87
Block_CSPtr block() const
Return the current entity block.
Definition: cadentity.cpp:33
Dimension(geo::Coordinate const &definitionPoint, geo::Coordinate const &middleOfText, TextConst::AttachmentPoint const &attachmentPoint, double const textAngle, double lineSpacingFactor, TextConst::LineSpacingStyle const &lineSpacingStyle, std::string const &explicitValue)
Dimension.
Definition: dimension.cpp:7
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
geo::Coordinate defLine22() const
Definition: dimangular.cpp:136
DimAngular::DimAngular ( const DimAngular_CSPtr  other,
bool  sameID = false 
)

Definition at line 32 of file dimangular.cpp.

32  :
33  CADEntity(other, sameID),
34  Dimension(*other),
35  _defLine11(other->_defLine11),
36  _defLine12(other->_defLine12),
37  _defLine21(other->_defLine21),
38  _defLine22(other->_defLine22) {
39 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
const geo::Coordinate _defLine22
Definition: dimangular.h:98
const geo::Coordinate _defLine11
Definition: dimangular.h:95
Dimension(geo::Coordinate const &definitionPoint, geo::Coordinate const &middleOfText, TextConst::AttachmentPoint const &attachmentPoint, double const textAngle, double lineSpacingFactor, TextConst::LineSpacingStyle const &lineSpacingStyle, std::string const &explicitValue)
Dimension.
Definition: dimension.cpp:7
const geo::Coordinate _defLine12
Definition: dimangular.h:96

Member Function Documentation

virtual void lc::entity::DimAngular::accept ( GeoEntityVisitor v) const
inlineoverridevirtual

Reimplemented from lc::entity::CADEntity.

Definition at line 100 of file dimangular.h.

100 { v.visit(*this); }
const geo::Area DimAngular::boundingBox ( ) const
overridevirtual

boundingBox of the entity

Returns
geo::Area area

Implements lc::entity::CADEntity.

Definition at line 98 of file dimangular.cpp.

98  {
99  // TODO create proper bounding box for DimAngular
100  return geo::Area(this->middleOfText(), 0., 0.);
101 }
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
CADEntity_CSPtr DimAngular::copy ( const geo::Coordinate offset) const
overridevirtual

copy, copies by an offset

Parameters
geo::Coordinateoffset
Returns
CADEntity_CSPtr copied entity

Implements lc::entity::CADEntity.

Definition at line 75 of file dimangular.cpp.

75  {
76  auto newDimAngular = std::make_shared<DimAngular>(this->definitionPoint() + offset, this->middleOfText() + offset, this->attachmentPoint(), this->textAngle(), this->lineSpacingFactor(), this->lineSpacingStyle(), this->explicitValue(), this->_defLine11 + offset, this->_defLine12 + offset, this->_defLine21 + offset, this->_defLine22 + offset, this->layer(), this->metaInfo());
77  return newDimAngular;
78 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
double lineSpacingFactor() const
Definition: dimension.cpp:87
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
geo::Coordinate DimAngular::defLine11 ( ) const

Definition at line 124 of file dimangular.cpp.

124  {
125  return _defLine11;
126 }
const geo::Coordinate _defLine11
Definition: dimangular.h:95
geo::Coordinate DimAngular::defLine12 ( ) const

Definition at line 128 of file dimangular.cpp.

128  {
129  return _defLine12;
130 }
const geo::Coordinate _defLine12
Definition: dimangular.h:96
geo::Coordinate DimAngular::defLine21 ( ) const

Definition at line 132 of file dimangular.cpp.

132  {
133  return _defLine21;
134 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
geo::Coordinate DimAngular::defLine22 ( ) const

Definition at line 136 of file dimangular.cpp.

136  {
137  return _defLine22;
138 }
const geo::Coordinate _defLine22
Definition: dimangular.h:98
DimAngular_SPtr DimAngular::dimAuto ( geo::Coordinate const &  center,
geo::Coordinate const &  p1,
geo::Coordinate const &  p2,
std::string const &  explicitValue,
const Layer_CSPtr  layer,
const MetaInfo_CSPtr  metaInfo = nullptr,
const Block_CSPtr  block = nullptr 
)
static

Definition at line 41 of file dimangular.cpp.

48  {
49  geo::Coordinate middletext(p1.mid(p2));
50 
51  return std::make_shared<DimAngular>(center,
52  middletext,
53  TextConst::AttachmentPoint::Top_center,
54  0.,
55  0.,
56  TextConst::LineSpacingStyle::AtLeast,
58  center,
59  p1,
60  center,
61  p2,
62  layer,
63  metaInfo,
64  block
65  );
66 }
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
Block_CSPtr block() const
Return the current entity block.
Definition: cadentity.cpp:33
virtual void lc::entity::DimAngular::dispatch ( EntityDispatch ed) const
inlineoverridevirtual

Implements lc::entity::CADEntity.

Definition at line 102 of file dimangular.h.

102  {
103  ed.visit(shared_from_this());
104  }
std::map< unsigned int, geo::Coordinate > DimAngular::dragPoints ( ) const
overridevirtual

Get all points of the entity that can be dragged.

Returns
Map of points

Implements lc::Draggable.

Definition at line 140 of file dimangular.cpp.

140  {
141  std::map<unsigned int, geo::Coordinate> dragPoints;
142 
143  dragPoints[0] = definitionPoint();
144  dragPoints[1] = middleOfText();
145  dragPoints[2] = _defLine11;
146  dragPoints[3] = _defLine12;
147  dragPoints[4] = _defLine21;
148  dragPoints[5] = _defLine22;
149 
150  return dragPoints;
151 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
const geo::Coordinate _defLine11
Definition: dimangular.h:95
const geo::Coordinate _defLine12
Definition: dimangular.h:96
virtual std::map< unsigned int, lc::geo::Coordinate > dragPoints() const override
Get all points of the entity that can be dragged.
Definition: dimangular.cpp:140
CADEntity_CSPtr DimAngular::mirror ( const geo::Coordinate axis1,
const geo::Coordinate axis2 
) const
overridevirtual

Implements lc::entity::CADEntity.

Definition at line 92 of file dimangular.cpp.

92  {
93  auto newDimAngular = std::make_shared<DimAngular>(this->definitionPoint().mirror(axis1,axis2),
94  this->middleOfText().mirror(axis1,axis2), this->attachmentPoint(), this->textAngle(), this->lineSpacingFactor(), this->lineSpacingStyle(), this->explicitValue(), this->_defLine11.mirror(axis1,axis2), this->_defLine12.mirror(axis1,axis2), this->_defLine21.mirror(axis1,axis2), this->_defLine22.mirror(axis1,axis2), this->layer(), this->metaInfo());
95  return newDimAngular;
96 }
Coordinate mirror(const Coordinate &axis1, const Coordinate &axis2) const
mirror a coordinate
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
double lineSpacingFactor() const
Definition: dimension.cpp:87
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
CADEntity_CSPtr DimAngular::modify ( Layer_CSPtr  layer,
const MetaInfo_CSPtr  metaInfo,
Block_CSPtr  block 
) const
overridevirtual

modify Return a new entity with the same ID bit with possible modified metainfo and/pr layer information #return new entity with same ID

Implements lc::entity::CADEntity.

Definition at line 103 of file dimangular.cpp.

103  {
104  auto newDimAngular = std::make_shared<DimAngular>(
105  this->definitionPoint(),
106  this->middleOfText(),
107  this->attachmentPoint(),
108  this->textAngle(),
109  this->lineSpacingFactor(),
110  this->lineSpacingStyle(),
111  this->explicitValue(),
112  this->_defLine11,
113  this->_defLine12,
114  this->_defLine21,
115  this->_defLine22,
116  layer,
117  metaInfo,
118  block
119  );
120 
121  return newDimAngular;
122 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
double lineSpacingFactor() const
Definition: dimension.cpp:87
Block_CSPtr block() const
Return the current entity block.
Definition: cadentity.cpp:33
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
CADEntity_CSPtr DimAngular::move ( const geo::Coordinate offset) const
overridevirtual

move, moves by an offset

Parameters
geo::Coordinateoffset
Returns
CADEntity_CSPtr moved entity

Implements lc::entity::CADEntity.

Definition at line 69 of file dimangular.cpp.

69  {
70  auto newDimAngular = std::make_shared<DimAngular>(this->definitionPoint() + offset, this->middleOfText() + offset, this->attachmentPoint(), this->textAngle(), this->lineSpacingFactor(), this->lineSpacingStyle(), this->explicitValue(), this->_defLine11 + offset, this->_defLine12 + offset, this->_defLine21 + offset, this->_defLine22 + offset, this->layer(), this->metaInfo());
71  newDimAngular->setID(this->id());
72  return newDimAngular;
73 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
double lineSpacingFactor() const
Definition: dimension.cpp:87
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
CADEntity_CSPtr DimAngular::rotate ( const geo::Coordinate rotation_center,
const double  rotation_angle 
) const
overridevirtual

rotate, rotate operation

Parameters
geo::Coordinaterotation_center
doublerotation_angle
Returns
CADEntity_CSPtr rotated entity

Implements lc::entity::CADEntity.

Definition at line 80 of file dimangular.cpp.

80  {
81  auto newDimAngular = std::make_shared<DimAngular>(this->definitionPoint().rotate(rotation_center, rotation_angle),
82  this->middleOfText().rotate(rotation_center, rotation_angle), this->attachmentPoint(), this->textAngle(), this->lineSpacingFactor(), this->lineSpacingStyle(), this->explicitValue(), this->_defLine11.rotate(rotation_center, rotation_angle), this->_defLine12.rotate(rotation_center, rotation_angle), this->_defLine21.rotate(rotation_center, rotation_angle), this->_defLine22.rotate(rotation_center, rotation_angle), this->layer(), this->metaInfo());
83  return newDimAngular;
84 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
Coordinate rotate(const Coordinate &angleVector) const
rotate around (0.,0.) with a given angle vector
double lineSpacingFactor() const
Definition: dimension.cpp:87
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
CADEntity_CSPtr DimAngular::scale ( const geo::Coordinate scale_center,
const geo::Coordinate scale_factor 
) const
overridevirtual

scale, scales the entity

Parameters
geo::Coordinatescale_center
doublescale_factor
Returns

Implements lc::entity::CADEntity.

Definition at line 86 of file dimangular.cpp.

86  {
87  auto newDimAngular = std::make_shared<DimAngular>(this->definitionPoint().scale(scale_center, scale_factor),
88  this->middleOfText().scale(scale_center, scale_factor), this->attachmentPoint(), this->textAngle(), this->lineSpacingFactor(), this->lineSpacingStyle(), this->explicitValue(), this->_defLine11.scale(scale_center, scale_factor), this->_defLine12.scale(scale_center, scale_factor), this->_defLine21.scale(scale_center, scale_factor), this->_defLine22.scale(scale_center, scale_factor), this->layer(), this->metaInfo());
89  return newDimAngular;
90 }
const geo::Coordinate _defLine21
Definition: dimangular.h:97
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
const geo::Coordinate & definitionPoint() const noexcept
move, moves by an offset
Definition: dimension.cpp:71
const geo::Coordinate _defLine22
Definition: dimangular.h:98
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
Coordinate scale(const double &scale_factor) const
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
const geo::Coordinate & middleOfText() const noexcept
Definition: dimension.cpp:75
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
const geo::Coordinate _defLine11
Definition: dimangular.h:95
double lineSpacingFactor() const
Definition: dimension.cpp:87
const geo::Coordinate _defLine12
Definition: dimangular.h:96
double textAngle() const
Definition: dimension.cpp:79
CADEntity_CSPtr DimAngular::setDragPoints ( std::map< unsigned int, lc::geo::Coordinate dragPoints) const
overridevirtual

Return modified entity.

Parameters
dragPointsModified points
Returns
New entity or same entity if an error occurred Return the new entity which corresponds to the given points. Points must be associated to the same number given in dragPoints().

Implements lc::Draggable.

Definition at line 154 of file dimangular.cpp.

154  {
155  try {
156  auto newEntity = std::make_shared<DimAngular>(dragPoints.at(0),
157  dragPoints.at(1),
158  attachmentPoint(),
159  textAngle(),
162  explicitValue(),
163  dragPoints.at(2),
164  dragPoints.at(3),
165  dragPoints.at(4),
166  dragPoints.at(5),
167  layer(),
168  metaInfo());
169  newEntity->setID(id());
170  return newEntity;
171  }
172  catch(std::out_of_range& e) {
173  return shared_from_this();
174  }
175 }
TextConst::LineSpacingStyle lineSpacingStyle() const
Definition: dimension.cpp:91
std::string explicitValue() const
Definition: dimension.cpp:95
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
TextConst::AttachmentPoint const & attachmentPoint() const
Definition: dimension.cpp:83
double lineSpacingFactor() const
Definition: dimension.cpp:87
double textAngle() const
Definition: dimension.cpp:79
virtual std::map< unsigned int, lc::geo::Coordinate > dragPoints() const override
Get all points of the entity that can be dragged.
Definition: dimangular.cpp:140

Member Data Documentation

const geo::Coordinate lc::entity::DimAngular::_defLine11
protected

Definition at line 95 of file dimangular.h.

const geo::Coordinate lc::entity::DimAngular::_defLine12
protected

Definition at line 96 of file dimangular.h.

const geo::Coordinate lc::entity::DimAngular::_defLine21
protected

Definition at line 97 of file dimangular.h.

const geo::Coordinate lc::entity::DimAngular::_defLine22
protected

Definition at line 98 of file dimangular.h.


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