vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PoA.h
Go to the documentation of this file.
1 #pragma once
2 
3 using namespace vrecko;
4 
5 namespace APDYNAMICART
6 {
7 
8 
9 class DAEnvironment;
10 class Controller;
11 
13 typedef enum PoAType {
14  POA__DUMMY = -1,
21 };
22 
24 
29 typedef enum PoAUpdateType {
36 
37  //EDIT add your new update type(s) here, if necessary
38 };
39 
40 
42 
50 class PoA : public EnvironmentObject
51 {
52 public:
53 
54  PoA( Controller* contr);
55  ~PoA();
56 
58 
63  //virtual std::string createMenuStructure(void) const = 0;
64 
66 
71  virtual void createMenuStructure(osg::ref_ptr<vreckoUtils::MenuBase> parentMenu) const = 0;
72 
77  //virtual void exportMesh();
78 
79  PoAUpdateType getUpdateFlag() { return this->_updateFlag; }
80 
82  virtual osg::Vec3 getLeftHandPosition() const;
83 
85  virtual osg::Quat getLeftHandOrientation() const;
86 
88  virtual osg::Vec3 getRightHandPosition() const;
89 
91  virtual osg::Quat getRightHandOrientation() const;
92 
94 
103  virtual int load(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* PoANode) = 0;
104 
106 
109  virtual void GUIItemClicked(const char* itemID) = 0;
110 
112 
116  virtual void GUISliderChanged(const char* sliderID, float sliderPos) = 0;
117 
119  /*
120  * PoA may change color or something...
121  *
122  * \param pointed is true when user points on PoA and false when user "unpoint" PoA
123  *
124  */
125  virtual void pointed(bool pointed) = 0;
126 
128  virtual void save(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* Document, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* poaNode) = 0;
129 
131  void setUpdateFlag(PoAUpdateType newType);
132 
134  virtual void update() = 0;
135 
136  DECLARE_INPUT(Colour, MessageVec4);
137 
138 protected:
139 
140  //TODO make it const ?? probably not
143 
146 
149 
150 };
151 
153 typedef osg::ref_ptr<PoA> ref_ptr_PoA;
154 
155 }