VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWidgetPicker.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 #pragma once
11 
12 #include <unordered_map>
13 
14 namespace makVrv
15 {
16  class DtFrameBufferObject;
17  class DtLineRenderer;
18  class DtLineSegment;
19  class DtOverlayResourceProvider;
20  class DtPickableTriangle;
21  class DtPickableWidget;
22  class DtPixelBufferObject;
23  class DtQuad;
24  class DtQuadRenderer;
25  class DtTextureObject;
26  class DtTriangleProxy;
27  class DtTriangleRenderer;
28  class DtPickableWidget;
29  class DtPickableQuad;
30  class DtPickableLine;
31  class DtPickableTriangle;
32  class DtDe;
33 
36 
38 
40  template <>
41  inline const char* creatorTypeName<DtWidgetPicker>(void) { return "DtWidgetPickerCreator"; }
42 
46  {
48 
49  public:
50 
52  {
53  NO_EVENT = 0,
64  MOUSE_WHEEL
65  };
66 
68  {
70  int x;
71  int y;
72  int wheel;
73  };
74 
75 
76  friend class DtPickableWidget;
77  friend class DtPickableQuad;
78  friend class DtPickableLine;
79  friend class DtPickableTriangle;
80 
81  public:
82 
84  virtual ~DtWidgetPicker();
85 
87  DtWidgetPicker() = delete;
89  DtWidgetPicker(const DtWidgetPicker& rhs) = delete;
91  DtWidgetPicker& operator=(const DtWidgetPicker& rhs) = delete;
92  public:
94  virtual unsigned int numberOfWidgets() const;
95 
98  virtual void releaseResources(bool renderer);
99 
100  virtual DtFrameBufferObject* frameBufferObject(void);
101 
103  virtual DtPickableQuad* allocatePickableQuad();
104 
106  virtual DtPickableTriangle* allocatePickableTriangle();
107 
109  virtual DtPickableLine* allocatePickableLine();
110 
113  virtual void pick(const MousePickRecord& rec, bool geocentric
114  , double cameraPosition[3], double cameraAltitude, double cameraMatrix[16]);
115 
117  virtual const DtPickableWidget* findWidgetFromLastPick() const;
118 
120  virtual bool signalEvents();
121 
123  virtual void clearEvents();
124 
126  boost::signalslib::signal<void ()> signal_destroyed;
127 
128  protected:
129 
133 
136  virtual DtPickableWidget* calculateWidgetFromLastPick();
137 
138  virtual void debugRender();
139 
141  virtual DtQuad* allocateQuad();
142 
144  virtual DtLineSegment* allocateLine();
145 
147  virtual DtTriangleProxy* allocateTriangle();
148 
150  virtual unsigned int widgetCreated(DtPickableWidget*);
151 
153  virtual void widgetToBeDeleted(DtPickableWidget*);
154 
155  virtual bool allocateResources();
156 
157  protected:
158 
166 
169 
172 
174 
175  typedef std::unordered_map<unsigned int, DtPickableWidget*> WidgetIdMap;
177 
178  unsigned int myFreeId;
180  };
181 
182 }
183 
unsigned int myFreeId
Definition: DtWidgetPicker.h:178
An object which wraps an OpenGL pixel buffer object and allows for asynchronous downloads of texture ...
Definition: DtPixelBufferObject.h:18
bool myPendingEventFlag
Definition: DtWidgetPicker.h:170
MousePickType type
Definition: DtWidgetPicker.h:69
The DtPickableQuad is a pickable widget that matches the Quad interface.
Definition: DtPickableWidget.h:125
int wheel
Definition: DtWidgetPicker.h:72
DtPickableWidget * myMouseFocusWidget
Definition: DtWidgetPicker.h:173
Definition: DtWidgetPicker.h:55
int x
Definition: DtWidgetPicker.h:70
Definition: DtWidgetPicker.h:58
The DtPickableLine is a pickable widget that matches the TriangleProxy interface. ...
Definition: DtPickableWidget.h:274
A class which allocates and draws quads.
Definition: DtQuadRenderer.h:40
A non-visible interactive widget.
Definition: DtPickableWidget.h:40
DtDe & myDe
Definition: DtWidgetPicker.h:179
DtTextureObject * mySampleTexture
Definition: DtWidgetPicker.h:162
DtOverlayResourceProvider & myProvider
Definition: DtWidgetPicker.h:159
Definition: DtWidgetPicker.h:56
DtLineRenderer * myLineRenderer
Definition: DtWidgetPicker.h:164
DtPixelBufferObject * myPixelBuffer
Definition: DtWidgetPicker.h:161
An object which wraps a OpenGL texture object.
Definition: DtTextureObject.h:15
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
The triangle renderer.
Definition: DtTriangleRenderer.h:42
The overlay resource provider class provies resources for overlay drawing classes.
Definition: DtOverlayResourceProvider.h:23
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
A class which represents a single line segment.
Definition: DtLineSegment.h:22
A flyweight class for controlling a triangle owned by the triangle renderer.
Definition: DtTriangleRenderer.h:112
Definition: DtWidgetPicker.h:63
The DtPickableLine is a pickable widget that matches the LineSegment interface.
Definition: DtPickableWidget.h:205
An object which wraps an OpenGL frame buffer object and allows rendering To a texture.
Definition: DtFrameBufferObject.h:16
const char * creatorTypeName< DtWidgetPicker >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtWidgetPicker.h:41
WidgetIdMap myWidgetIds
Definition: DtWidgetPicker.h:176
DtTriangleRenderer * myTriangleRenderer
Definition: DtWidgetPicker.h:165
Definition: DtWidgetPicker.h:57
Definition: DtWidgetPicker.h:67
friend DtWidgetPickerCreator
Definition: DtWidgetPicker.h:47
DtVirtualBaseClassCreator< DtWidgetPicker, DtOverlayResourceProvider & > DtWidgetPickerCreator
Definition: DtWidgetPicker.h:35
A single 2D quadrilateral. None of this class&#39;s member functions are virtual because: ...
Definition: DtQuad.h:28
std::unordered_map< unsigned int, DtPickableWidget * > WidgetIdMap
Definition: DtWidgetPicker.h:175
Definition: DtWidgetPicker.h:60
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
MousePickRecord myPendingEvent
Definition: DtWidgetPicker.h:171
boost::signalslib::signal< void()> signal_destroyed
Boost signal sent during widget picker destruction. Called from destructor.
Definition: DtWidgetPicker.h:126
int y
Definition: DtWidgetPicker.h:71
Definition: DtWidgetPicker.h:54
A class responsible for rendering lines.
Definition: DtLineRenderer.h:45
Definition: DtWidgetPicker.h:61
int myDesiredWidth
Definition: DtWidgetPicker.h:167
DtFrameBufferObject * myFrameBuffer
Definition: DtWidgetPicker.h:160
DtQuadRenderer * myQuadRenderer
Definition: DtWidgetPicker.h:163
int myDesiredHeight
Definition: DtWidgetPicker.h:168
The picker class which allocates and does picking operations on widgets.
Definition: DtWidgetPicker.h:45
MousePickType
Definition: DtWidgetPicker.h:51

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)