diff --git a/gtsam/slam/SmartProjectionPoseFactor.h b/gtsam/slam/SmartProjectionPoseFactor.h index 8a70c5ec3..5abfcc312 100644 --- a/gtsam/slam/SmartProjectionPoseFactor.h +++ b/gtsam/slam/SmartProjectionPoseFactor.h @@ -10,7 +10,7 @@ * -------------------------------------------------------------------------- */ /** - * @file SmartProjectionPoseFactor.h + * @file SmartProjectionPoseFactorC.h * @brief Smart factor on poses, assuming camera calibration is fixed * @author Luca Carlone * @author Chris Beall @@ -42,13 +42,13 @@ namespace gtsam { * @addtogroup SLAM */ template -class SmartProjectionPoseFactor: public SmartProjectionFactor< - PinholePose > { +class SmartProjectionPoseFactorC: public SmartProjectionFactor { private: - typedef PinholePose Camera; - typedef SmartProjectionFactor Base; - typedef SmartProjectionPoseFactor This; + typedef SmartProjectionFactor Base; + typedef SmartProjectionPoseFactorC This; + typedef CAMERA Camera; + typedef typename CAMERA::CalibrationType CALIBRATION; protected: @@ -62,7 +62,7 @@ public: /** * Default constructor, only for serialization */ - SmartProjectionPoseFactor() {} + SmartProjectionPoseFactorC() {} /** * Constructor @@ -70,7 +70,7 @@ public: * @param K (fixed) calibration, assumed to be the same for all cameras * @param params parameters for the smart projection factors */ - SmartProjectionPoseFactor( + SmartProjectionPoseFactorC( const SharedNoiseModel& sharedNoiseModel, const boost::shared_ptr K, const SmartProjectionParams& params = SmartProjectionParams()) @@ -84,17 +84,17 @@ public: * @param body_P_sensor pose of the camera in the body frame (optional) * @param params parameters for the smart projection factors */ - SmartProjectionPoseFactor( + SmartProjectionPoseFactorC( const SharedNoiseModel& sharedNoiseModel, const boost::shared_ptr K, const boost::optional body_P_sensor, const SmartProjectionParams& params = SmartProjectionParams()) - : SmartProjectionPoseFactor(sharedNoiseModel, K, params) { + : SmartProjectionPoseFactorC(sharedNoiseModel, K, params) { this->body_P_sensor_ = body_P_sensor; } /** Virtual destructor */ - ~SmartProjectionPoseFactor() override { + ~SmartProjectionPoseFactorC() override { } /** @@ -104,7 +104,7 @@ public: */ void print(const std::string& s = "", const KeyFormatter& keyFormatter = DefaultKeyFormatter) const override { - std::cout << s << "SmartProjectionPoseFactor, z = \n "; + std::cout << s << "SmartProjectionPoseFactorC, z = \n "; Base::print("", keyFormatter); } @@ -161,9 +161,33 @@ public: // end of class declaration /// traits -template -struct traits > : public Testable< - SmartProjectionPoseFactor > { +template +struct traits > : public Testable< + SmartProjectionPoseFactorC > { }; +// legacy smart factor class, only templated on calibration and assuming pinhole +template using SmartProjectionPoseFactor = SmartProjectionPoseFactorC< PinholePose >; + +//template +//using SmartProjectionPoseFactor = SmartProjectionPoseFactorC< PinholePose >; + +//template +//struct SmartProjectionPoseFactor{ +// typedef SmartProjectionPoseFactorC< PinholePose >; +//}; + +//template +//class SmartProjectionPoseFactor{ +// typedef SmartProjectionPoseFactorC< PinholePose >; +//}; + +//typedef typename CAMERA::CalibrationType CALIBRATION; +//template +//class SmartProjectionPoseFactor: public SmartProjectionPoseFactorC< > { +// public: +// private: +//}; +// end + } // \ namespace gtsam