Skip to content
Snippets Groups Projects

Resolve "Emplace API inconsistent with ProcessorTrackerFeature/Landmark functions"

4 files
+ 85
104
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -113,19 +113,29 @@ class ProcessorTrackerFeature : public ProcessorTracker
@@ -113,19 +113,29 @@ class ProcessorTrackerFeature : public ProcessorTracker
*/
*/
virtual unsigned int processKnown();
virtual unsigned int processKnown();
/** \brief Track provided features from \b last to \b incoming
/** \brief Track provided features in \b _capture
* \param _features_last_in input list of features in \b last to track
* \param _features_in input list of features in \b last to track
* \param _features_incoming_out returned list of features found in \b incoming
* \param _capture the capture in which the _features_in should be searched
 
* \param _features_out returned list of features found in \b _capture
* \param _feature_correspondences returned map of correspondences: _feature_correspondences[feature_out_ptr] = feature_in_ptr
* \param _feature_correspondences returned map of correspondences: _feature_correspondences[feature_out_ptr] = feature_in_ptr
 
*
 
* IMPORTANT: The features in _features_out should be emplaced. It means, they have to be already linked to the _capture
 
*
 
* \return the number of features tracked
*/
*/
virtual unsigned int trackFeatures(const FeatureBasePtrList& _features_last_in, FeatureBasePtrList& _features_incoming_out, FeatureMatchMap& _feature_correspondences) = 0;
virtual unsigned int trackFeatures(const FeatureBasePtrList& _features_in,
 
const CaptureBasePtr& _capture,
 
FeatureBasePtrList& _features_out,
 
FeatureMatchMap& _feature_correspondences) = 0;
/** \brief Correct the drift in incoming feature by re-comparing against the corresponding feature in origin.
/** \brief Correct the drift in incoming feature by re-comparing against the corresponding feature in origin.
* \param _origin_feature input feature in origin capture tracked
* \param _origin_feature input feature in origin capture tracked
* \param _incoming_feature input/output feature in incoming capture to be corrected
* \param _incoming_feature input/output feature in incoming capture to be corrected
* \return false if the the process discards the correspondence with origin's feature
* \return false if the the process discards the correspondence with origin's feature
*/
*/
virtual bool correctFeatureDrift(const FeatureBasePtr _origin_feature, const FeatureBasePtr _last_feature, FeatureBasePtr _incoming_feature) = 0;
virtual bool correctFeatureDrift(const FeatureBasePtr _origin_feature,
 
const FeatureBasePtr _last_feature,
 
FeatureBasePtr _incoming_feature) = 0;
/** \brief Vote for KeyFrame generation
/** \brief Vote for KeyFrame generation
*
*
@@ -147,25 +157,30 @@ class ProcessorTrackerFeature : public ProcessorTracker
@@ -147,25 +157,30 @@ class ProcessorTrackerFeature : public ProcessorTracker
/** \brief Detect new Features
/** \brief Detect new Features
* \param _max_features maximum number of features detected (-1: unlimited. 0: none)
* \param _max_features maximum number of features detected (-1: unlimited. 0: none)
* \param _features_last_out The list of detected Features.
* \param _capture The capture in which the new features should be detected.
 
* \param _features_out The list of detected Features in _capture.
* \return The number of detected Features.
* \return The number of detected Features.
*
*
* This function detects Features that do not correspond to known Features/Landmarks in the system.
* This function detects Features that do not correspond to known Features/Landmarks in the system.
*
*
 
* IMPORTANT: The features in _features_out should be emplaced. It means, they have to be already linked to the _capture
 
*
* The function is called in ProcessorTrackerFeature::processNew() to set the member new_features_last_,
* The function is called in ProcessorTrackerFeature::processNew() to set the member new_features_last_,
* the list of newly detected features of the capture last_ptr_.
* the list of newly detected features of the capture last_ptr_.
*/
*/
virtual unsigned int detectNewFeatures(const int& _max_new_features, FeatureBasePtrList& _features_last_out) = 0;
virtual unsigned int detectNewFeatures(const int& _max_new_features,
 
const CaptureBasePtr& _capture,
 
FeatureBasePtrList& _features_out) = 0;
/** \brief Create a new factor and link it to the wolf tree
/** \brief Emplaces a new factor
* \param _feature_ptr pointer to the parent Feature
* \param _feature_ptr pointer to the parent Feature
* \param _feature_other_ptr pointer to the other feature constrained.
* \param _feature_other_ptr pointer to the other feature constrained.
*
*
* Implement this method in derived classes.
* Implement this method in derived classes.
*
*
* This function creates a factor of the appropriate type for the derived processor.
* This function emplaces a factor of the appropriate type for the derived processor.
*/
*/
virtual FactorBasePtr createFactor(FeatureBasePtr _feature_ptr, FeatureBasePtr _feature_other_ptr) = 0;
virtual FactorBasePtr emplaceFactor(FeatureBasePtr _feature_ptr, FeatureBasePtr _feature_other_ptr) = 0;
/** \brief Establish factors between features in Captures \b last and \b origin
/** \brief Establish factors between features in Captures \b last and \b origin
*/
*/
Loading