ProcessorTracker compatible with preprocessing and other processors
This is a small issue/MR but somehow important. In ProcessorTrackerFeature
and ProcessorTrackerLandmark
, we consider that last_ptr_->getFeatureList()
is the list of the tracked features (a.k.a the known features).
This is because an important assumption was made when developing: "this is the only processor working with the capture". Also, the design assumed that the features are "emplaced" in the time that they are tracked.
This has 2 consequences (that I can think of)
- Unexpected behaviour if another processor is working with the same capture.
- Need of workarounds if the processor detects all the features of the capture in
preProcess()
.
I think that this would be easily addressed by adding FeatureBasePtrList known_features_last_
analogous to the known_features_incoming_
. I think that it requires a small change in the code.
Then, the processor can emplace all detected features to the capture in preProcess()
without need of creating auxiliar lists.
@jsola does it seems reasonable to you?