TactileVestProject  V1.0
Tactile user interface configuration tool
 All Classes Functions
ConfigurationWidget.h
1 #ifndef CONFIGURATIONWIDGET_H
2 #define CONFIGURATIONWIDGET_H
3 
4 #include <QMenu>
5 #include <QMouseEvent>
6 #include <QTimer>
7 #include <QWidget>
8 
9 #include <osgViewer/CompositeViewer>
10 #include <osgViewer/ViewerEventHandlers>
11 
12 #include "NodeManager.h"
13 #include "TactorNode.h"
14 
15 class ConfigurationWidget : public QWidget, public osgViewer::CompositeViewer
16 {
17  Q_OBJECT
18 public:
19  explicit ConfigurationWidget(QWidget *parent, NodeManager* tactorManager);
20 
21  void toggleLabels();
22  void addNode(Node *node);
23  void initializeViewer(QList<Node *> nodes);
24  virtual void paintEvent(QPaintEvent* event)
25  {
26  frame();
27  }
28 
29 protected:
30  osg::Node* human;
31  osg::Geode* spheres;
32  osg::Geode* labels;
33 
34  QMap<osg::Drawable*, Node*> drawableNodeMap;
35  QMap<osgText::Text*, QString> drawableLabelMap;
36  NodeManager* tactorManager;
37 
38  QTimer _timer;
39  bool eventFilter(QObject *obj, QEvent *event);
40  void pick(int x, int y);
41 
42  static void buildNodeMenu(QString text, NodeManager* manager, QMenu* parent);
43 
44 private:
45  const double DESIRED_HEIGHT = 33.0;
46  bool labels_switch;
47 
48 public slots:
49  void removeNode(Node* node);
50  void changeLabelFont(const QString id);
51 
52 signals:
53  void addTactor(int id, osg::Vec3d point);
54  void patternAdd(QString id);
55  void patternDelete(QString id);
56  void sendTextToLog(QString text);
57 
58 };
59 
60 #endif // CONFIGURATIONWIDGET_H
Definition: Node.h:9
bool eventFilter(QObject *obj, QEvent *event)
Definition: ConfigurationWidget.cpp:126
Definition: NodeManager.h:9
Definition: ConfigurationWidget.h:15
void pick(int x, int y)
Definition: ConfigurationWidget.cpp:180
void changeLabelFont(const QString id)
Definition: ConfigurationWidget.cpp:381
void initializeViewer(QList< Node * > nodes)
Definition: ConfigurationWidget.cpp:316
void toggleLabels()
Definition: ConfigurationWidget.cpp:105
static void buildNodeMenu(QString text, NodeManager *manager, QMenu *parent)
Definition: ConfigurationWidget.cpp:153
ConfigurationWidget(QWidget *parent, NodeManager *tactorManager)
ConfigurationWidget::ConfigurationWidget.
Definition: ConfigurationWidget.cpp:20
void removeNode(Node *node)
Definition: ConfigurationWidget.cpp:364