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