2 #ifndef GM_TRACK_SAMPLECOLLECTOR
3 #define GM_TRACK_SAMPLECOLLECTOR
5 #include <gmTrack/config.hh>
7 #include <gmCore/io_eigen.hh>
8 #include <gmCore/Object.hh>
9 #include <gmTrack/Controller.hh>
10 #include <gmCore/Updateable.hh>
12 BEGIN_NAMESPACE_GMTRACK;
23 std::unique_ptr<Impl> _impl;
33 void update(clock::time_point time,
size_t frame);
40 void setController(std::shared_ptr<Controller> controller);
47 void addTrackerPosition(Eigen::Vector3f p);
54 void addTrackerOrientation(Eigen::Quaternionf o);
63 void setSamplesPerSecond(
float n);
71 void setWarningThreshold(
float d);
78 void setInlierThreshold(
float r);
86 void setOrientationWarningThreshold(
float d);
93 void setOrientationInlierThreshold(
float r);
98 const std::vector<Eigen::Vector3f> &getTrackerPositions()
const;
103 const std::vector<Eigen::Quaternionf> &getTrackerOrientations()
const;
116 static Eigen::Vector3f getAverage(std::vector<Eigen::Vector3f> samples,
117 float *stddev =
nullptr,
118 float *maxdev =
nullptr,
119 float inlier_dist = -1.f,
120 size_t *inlier_count =
nullptr);
132 static Eigen::Quaternionf getAverage(std::vector<Eigen::Quaternionf> samples,
133 float *stddev =
nullptr,
134 float *maxdev =
nullptr,
135 float inlier_dist = -1.f,
136 size_t *inlier_count =
nullptr);
143 void traverse(
Visitor *visitor)
override;
149 END_NAMESPACE_GMTRACK;
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
The SampleCollector is a utility for sampling tracker data.
Definition: SampleCollector.hh:19
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
Definition: Updateable.cpp:9