Frame/Capture/Feature/Landmark Other as list/vectors in FactorBase
Right now, the constructor of FactorBase is this:
FactorBase(const std::string& _tp,
const FrameBasePtr& _frame_other_ptr,
const CaptureBasePtr& _capture_other_ptr,
const FeatureBasePtr& _feature_other_ptr,
const LandmarkBasePtr& _landmark_other_ptr,
const ProcessorBasePtr& _processor_ptr,
bool _apply_loss_function,
FactorStatus _status = FAC_ACTIVE)<code>
However, some actually constrain more than one X_other. For instance in factor_autodiff_trifocal, only one of the feature is selected as being "the" feature_other. I have the same problem in plugin bodydynamics and this breaks the Problem::check
function (stablocks NOT FOUND).
If propose using lists or vectors instead:
FactorBase(const std::string& _tp,
const std::list<FrameBasePtr>& _frame_other_list_ptr,
const std::list<CaptureBasePtr>& _capture_other_list_ptr,
const std::list<FeatureBasePtr>& _feature_other_list_ptr,
const std::list<LandmarkBasePtr>& _landmark_other_list_ptr,
const ProcessorBasePtr& _processor_ptr,
bool _apply_loss_function,
FactorStatus _status = FAC_ACTIVE);<code>