Extensibility of TrackPoint
We want to store different data in the TrackPoint
depending on the recognition/tracking method used, e.g.:
- height
- quality
- color
- marker ID
- ...
After discussion:
- Create structs for each marker/tracker type, storing the individual data
- Create a struct
TrackPoint
which consists of the two main fields, storing the pixel point and the quality. Additionally save the possible results for each marker/tracker type as anstd::optional
.
classDiagram
MultiColor--*TrackPoint
Casern--*TrackPoint
Code--*TrackPoint
Japan--*TrackPoint
Hermes--*TrackPoint
Stereo--*TrackPoint
class TrackPoint{
+Vec2F mPixelPoint
+int mQuality
+std::optional~MultiColor~ mMultiColor
+std::optional~Casern~ mCasern
+std::optional~Marker~ mCode
+std::optional~Japan~ mJapan
+std::optional~Hermes~ mHermes
+std::optional~Stereo~ mStereo
}
class MultiColor{
+Vec2F mColorPoint
+QColor mColor
}
class Casern{
+Vec2F mColorPoint
+QColor mColor
+cv::Vec3d mOrientation
}
class Code{
+int mMarkerID
+cv::Vec3d mOrientation
}
class Japan{
+cv::Vec3d mOrientation
}
class Hermes{
}
class Stereo{
+Vec3F mStereoPoint
}
Edited by Schrödter, Tobias