OpenCOVER
SurfacePlugin.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 _SURFACE_PLUGIN_H_
9#define _SURFACE_PLUGIN_H_
10
11#include <util/common.h>
12
15#include "coVRPlugin.h"
16
17class coVRPlugin;
18
19namespace osg
20{
21class Group;
22class Node;
23class MatrixTransform;
24class Switch;
25};
26
27#include <osg/Matrix>
28#include <osg/Vec3>
29
30#include <OpenVRUI/coMenu.h>
31class RenderObject;
32class PLUGIN_UTILEXPORT SurfacePlugin : public coVRPlugin, public ModuleFeedbackPlugin, public coMenuFocusListener
33{
34public:
35 SurfacePlugin(const char *iconname, string sectionName);
36 virtual ~SurfacePlugin();
37 void VerwaltePointer(bool show);
38 void GetPoint(osg::Vec3 &vect) const;
39 void GetNormal(osg::Vec3 &vect) const;
40 void SubstitutePointer(const char *iconname);
41
42 void AddObject(const char *objName, RenderObject *colorOrText);
43 void AddNode(const char *objName, osg::Node *node);
44 void AddContainer(const char *contName, const char *objName);
45 void RemoveObject(const char *objName);
46 void RemoveNode(osg::Node *);
47 RenderObject *GetColor(const char *objName);
48 osg::Node *GetNode(const char *objName);
49 void ToggleVisibility(string objName);
50 virtual void SuppressOther3DTex(ModuleFeedbackManager *);
51 virtual void DeleteInteractor(coInteractor *i);
52 void GetPointerParams(float &angle, float &scaleFactor, float &displacement);
55 virtual void preFrame()
56 {
57 ModuleFeedbackPlugin::preFrame();
58 };
59 // Change Pointer state: true=active, false=non-active
60 void setActive(bool isActive);
61
62protected:
63 virtual void focusEvent(bool focus, coMenu *menu);
64 coVRPlugin *_module;
65
66private:
67 map<string, osg::Node *> _findNode; // object, node
68 map<osg::Node *, string> _findNodeSym; // object, node
69 map<osg::Node *, osg::Group *> _parentNode; // object, parent object
70
71 map<string, string> _findObject; // container, object
72 map<string, string> _findObjectSym; // object, container
73
74 map<string, RenderObject *> _findColor; // object, colorObject
75
76 // pointer
77 osg::Switch *readPointer(const char *basename);
78 bool _show;
79 osg::Group *_rootNode;
80 osg::MatrixTransform *_scale;
81 osg::MatrixTransform *_fixed_scale;
82 osg::Matrix *_fixed_matrix;
83 osg::Matrix *_matrix;
84 osg::Switch *_pointer; // pointer icon
85 float _cos_angle;
86 float _sin_angle;
87 float _angle; // degrees
88 float _displacement;
89 float _scaleFactor;
90 bool _inFocus;
91 string _iconName;
92};
93#endif
OpenCOVER plugin interface, derive plugins from coVRPlugin.
Definition: coClusterStat.h:29
Definition: SurfacePlugin.h:33
coVRPlugin * _module
Definition: SurfacePlugin.h:64
virtual ~SurfacePlugin()
virtual void SuppressOther3DTex(ModuleFeedbackManager *)
void VerwaltePointer(bool show)
virtual void DeleteInteractor(coInteractor *i)
void GetPoint(osg::Vec3 &vect) const
RenderObject * GetColor(const char *objName)
void AddContainer(const char *contName, const char *objName)
void AddFixedIcon()
void RemoveFixedIcon()
void AddNode(const char *objName, osg::Node *node)
virtual void preFrame()
Definition: SurfacePlugin.h:55
osg::Node * GetNode(const char *objName)
void SubstitutePointer(const char *iconname)
void RemoveObject(const char *objName)
void AddObject(const char *objName, RenderObject *colorOrText)
void GetNormal(osg::Vec3 &vect) const
void GetPointerParams(float &angle, float &scaleFactor, float &displacement)
void setActive(bool isActive)
void ToggleVisibility(string objName)
void RemoveNode(osg::Node *)
virtual void focusEvent(bool focus, coMenu *menu)
SurfacePlugin(const char *iconname, string sectionName)