vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Trace.h
Go to the documentation of this file.
1 #ifndef VF_TRACE
2 #define VF_TRACE
3 
4 #include <vrecko/Ability.h>
5 #include <osg/Vec4>
6 #include <osg/Geode>
7 #include <osg/MatrixTransform>
8 #include <osg/Group>
9 
10 using namespace vrecko;
11 namespace VirtualFixture{
12 
13 class Trace: public Ability {
14  public:
15  Trace();
16  ~Trace() {};
17 
19  void processEvent(const std::string &input_name, void *value);
20 
21  void preInitialize(void);
22  void postInitialize(void);
23  void update(void);
24 
25  void display(void);
26 
27  void addMarker(osg::Vec3 position); //add new marker
28  void removeAllMarkers(); //remove all markers from scene and free memory
29 
30 
31  bool loadXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *pParametersNode);
32  XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *);
33 
34  protected:
35  bool active; //if true, it will be active
36 
37  bool visible; //if geometric representation will be visible
38  osg::MatrixTransform *tnode; //transform node pointer
39  osg::Group *gnode; //group pointer -> top node in OSG subtree -> container for all markers
40  osg::Geode *node; //geometry node pointer -> for adding new marker
41  osg::Vec4 color; //color of first marker
42  osg::Vec4 color2; //color of first marker
43 
44  float transparency; //first marker transparency
45  float transparency2; //first marker transparency
46 
47  float radius; //marker radius -> for geometry
48  float mindistance; //minimal distance to new marker (to avoid all markers at the same location)
49 
50  int num_of_markers; //amount of markers
51  osg::Vec3 latestpos; //position of lastest marker
52 
53 
54 };
55 
56 };
57 
58 #endif