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

#include <ftrim.h>

Inheritance diagram for lc::FTrim:
Collaboration diagram for lc::FTrim:

Public Member Functions

 FTrim (std::vector< entity::CADEntity_CSPtr > limitingEntities, entity::CADEntity_CSPtr trimmedShape, geo::Coordinate trimPoint)
 
virtual void visit (entity::Line_CSPtr)
 
virtual void visit (entity::Point_CSPtr)
 
virtual void visit (entity::Circle_CSPtr)
 
virtual void visit (entity::Arc_CSPtr)
 
virtual void visit (entity::Ellipse_CSPtr)
 
virtual void visit (entity::Text_CSPtr)
 
virtual void visit (entity::Spline_CSPtr)
 
virtual void visit (entity::MText_CSPtr)
 
virtual void visit (entity::DimAligned_CSPtr)
 
virtual void visit (entity::DimAngular_CSPtr)
 
virtual void visit (entity::DimDiametric_CSPtr)
 
virtual void visit (entity::DimLinear_CSPtr)
 
virtual void visit (entity::DimRadial_CSPtr)
 
std::vector
< entity::CADEntity_CSPtr > 
result ()
 
entity::CADEntity_CSPtr trimmedShape () const
 
- Public Member Functions inherited from lc::EntityDispatch
virtual void visit (entity::LWPolyline_CSPtr)=0
 
virtual void visit (entity::Image_CSPtr)=0
 

Private Attributes

std::vector
< entity::CADEntity_CSPtr > 
_limitingEntities
 
entity::CADEntity_CSPtr _trimmedShape
 
std::vector
< entity::CADEntity_CSPtr > 
_newEntities
 
geo::Coordinate _trimPoint
 

Detailed Description

Definition at line 10 of file ftrim.h.

Constructor & Destructor Documentation

FTrim::FTrim ( std::vector< entity::CADEntity_CSPtr >  limitingEntities,
entity::CADEntity_CSPtr  trimmedShape,
geo::Coordinate  trimPoint 
)

Definition at line 14 of file ftrim.cpp.

14  : _limitingEntities(limitingEntities), _trimmedShape(trimmedShape), _trimPoint(trimPoint) {
15 
16 }
std::vector< entity::CADEntity_CSPtr > _limitingEntities
Definition: ftrim.h:31
entity::CADEntity_CSPtr trimmedShape() const
Definition: ftrim.cpp:98
geo::Coordinate _trimPoint
Definition: ftrim.h:34
entity::CADEntity_CSPtr _trimmedShape
Definition: ftrim.h:32

Member Function Documentation

std::vector< CADEntity_CSPtr > FTrim::result ( )

Definition at line 93 of file ftrim.cpp.

93  {
94  _trimmedShape->dispatch(*this);
95  return _newEntities;
96 }
std::vector< entity::CADEntity_CSPtr > _newEntities
Definition: ftrim.h:33
entity::CADEntity_CSPtr _trimmedShape
Definition: ftrim.h:32
CADEntity_CSPtr FTrim::trimmedShape ( ) const

Definition at line 98 of file ftrim.cpp.

98  {
99  return this->_trimmedShape;
100 }
entity::CADEntity_CSPtr _trimmedShape
Definition: ftrim.h:32
void FTrim::visit ( entity::Line_CSPtr  line)
virtual

Implements lc::EntityDispatch.

Definition at line 21 of file ftrim.cpp.

21  {
22  /*
23  IntersectMany im = IntersectMany(this->_limitingEntities, Intersect::OnPath);
24  std::vector<geo::Coordinate> points = im.result();
25  this->_newEntities.clear();
26 
27  if (points.size() > 0) {
28  points.push_back(this->_trimPoint);
29  std::sort(points.begin(), points.end(), geo::CoordinateDistanceSort(line->start()));
30 
31  for (int i = 0; i < points.size(); ++i) {
32  if (points.at(i) == this->_trimPoint) {
33  if (i == 0) {
34  this->_newEntities.push_back(Line_CSPtr(new Line(points.at(i + 1), line->end())));
35  return;
36  } else if (i == points.size() - 1) {
37  this->_newEntities.push_back(Line_CSPtr(new Line(line->start(), points.at(i - 1))));
38  return;
39  } else {
40  this->_newEntities.push_back(Line_CSPtr(new Line(line->start(), points.at(i - 1))));
41  this->_newEntities.push_back(Line_CSPtr(new Line(points.at(i + 1), line->end())));
42  return;
43  }
44  }
45  }
46  }
47  */
48 }
void FTrim::visit ( entity::Point_CSPtr  coord)
virtual

Implements lc::EntityDispatch.

Definition at line 53 of file ftrim.cpp.

53  {
54 
55 }
void FTrim::visit ( entity::Circle_CSPtr  circle)
virtual

Implements lc::EntityDispatch.

Definition at line 49 of file ftrim.cpp.

49  {
50 
51 }
void FTrim::visit ( entity::Arc_CSPtr  arc)
virtual

Implements lc::EntityDispatch.

Definition at line 18 of file ftrim.cpp.

18  {
19 
20 }
void FTrim::visit ( entity::Ellipse_CSPtr  ellipse)
virtual

Implements lc::EntityDispatch.

Definition at line 57 of file ftrim.cpp.

57  {
58 
59 }
void FTrim::visit ( entity::Text_CSPtr  text)
virtual

Implements lc::EntityDispatch.

Definition at line 61 of file ftrim.cpp.

61  {
62 
63 }
void FTrim::visit ( entity::Spline_CSPtr  spline)
virtual

Implements lc::EntityDispatch.

Definition at line 65 of file ftrim.cpp.

65  {
66 
67 }
void FTrim::visit ( entity::MText_CSPtr  mtext)
virtual

Definition at line 69 of file ftrim.cpp.

69  {
70 
71 }
void FTrim::visit ( entity::DimAligned_CSPtr  dimaligned)
virtual

Implements lc::EntityDispatch.

Definition at line 73 of file ftrim.cpp.

73  {
74 
75 }
void FTrim::visit ( entity::DimAngular_CSPtr  dimangular)
virtual

Implements lc::EntityDispatch.

Definition at line 77 of file ftrim.cpp.

77  {
78 
79 }
void FTrim::visit ( entity::DimDiametric_CSPtr  dimdiametric)
virtual

Implements lc::EntityDispatch.

Definition at line 81 of file ftrim.cpp.

81  {
82 
83 }
void FTrim::visit ( entity::DimLinear_CSPtr  dimlinear)
virtual

Implements lc::EntityDispatch.

Definition at line 85 of file ftrim.cpp.

85  {
86 
87 }
void FTrim::visit ( entity::DimRadial_CSPtr  dimrad)
virtual

Implements lc::EntityDispatch.

Definition at line 89 of file ftrim.cpp.

89  {
90 
91 }

Member Data Documentation

std::vector<entity::CADEntity_CSPtr> lc::FTrim::_limitingEntities
private

Definition at line 31 of file ftrim.h.

std::vector<entity::CADEntity_CSPtr> lc::FTrim::_newEntities
private

Definition at line 33 of file ftrim.h.

entity::CADEntity_CSPtr lc::FTrim::_trimmedShape
private

Definition at line 32 of file ftrim.h.

geo::Coordinate lc::FTrim::_trimPoint
private

Definition at line 34 of file ftrim.h.


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