gramods
OffsetSinglePoseTracker.hh
1 
2 #ifndef GRAMODS_TRACK_OFFSETSINGLEPOSETRACKER
3 #define GRAMODS_TRACK_OFFSETSINGLEPOSETRACKER
4 
5 // Required before gmCore/OFactory.hh for some compilers
6 #include <gmCore/io_eigen.hh>
7 
8 #include <gmTrack/SinglePoseTracker.hh>
9 
10 #include <gmCore/OFactory.hh>
11 
12 BEGIN_NAMESPACE_GMTRACK;
13 
18  : public SinglePoseTracker {
19 
20 public:
21 
25  void setSinglePoseTracker(std::shared_ptr<SinglePoseTracker> tracker) {
26  this->tracker = tracker;
27  }
28 
37  void setPositionOffset(Eigen::Vector3f p) {
38  position_offset = p;
39  }
40 
49  void setOrientationOffset(Eigen::Quaternionf q) {
50  orientation_offset = q;
51  }
52 
61  void setOffsetMatrix(Eigen::Matrix4f m);
62 
66  bool getPose(PoseSample &p) override;
67 
73  void traverse(Visitor *visitor) override;
74 
75  GM_OFI_DECLARE;
76 
77 private:
78 
79  std::shared_ptr<SinglePoseTracker> tracker;
80 
81  Eigen::Vector3f position_offset = Eigen::Vector3f::Zero();
82  Eigen::Quaternionf orientation_offset = Eigen::Quaternionf::Identity();
83 
84 };
85 
86 END_NAMESPACE_GMTRACK;
87 
88 #endif
Provides the pose as an offset from another single pose tracker.
Definition: OffsetSinglePoseTracker.hh:18
void setOrientationOffset(Eigen::Quaternionf q)
Sets the orientation offset, in local tracker coordinates, to add to the pose data.
Definition: OffsetSinglePoseTracker.hh:49
void setPositionOffset(Eigen::Vector3f p)
Sets the position offset, in local tracker coordinates, to add to the pose data.
Definition: OffsetSinglePoseTracker.hh:37
void setSinglePoseTracker(std::shared_ptr< SinglePoseTracker > tracker)
Sets the SinglePoseTracker to register data from.
Definition: OffsetSinglePoseTracker.hh:25
The base of SinglePoseTrackers.
Definition: SinglePoseTracker.hh:13