OpenCOVER
vruiRendererInterface.h
Go to the documentation of this file.
1/* This file is part of COVISE.
2
3 You can use it under the terms of the GNU Lesser General Public License
4 version 2.1 or later, see lgpl-2.1.txt.
5
6 * License: LGPL 2+ */
7
8#ifndef VRUI_RENDERERINTERFACE_H
9#define VRUI_RENDERERINTERFACE_H
10
16
17#include <OpenVRUI/coAction.h>
19
20#include <string>
21#include <map>
22
23EXPORT_TEMPLATE2(template class OPENVRUIEXPORT std::map<std::string, vrui::vruiNode *>)
24
25namespace vrui
26{
27
28class vruiButtonProvider;
29class vruiPanelGeometryProvider;
30class vruiUIElementProvider;
31
32class vruiActionUserData;
33class vruiButtons;
34class vruiCollabInterface;
35class vruiHit;
36class vruiNode;
37class vruiUserData;
38
39class coButtonGeometry;
40class coPanelGeometry;
41class coUIElement;
42class coUpdateManager;
43
44class OPENVRUIEXPORT vruiRendererInterface
45{
46
47public:
50
51 virtual vruiNode *getMenuGroup() = 0;
53 {
54 return NULL;
55 }
56
57 virtual vruiNode *getScene()
58 {
59 return NULL;
60 }
61
65
67 virtual void deleteNode(vruiNode *node)
68 {
69 delete node;
70 }
71
72 virtual vruiMatrix *createMatrix() = 0;
73 virtual void deleteMatrix(vruiMatrix *matrix)
74 {
75 delete matrix;
76 }
77
80 virtual void deleteUserData(vruiUserData *userData)
81 {
82 delete userData;
83 }
84
85 virtual vruiTexture *createTexture(const std::string &textureName) = 0;
86 virtual void deleteTexture(vruiTexture *texture)
87 {
88 delete texture;
89 }
90
91 virtual vruiButtons *getButtons() const;
92 virtual vruiButtons *getMouseButtons() const;
94
95 virtual double getFrameTime() const = 0; //{ return currentFrameTime; }
96 //inline void setFrameTime(double t) { currentFrameTime = t; } // set frame start time by Renderer
97
98 virtual std::string getName(const std::string &name) const = 0;
99
101
104 {
105 return NULL;
106 }
108 virtual bool isRayActive()
109 {
110 return ray;
111 }
113 virtual void setRayActive(bool b)
114 {
115 ray = b;
116 }
118 virtual bool isJoystickActive();
120 virtual void setJoystickActvie(bool b);
121
122 virtual coAction::Result hit(coAction *action, vruiHit *hit) = 0;
123 virtual void miss(coAction *action) = 0;
124
125 // remove pointer indicator
126 virtual void removePointerIcon(const std::string &name) = 0;
127 // add pointer indicator
128 virtual void addPointerIcon(const std::string &name) = 0;
129
130 virtual vruiNode *getIcon(const std::string &iconName, bool shared = false) = 0;
131
132 virtual vruiMatrix *getViewerMatrix() const = 0;
133 virtual vruiMatrix *getHandMatrix() const = 0;
134 virtual vruiMatrix *getMouseMatrix() const = 0;
135 virtual vruiMatrix *getRelativeMatrix() const = 0;
136
137 virtual bool is2DInputDevice() const = 0;
138 virtual bool isMultiTouchDevice() const
139 {
140 return false;
141 }
142
143 virtual void sendCollabMessage(vruiCollabInterface *myinterface, const char *buffer, int length) = 0;
144 virtual int getClientId()
145 {
146 return -1;
147 }
149 {
150 return false;
151 }
152
154
159 {
160 return interactionScaleSensitivity;
161 }
162
163 void setUpVector(coVector v)
164 {
165 upVector = v;
166 }
167 coVector getUpVector()
168 {
169 return upVector;
170 }
171
172 /* needed for RTT
173 virtual vruiMatrix *doBillboarding(vruiMatrix *invStartHandTrans, coVector pickPosition, coVector localPickPosition, float myScale) = 0;*/
174
175protected:
176 vruiButtons *buttons = nullptr;
177 vruiButtons *mouseButtons = nullptr;
178 vruiButtons *relativeButtons = nullptr;
179
180 std::map<std::string, vruiNode *> iconsList;
181
184
186 coVector upVector;
187
189
190 bool ray = false;
191};
192}
193#endif
collaborative interface manager
Definition: coVRCommunication.h:41
Definition: coAction.h:26
Result
Definition: coAction.h:44
Definition: coButtonGeometry.h:27
Manages the joystick as input device.
Definition: coJoystickManager.h:34
Definition: coPanelGeometry.h:22
Definition: coUIElement.h:53
Definition: coUpdateManager.h:42
Userdata that can be attached to Nodes in the scenegraph.
Definition: vruiActionUserData.h:19
Definition: vruiButtonProvider.h:21
Definition: vruiButtons.h:18
base class for collaborative Userinterface elements
Definition: vruiCollabInterface.h:46
Definition: vruiHit.h:21
Definition: vruiMatrix.h:20
Definition: vruiNode.h:22
Definition: vruiPanelGeometryProvider.h:20
Definition: vruiRendererInterface.h:45
virtual vruiNode * getAlwaysVisibleGroup()
Definition: vruiRendererInterface.h:52
virtual vruiUserData * createUserData()=0
virtual vruiNode * getIcon(const std::string &iconName, bool shared=false)=0
virtual vruiMatrix * getHandMatrix() const =0
virtual vruiButtons * getButtons() const
virtual vruiTransformNode * createTransformNode()=0
coVector upVector
Upvector.
Definition: vruiRendererInterface.h:186
float interactionScaleSensitivity
Sensitivity of the rowMenuHandle Interaction scale.
Definition: vruiRendererInterface.h:183
virtual vruiButtons * getMouseButtons() const
virtual coAction::Result hit(coAction *action, vruiHit *hit)=0
virtual int getClientId()
Definition: vruiRendererInterface.h:144
float getInteractionScaleSensitivity()
get the sensitivity oft thre rowMenuHandle interation scale
Definition: vruiRendererInterface.h:158
virtual vruiActionUserData * createActionUserData(coAction *action)=0
virtual void sendCollabMessage(vruiCollabInterface *myinterface, const char *buffer, int length)=0
virtual void deleteTexture(vruiTexture *texture)
Definition: vruiRendererInterface.h:86
virtual bool isJoystickActive()
is menu selectable vie joystick
virtual void miss(coAction *action)=0
virtual bool is2DInputDevice() const =0
virtual vruiMatrix * getRelativeMatrix() const =0
virtual vruiNode * getScene()
Definition: vruiRendererInterface.h:57
std::map< std::string, vruiNode * > iconsList
Definition: vruiRendererInterface.h:180
virtual vruiButtons * getRelativeButtons() const
virtual void setRayActive(bool b)
set menu pickable via ray
Definition: vruiRendererInterface.h:113
void setInteractionScaleSensitivity(float f)
set the sensitivity oft thre rowMenuHandle interation scale
virtual std::string getName(const std::string &name) const =0
virtual vruiTexture * createTexture(const std::string &textureName)=0
virtual vruiMatrix * createMatrix()=0
virtual vruiUIElementProvider * createUIElementProvider(coUIElement *element)=0
virtual vruiMatrix * getMouseMatrix() const =0
virtual void addPointerIcon(const std::string &name)=0
virtual void deleteMatrix(vruiMatrix *matrix)
Definition: vruiRendererInterface.h:73
virtual void deleteUserData(vruiUserData *userData)
Definition: vruiRendererInterface.h:80
virtual vruiMatrix * getViewerMatrix() const =0
virtual vruiNode * getMenuGroup()=0
virtual bool isMultiTouchDevice() const
Definition: vruiRendererInterface.h:138
static vruiRendererInterface * the()
virtual coUpdateManager * getUpdateManager()=0
virtual vruiPanelGeometryProvider * createPanelGeometryProvider(coPanelGeometry *panel)=0
virtual void setJoystickActvie(bool b)
set menu selectable via joystick
coVector getUpVector()
Definition: vruiRendererInterface.h:167
virtual void deleteNode(vruiNode *node)
Definition: vruiRendererInterface.h:67
virtual vruiButtonProvider * createButtonProvider(coButtonGeometry *button)=0
virtual void removePointerIcon(const std::string &name)=0
virtual bool isRemoteBlockNececcary()
Definition: vruiRendererInterface.h:148
virtual double getFrameTime() const =0
static vruiRendererInterface * theInterface
Definition: vruiRendererInterface.h:188
virtual coJoystickManager * getJoystickManager()
the application can have a joystick manager
Definition: vruiRendererInterface.h:103
virtual bool isRayActive()
is menu pickable via ray
Definition: vruiRendererInterface.h:108
void setUpVector(coVector v)
Definition: vruiRendererInterface.h:163
Userdata that can be attached to Nodes in the scenegraph.
Definition: vruiTexture.h:18
Definition: vruiTransformNode.h:18
Definition: vruiUIElementProvider.h:23
Userdata that can be attached to Nodes in the scenegraph.
Definition: vruiUserData.h:18