OpenLexocad  28.0
ServiceInterface.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include <Geom/Pnt.h>
11 #include <set>
12 namespace Core { class DocObject; }
13 
14 
15 namespace Geom
16 {
17 class Dir;
18 class Rect;
19 }
20 
21 namespace Core
22 {
48 {
49  enum CGS_Type
50  {
54 
55  } type;
56 
60 
61  double parameter1;
62  double paremeter2;
63  double parameter3;
64 
65 
67  {
69 
70  parameter1 = 0.0;
71  paremeter2 = 0.0;
72  parameter3 = 0.0;
73  }
74 };
75 
76 
77 
83 {
84 public:
85  CSnapperContext() { valid = false; }
86 
87  bool valid;
89 };
90 
91 
96 class LX_CORE_EXPORT ServiceInterface
97 {
98 public:
99  // selector interface
100  virtual void selectByHit(const Geom::Rect& area) = 0;
101  virtual void selectByRect(const Geom::Rect& area) = 0;
102 
103  virtual void selectByHitPlus(const Geom::Rect& area) = 0;
104  virtual void selectByRectPlus(const Geom::Rect& area) = 0;
105 
106  virtual void unselectAll(void) = 0;
107  virtual std::set<Core::DocObject*> getSelectedElements(void) = 0;
108 
109  virtual bool activePoint_Exists(void) = 0;
111  virtual Geom::Pnt activePoint_Position(void) = 0;
112 
113  virtual bool activeSegment_Exists(void) = 0;
115 
116 
117 
118  // snapping interface
119  virtual void enableSnapper(int options, CSnapperContext context = CSnapperContext()) = 0;
120  virtual void disableSnapper(void) = 0;
121  virtual bool isSnap(void) = 0;
122  virtual void hideSnapMark(void) = 0;
123 
124  virtual Geom::Pnt getSnapPoint(void) = 0;
125 
126 
127 
128  // picking interface
129  virtual void enablePicker(int options) = 0;
130  virtual void disablePicker(void) = 0;
131  virtual bool isPick(void) = 0;
132  virtual void unpick(void) = 0;
133  virtual void hidePickedSegmentMark(void) = 0;
134 
136  virtual Core::DocObject* getPickedElement(void) = 0;
137 
138 
139 
140  // general
141  virtual void showEndlessHelper(const Geom::Pnt& p, const Geom::Dir& d) = 0;
142  virtual void hideEndlessHelper(void) = 0;
143 
144  virtual void addGeneralMark(const Geom::Pnt& p) = 0;
145  virtual void removeGeneralMarks(void) = 0;
146 
147  virtual void getElementsIntersectingArea(std::vector<Core::DocObject*>& elements, const Geom::Rect& area) = 0;
148 };
149 
150 } // namespace Core
Core::ServiceInterface::hideEndlessHelper
virtual void hideEndlessHelper(void)=0
Core::ServiceInterface::activePoint_Position
virtual Geom::Pnt activePoint_Position(void)=0
Core::CommonGeometryDefinition::paremeter2
double paremeter2
Definition: ServiceInterface.h:62
Core::ServiceInterface::activeSegment_Exists
virtual bool activeSegment_Exists(void)=0
Core::ServiceInterface::getPickedElement
virtual Core::DocObject * getPickedElement(void)=0
Core::ServiceInterface::disableSnapper
virtual void disableSnapper(void)=0
Core::CommonGeometryDefinition::ENDLESS_LINE
@ ENDLESS_LINE
Definition: ServiceInterface.h:52
Core::CSnapperContext::valid
bool valid
Definition: ServiceInterface.h:87
Core::ServiceInterface::selectByRect
virtual void selectByRect(const Geom::Rect &area)=0
Core::ServiceInterface::activeSegment_Element
virtual Core::DocObject * activeSegment_Element(void)=0
Core::CommonGeometryDefinition::CommonGeometryDefinition
CommonGeometryDefinition()
Definition: ServiceInterface.h:66
Core::ServiceInterface::activePoint_Exists
virtual bool activePoint_Exists(void)=0
Core::CommonGeometryDefinition::CIRCLE_SEGMENT
@ CIRCLE_SEGMENT
Definition: ServiceInterface.h:53
Core::ServiceInterface::getSelectedElements
virtual std::set< Core::DocObject * > getSelectedElements(void)=0
Core::CommonGeometryDefinition::CGS_Type
CGS_Type
Definition: ServiceInterface.h:50
Core::ServiceInterface::hidePickedSegmentMark
virtual void hidePickedSegmentMark(void)=0
Core::CommonGeometryDefinition::p1
Geom::Pnt p1
Definition: ServiceInterface.h:57
Core::ServiceInterface::enablePicker
virtual void enablePicker(int options)=0
Geom::Dir
Definition: Dir.h:45
Core::ServiceInterface::activePoint_Element
virtual Core::DocObject * activePoint_Element(void)=0
Core::DocObject
Definition: DocObject.h:54
Core::CommonGeometryDefinition::LINE_SEGMENT
@ LINE_SEGMENT
Definition: ServiceInterface.h:51
Core::CSnapperContext::refPoint
Geom::Pnt refPoint
Definition: ServiceInterface.h:88
Core::ServiceInterface::getElementsIntersectingArea
virtual void getElementsIntersectingArea(std::vector< Core::DocObject * > &elements, const Geom::Rect &area)=0
Core::ServiceInterface::selectByRectPlus
virtual void selectByRectPlus(const Geom::Rect &area)=0
Core::ServiceInterface::disablePicker
virtual void disablePicker(void)=0
Core
Definition: Base.h:5
Core::ServiceInterface
Definition: ServiceInterface.h:97
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
Core::ServiceInterface::isSnap
virtual bool isSnap(void)=0
Core::ServiceInterface::unpick
virtual void unpick(void)=0
Pnt.h
Core::ServiceInterface::addGeneralMark
virtual void addGeneralMark(const Geom::Pnt &p)=0
Core::CSnapperContext::CSnapperContext
CSnapperContext()
Definition: ServiceInterface.h:85
Core::ServiceInterface::selectByHit
virtual void selectByHit(const Geom::Rect &area)=0
Core::ServiceInterface::getPickedSegment
virtual CommonGeometryDefinition getPickedSegment(void)=0
Core::CommonGeometryDefinition::p2
Geom::Pnt p2
Definition: ServiceInterface.h:58
Core::CommonGeometryDefinition::parameter1
double parameter1
Definition: ServiceInterface.h:61
Core::CommonGeometryDefinition::p3
Geom::Pnt p3
Definition: ServiceInterface.h:59
Core::ServiceInterface::unselectAll
virtual void unselectAll(void)=0
Core::CommonGeometryDefinition
Definition: ServiceInterface.h:48
Core::CommonGeometryDefinition::parameter3
double parameter3
Definition: ServiceInterface.h:63
Core::CSnapperContext
Definition: ServiceInterface.h:83
Core::CommonGeometryDefinition::type
enum Core::CommonGeometryDefinition::CGS_Type type
Core::ServiceInterface::hideSnapMark
virtual void hideSnapMark(void)=0
Core::ServiceInterface::showEndlessHelper
virtual void showEndlessHelper(const Geom::Pnt &p, const Geom::Dir &d)=0
Core::ServiceInterface::enableSnapper
virtual void enableSnapper(int options, CSnapperContext context=CSnapperContext())=0
Core::ServiceInterface::removeGeneralMarks
virtual void removeGeneralMarks(void)=0
Core::ServiceInterface::selectByHitPlus
virtual void selectByHitPlus(const Geom::Rect &area)=0
Core::ServiceInterface::getSnapPoint
virtual Geom::Pnt getSnapPoint(void)=0
Geom
Definition: PropertyContainer.h:33
Core::ServiceInterface::isPick
virtual bool isPick(void)=0
Geom::Rect
Definition: Rect.h:23