diff --git a/include/core/factor/factor_autodiff.h b/include/core/factor/factor_autodiff.h index b51d4cee4482fad97d3ae94512bf7b5ee69392e3..3807d1210081a90c43562377cf266910aad13b6d 100644 --- a/include/core/factor/factor_autodiff.h +++ b/include/core/factor/factor_autodiff.h @@ -107,7 +107,52 @@ class FactorAutodiff : public FactorBase StateBlockPtr _state9Ptr, StateBlockPtr _state10Ptr, StateBlockPtr _state11Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr, + _state6Ptr, + _state7Ptr, + _state8Ptr, + _state9Ptr, + _state10Ptr, + _state11Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr, + StateBlockPtr _state6Ptr, + StateBlockPtr _state7Ptr, + StateBlockPtr _state8Ptr, + StateBlockPtr _state9Ptr, + StateBlockPtr _state10Ptr, + StateBlockPtr _state11Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr,_state9Ptr,_state10Ptr,_state11Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr,_state9Ptr,_state10Ptr,_state11Ptr}) { @@ -413,7 +458,50 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,0> : public Fact StateBlockPtr _state8Ptr, StateBlockPtr _state9Ptr, StateBlockPtr _state10Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr, + _state6Ptr, + _state7Ptr, + _state8Ptr, + _state9Ptr, + _state10Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr, + StateBlockPtr _state6Ptr, + StateBlockPtr _state7Ptr, + StateBlockPtr _state8Ptr, + StateBlockPtr _state9Ptr, + StateBlockPtr _state10Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr,_state9Ptr,_state10Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr,_state9Ptr,_state10Ptr}) { @@ -685,7 +773,48 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,0,0> : public Factor StateBlockPtr _state7Ptr, StateBlockPtr _state8Ptr, StateBlockPtr _state9Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr, + _state6Ptr, + _state7Ptr, + _state8Ptr, + _state9Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr, + StateBlockPtr _state6Ptr, + StateBlockPtr _state7Ptr, + StateBlockPtr _state8Ptr, + StateBlockPtr _state9Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr,_state9Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr,_state9Ptr}) { @@ -947,7 +1076,46 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0,0,0> : public FactorB StateBlockPtr _state6Ptr, StateBlockPtr _state7Ptr, StateBlockPtr _state8Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr, + _state6Ptr, + _state7Ptr, + _state8Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr, + StateBlockPtr _state6Ptr, + StateBlockPtr _state7Ptr, + StateBlockPtr _state8Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr,_state8Ptr}) { @@ -1199,7 +1367,44 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0,0,0> : public FactorBa StateBlockPtr _state5Ptr, StateBlockPtr _state6Ptr, StateBlockPtr _state7Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr, + _state6Ptr, + _state7Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr, + StateBlockPtr _state6Ptr, + StateBlockPtr _state7Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr,_state7Ptr}) { @@ -1440,7 +1645,42 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0,0,0> : public FactorBas StateBlockPtr _state4Ptr, StateBlockPtr _state5Ptr, StateBlockPtr _state6Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr, + _state6Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr, + StateBlockPtr _state6Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr,_state6Ptr}) { @@ -1671,7 +1911,40 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0,0,0> : public FactorBase StateBlockPtr _state3Ptr, StateBlockPtr _state4Ptr, StateBlockPtr _state5Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr, + _state5Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr, + StateBlockPtr _state5Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr,_state5Ptr}) { @@ -1887,7 +2160,38 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,0,0,0,0,0,0,0> : public FactorBase StateBlockPtr _state2Ptr, StateBlockPtr _state3Ptr, StateBlockPtr _state4Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr, + _state4Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr, + StateBlockPtr _state4Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr,_state4Ptr}) { @@ -2093,7 +2397,36 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,B3,0,0,0,0,0,0,0,0> : public FactorBase StateBlockPtr _state1Ptr, StateBlockPtr _state2Ptr, StateBlockPtr _state3Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr, + _state3Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr, + StateBlockPtr _state3Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr,_state3Ptr}) { @@ -2293,7 +2626,34 @@ class FactorAutodiff<FacT,RES,B0,B1,B2,0,0,0,0,0,0,0,0,0> : public FactorBase StateBlockPtr _state0Ptr, StateBlockPtr _state1Ptr, StateBlockPtr _state2Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr, + _state2Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr, + StateBlockPtr _state2Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr,_state2Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr,_state2Ptr}) { @@ -2483,7 +2843,32 @@ class FactorAutodiff<FacT,RES,B0,B1,0,0,0,0,0,0,0,0,0,0> : public FactorBase FactorStatus _status, StateBlockPtr _state0Ptr, StateBlockPtr _state1Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr, + _state1Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr, + StateBlockPtr _state1Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr,_state1Ptr}), state_ptrs_const_({_state0Ptr,_state1Ptr}) { @@ -2662,7 +3047,30 @@ class FactorAutodiff<FacT,RES,B0,0,0,0,0,0,0,0,0,0,0,0> : public FactorBase bool _apply_loss_function, FactorStatus _status, StateBlockPtr _state0Ptr) : - FactorBase(_tp, _top, _feature_ptr, _frame_other_ptr, _capture_other_ptr, _feature_other_ptr, _landmark_other_ptr, _processor_ptr, _apply_loss_function, _status), + FactorAutodiff(_tp, + _top, + _feature_ptr, + FrameBasePtrList({_frame_other_ptr}), + CaptureBasePtrList({_capture_other_ptr}), + FeatureBasePtrList({_feature_other_ptr}), + LandmarkBasePtrList({_landmark_other_ptr}), + _processor_ptr, + _apply_loss_function, + _status, + _state0Ptr){} + + FactorAutodiff(const std::string& _tp, + const FactorTopology& _top, + const FeatureBasePtr& _feature_ptr, + const FrameBasePtrList& _frame_other_list, + const CaptureBasePtrList& _capture_other_list, + const FeatureBasePtrList& _feature_other_list, + const LandmarkBasePtrList& _landmark_other_list, + const ProcessorBasePtr& _processor_ptr, + bool _apply_loss_function, + FactorStatus _status, + StateBlockPtr _state0Ptr) : + FactorBase(_tp, _top, _feature_ptr, _frame_other_list, _capture_other_list, _feature_other_list, _landmark_other_list, _processor_ptr, _apply_loss_function, _status), state_ptrs_({_state0Ptr}), state_ptrs_const_({_state0Ptr}) {