OpenLexocad  27.1
ViewInterface.h
Go to the documentation of this file.
1 
9 #ifndef VIEWINTERFACE_H
10 #define VIEWINTERFACE_H
11 
12 #include <Geom/Lin.h>
13 #include <Geom/Pnt.h>
14 #include <Geom/Rect.h>
15 
16 
17 namespace Core
18 {
19 class CViewport;
20 class CAbstractPreviewInt;
21 
23 {
26 };
27 
28 
29 
34 class LX_CORE_EXPORT ViewMgrInterface
35 {
36 public:
37  virtual Geom::Rect map2Scene(const Core::CViewport& viewport) = 0;
38  virtual Geom::Rect map2Scene(const Geom::Rect& rect) = 0;
39  virtual Geom::Pnt map2Scene(const Geom::Pnt& p) = 0;
40  virtual Geom::Pnt map2Scene(int x, int y) = 0;
41 
42  virtual Geom::Rect map2View(const Geom::Rect& rect) = 0;
43  virtual Geom::Pnt map2View(const Geom::Pnt& p) = 0;
44  virtual Geom::Pnt map2View(double x, double y) = 0;
45 
46  virtual void fit(const Geom::Rect& rect_scene) = 0;
47  virtual void fit(double x, double y, double w, double h) = 0;
48 
49  virtual void centerView(const Geom::Pnt& p) = 0;
50  virtual void centerView(double x, double y) = 0;
51  virtual void translateView(const Geom::Pnt& dp) = 0;
52  virtual void translateView(double dx, double dy) = 0;
53  virtual void scaleView(double factor) = 0;
54 
55  virtual void zoom(double z, bool storeView = true) = 0;
56 
57  virtual void setTheSceneRect(const Geom::Rect& rect) = 0;
58  virtual Geom::Rect getSceneRect(void) = 0;
59  virtual CViewport getViewport(void) = 0;
60 
61  virtual void updateView(void) = 0;
62 
63 
64  // cursor interface
65  //
66  virtual void setCursor_DefaultViewing(void) = 0;
67  virtual void setCursor_DefaultDrawing(void) = 0;
68  virtual void setCursor_Panning(void) = 0;
69  virtual void setCursor_Blank(void) = 0;
70  virtual void setCursor_DND(void) = 0;
71  virtual void setCursor_Special(SpecialCursor c) = 0;
72 
73  virtual Geom::Pnt getCursorPosition_Viewport(void) = 0;
74  virtual Geom::Pnt getCursorPosition_Scene(void) = 0;
75  virtual void setCursorPosition(int local_x, int local_y) = 0;
76  virtual void setTheFocus(void) = 0;
77 
78  virtual void pushCursor(void) = 0;
79  virtual void popCursor(void) = 0;
80 
81 
82  // preview interface
83  //
84  virtual CAbstractPreviewInt* startPreview(const std::string& type) = 0;
85  virtual void updateAllPreviewsDest(double x, double y) = 0;
86  virtual void stopAllPreviews(void) = 0;
87  virtual void hideAllPreviews(void) = 0;
88  virtual void showAllPreviews(void) = 0;
89 
90  virtual void startSelectionBand(int x, int y, int style = 0) = 0;
91  virtual void stopSelectionBand(void) = 0;
92 
93 
94 
95 // debugging interface
96 #ifndef NDEBUG
97 public:
98  virtual void DEBUG_addRectangle(const Geom::Rect& rect, int r, int g, int b) = 0;
99  virtual void DEBUG_addLine(const Geom::Pnt& p1, const Geom::Pnt& p2, int r, int g, int b) = 0;
100  virtual void DEBUG_addLine(const Geom::Lin& l, int r, int g, int b) = 0;
101  virtual void DEBUG_addArc(const Geom::Pnt& center, double radius, double startAngle_rad, double arcLengeth_rad, int r, int g, int b) = 0;
102  virtual void DEBUG_clear(void) = 0;
103 #endif
104 };
105 
106 
112 {
113 public:
114  int width;
115  int height;
116 
117 
119  {
120  width = 0;
121  height = 0;
122  }
123 
124  Geom::Rect toRect() { return Geom::Rect(0.0, 0.0, width, height); }
125 
126  bool isValid()
127  {
128  if (width > 0 && height > 0)
129  return true;
130  else
131  return false;
132  }
133 
134  bool contains(const Geom::Pnt& point)
135  {
136  if (!isValid())
137  return false;
138 
139  if (point.x() < 0 || point.x() > width)
140  return false;
141 
142  if (point.y() < 0 || point.y() > height)
143  return false;
144  else
145  return true;
146  }
147 };
148 
149 
150 
151 } // namespace Core
152 
153 
154 
155 #endif
Geom::Rect toRect()
Definition: ViewInterface.h:124
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:43
double y() const
For this point, returns its X coordinate.
SpecialCursor
Definition: ViewInterface.h:22
CViewport()
Definition: ViewInterface.h:118
Definition: Rect.h:27
double x() const
For this point, returns its X coordinate.
Definition: Lin.h:48
Definition: Base.h:12
bool contains(const Geom::Pnt &point)
Definition: ViewInterface.h:134
bool isValid()
Definition: ViewInterface.h:126
Definition: ViewInterface.h:24
int width
Definition: ViewInterface.h:114
Definition: ViewInterface.h:34
Definition: ViewInterface.h:111
Definition: ViewInterface.h:25
int height
Definition: ViewInterface.h:115