gramods
Loading...
Searching...
No Matches
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
12BEGIN_NAMESPACE_GMTRACK;
13
18 : public SinglePoseTracker {
19
20public:
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
77private:
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
86END_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