vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Ctrl_PerlinLines.h
Go to the documentation of this file.
1 #ifndef _CTRL_PERLINELINES_H
2 #define _CTRL_PERLINELINES_H
3 
4 #include "Controller.h"
5 #include "PerlinLines.h"
6 #include "PerlinLinesTools.h"
7 
8 using namespace vrecko;
9 
10 namespace APDYNAMICART
11 {
12 
14 {
15 public:
18 
20  void activateTool();
21 
22  void setParameters();
23 
24  void clear();
25 
26  void createMenuStructure( osg::ref_ptr<vreckoUtils::MenuBase> parentMenu ) const;
27 
28  ref_ptr_PoA createPoA(int count, double x, double y, double z);
29 
30  ref_ptr_PoA createMag(osg::Vec3 coords);
31 
32  DAToolType getNextToolType();
33 
34  double random(double min,double max) { return min + (max-min)*(double)rand()/(double)RAND_MAX;}
35 
36  void deactivateTool();
37 
38  void debugKeyPressed() { }
39 
40  void initialize(DAEnvironment* p_dae, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters = NULL);
41 
42  void load(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList* poaNodeList);
43 
44  void guiItemClicked(const char* itemID);
45 
46  void guiSliderChanged(const char* sliderID, float sliderPos);
47 
48  void save(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* Document, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *controllerNode);
49 
50  void switchGUIVisibility() { cerr << "Not implemented, yet." << endl; };
51 
52  //void processEvent(const std::string &input_name, void *value);
53 
54  void update();
55 
56  void turnOn();
57 
58  //void setParameters();
59 
60  void turnOff();
61 
63 
64  osg::Timer_t lastAutorotationTime, nowAutorotationTime;
65 
66  void switchTools(DAToolType newType);
67 
68  bool loadXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parametersNode);
69 
70 private:
71  PLNestTool* nest;
72  PLMagnetTool* magnet;
73  PLControllerTool* controller;
74 protected:
75  std::vector<PerlinLines*> pl;
76  u_int _speed, _interpolationCount, _length;
77  string posString;
78  float _red, _green, _blue;
79  double _magnetSize, _boundingSize;
80  bool bounding, boundingVisible, magnetCreated, boundingCreated;
82 
83  osg::Vec3 rightHandPosition;
84 
85  void postInitialize();
86 
87  DECLARE_INPUT(Position_sensor_0, MessageVec3);
88 };
89 
90 }
91 #endif