Skip to content
Snippets Groups Projects
Commit 9941412d authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

track_matrix assuming emplaced features (remove capture pointer) and new add function

parent cb62672f
No related branches found
No related tags found
1 merge request!274Resolve "Emplace API inconsistent with ProcessorTrackerFeature/Landmark functions"
......@@ -78,8 +78,9 @@ class TrackMatrix
TrackMatrix();
virtual ~TrackMatrix();
void newTrack (CaptureBasePtr _cap, FeatureBasePtr _ftr);
void add (size_t _track_id, CaptureBasePtr _cap, FeatureBasePtr _ftr);
void newTrack (FeatureBasePtr _ftr);
void add (const SizeStd& _track_id, const FeatureBasePtr& _ftr);
void add (const FeatureBasePtr& _ftr_existing, const FeatureBasePtr& _ftr_new);
void remove (FeatureBasePtr _ftr);
void remove (const SizeStd& _track_id);
void remove (CaptureBasePtr _cap);
......
......@@ -38,21 +38,24 @@ Snapshot TrackMatrix::snapshot(CaptureBasePtr _capture)
return Snapshot();
}
void TrackMatrix::newTrack(CaptureBasePtr _cap, FeatureBasePtr _ftr)
void TrackMatrix::newTrack(FeatureBasePtr _ftr)
{
track_id_count_ ++;
add(track_id_count_, _cap, _ftr);
add(track_id_count_, _ftr);
}
void TrackMatrix::add(size_t _track_id, CaptureBasePtr _cap, FeatureBasePtr _ftr)
void TrackMatrix::add(const SizeStd& _track_id, const FeatureBasePtr& _ftr)
{
assert( (_track_id > 0) && (_track_id <= track_id_count_) && "Provided track ID does not exist. Use newTrack() instead.");
assert( tracks_.count(_track_id) != 0 && "Provided track ID does not exist. Use newTrack() instead.");
assert( _ftr->getCapture() != nullptr && "adding a feature not linked to any capture");
_ftr->setTrackId(_track_id);
if (_cap != _ftr->getCapture())
_ftr->setCapture(_cap);
tracks_[_track_id].emplace(_cap->getTimeStamp(), _ftr);
snapshots_[_cap->id()].emplace(_track_id, _ftr); // will create new snapshot if _cap_id is not present
tracks_[_track_id].emplace(_ftr->getCapture()->getTimeStamp(), _ftr);
snapshots_[_ftr->getCapture()->id()].emplace(_track_id, _ftr); // will create new snapshot if _cap_id is not present
}
void TrackMatrix::add(const FeatureBasePtr& _ftr_existing,const FeatureBasePtr& _ftr_new)
{
add(_ftr_existing->trackId(), _ftr_new);
}
void TrackMatrix::remove(const SizeStd& _track_id)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment