gramods
VrpnServer.hh
1 
2 #ifndef GRAMODS_TRACK_VRPNSERVER
3 #define GRAMODS_TRACK_VRPNSERVER
4 
5 #include <gmTrack/config.hh>
6 
7 #ifdef gramods_ENABLE_VRPN
8 
9 #include <gmCore/Object.hh>
10 #include <gmCore/OFactory.hh>
11 #include <gmCore/Updateable.hh>
12 
13 #include <gmTrack/AnalogsTracker.hh>
14 #include <gmTrack/ButtonsTracker.hh>
15 #include <gmTrack/MultiPoseTracker.hh>
16 #include <gmTrack/SinglePoseTracker.hh>
17 
18 BEGIN_NAMESPACE_GMTRACK;
19 
30  : public gmCore::Object,
31  public gmCore::Updateable {
32 
33 public:
34 
35  VrpnServer();
36  ~VrpnServer();
37 
42  void update(gmCore::Updateable::clock::time_point time,
43  size_t frame) override;
44 
48  void initialize() override;
49 
55  void setPort(int port);
56 
61  void addTrackerName(std::string name);
62 
67  void addAnalogsTracker(std::shared_ptr<AnalogsTracker> t);
68 
73  void addButtonsTracker(std::shared_ptr<ButtonsTracker> t);
74 
79  void addMultiPoseTracker(std::shared_ptr<MultiPoseTracker> t);
80 
85  void addSinglePoseTracker(std::shared_ptr<SinglePoseTracker> t);
86 
92  void traverse(Visitor *visitor) override;
93 
94  GM_OFI_DECLARE;
95 
96 private:
97 
98  struct Impl;
99  std::unique_ptr<Impl> _impl;
100 };
101 
102 END_NAMESPACE_GMTRACK;
103 
104 #endif
105 
106 #endif
Base type for objects in the Gramods package for standardized handling of construction,...
Definition: Object.hh:42
The Updateable class defines an interface for objects that may be updated, for example each execution...
Definition: Updateable.hh:18
This class sets up a VRPN server that post data from AnalogsTracker, ButtonsTracker,...
Definition: VrpnServer.hh:31
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
Definition: VrpnServer.cpp:32