@@ -231,7 +231,7 @@ virtual class Value {
231231};
232232
233233#include < gtsam/base/GenericValue.h>
234- template <T = {Vector, Matrix, gtsam::Point2, gtsam::Point3, gtsam::Rot2, gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::StereoPoint2, gtsam::Cal3_S2, gtsam::Cal3DS2, gtsam::Cal3Bundler, gtsam::EssentialMatrix, gtsam::CalibratedCamera, gtsam::imuBias::ConstantBias}>
234+ template <T = {Vector, Matrix, gtsam::Point2, gtsam::Point3, gtsam::Rot2, gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::StereoPoint2, gtsam::Cal3_S2, gtsam::Cal3DS2, gtsam::Cal3Bundler, gtsam::Cal3Fisheye, gtsam::Cal3Unified, gtsam:: EssentialMatrix, gtsam::CalibratedCamera, gtsam::imuBias::ConstantBias}>
235235virtual class GenericValue : gtsam::Value {
236236 void serializable () const ;
237237};
@@ -911,6 +911,12 @@ virtual class Cal3Unified : gtsam::Cal3DS2_Base {
911911 gtsam::Cal3Unified retract (Vector v) const ;
912912 Vector localCoordinates (const gtsam::Cal3Unified& c) const ;
913913
914+ // Action on Point2
915+ // Note: the signature of this functions differ from the functions
916+ // with equal name in the base class.
917+ gtsam::Point2 calibrate (const gtsam::Point2& p) const ;
918+ gtsam::Point2 uncalibrate (const gtsam::Point2& p) const ;
919+
914920 // enabling serialization functionality
915921 void serialize () const ;
916922
@@ -978,6 +984,52 @@ class Cal3Bundler {
978984 void pickle () const ;
979985};
980986
987+ #include < gtsam/geometry/Cal3Fisheye.h>
988+ class Cal3Fisheye {
989+ // Standard Constructors
990+ Cal3Fisheye ();
991+ Cal3Fisheye (double fx, double fy, double s, double u0, double v0, double k1, double k2, double k3, double k4);
992+ Cal3Fisheye (double fx, double fy, double s, double u0, double v0, double k1, double k2, double k3, double k4, double tol);
993+ Cal3Fisheye (Vector v);
994+
995+ // Testable
996+ void print (string s = " Cal3Fisheye" ) const ;
997+ bool equals (const gtsam::Cal3Fisheye& rhs, double tol) const ;
998+
999+ // Manifold
1000+ static size_t Dim ();
1001+ size_t dim () const ;
1002+ gtsam::Cal3Fisheye retract (Vector v) const ;
1003+ Vector localCoordinates (const gtsam::Cal3Fisheye& c) const ;
1004+
1005+ // Action on Point2
1006+ gtsam::Point2 calibrate (const gtsam::Point2& p) const ;
1007+ gtsam::Point2 uncalibrate (const gtsam::Point2& p) const ;
1008+
1009+ // Standard Interface
1010+ double fx () const ;
1011+ double fy () const ;
1012+ double skew () const ;
1013+ double k1 () const ;
1014+ double k2 () const ;
1015+ double k3 () const ;
1016+ double k4 () const ;
1017+ double px () const ;
1018+ double py () const ;
1019+ gtsam::Point2 principalPoint () const ;
1020+ Vector vector () const ;
1021+ Vector k () const ;
1022+ Matrix K () const ;
1023+ Matrix inverse () const ;
1024+
1025+ // enabling serialization functionality
1026+ void serialize () const ;
1027+
1028+ // enable pickling in python
1029+ void pickle () const ;
1030+ };
1031+
1032+
9811033#include < gtsam/geometry/CalibratedCamera.h>
9821034class CalibratedCamera {
9831035 // Standard Constructors and Named Constructors
@@ -1086,6 +1138,7 @@ typedef gtsam::PinholeCamera<gtsam::Cal3_S2> PinholeCameraCal3_S2;
10861138typedef gtsam::PinholeCamera<gtsam::Cal3DS2> PinholeCameraCal3DS2;
10871139typedef gtsam::PinholeCamera<gtsam::Cal3Unified> PinholeCameraCal3Unified;
10881140typedef gtsam::PinholeCamera<gtsam::Cal3Bundler> PinholeCameraCal3Bundler;
1141+ typedef gtsam::PinholeCamera<gtsam::Cal3Fisheye> PinholeCameraCal3Fisheye;
10891142
10901143template <T>
10911144class CameraSet {
@@ -1146,7 +1199,13 @@ gtsam::Point3 triangulatePoint3(const gtsam::CameraSetCal3_S2& cameras,
11461199gtsam::Point3 triangulatePoint3 (const gtsam::CameraSetCal3Bundler& cameras,
11471200 const gtsam::Point2Vector& measurements, double rank_tol,
11481201 bool optimize);
1149-
1202+ gtsam::Point3 triangulatePoint3 (const gtsam::CameraSetCal3Fisheye& cameras,
1203+ const gtsam::Point2Vector& measurements, double rank_tol,
1204+ bool optimize);
1205+ gtsam::Point3 triangulatePoint3 (const gtsam::CameraSetCal3Unified& cameras,
1206+ const gtsam::Point2Vector& measurements, double rank_tol,
1207+ bool optimize);
1208+
11501209// *************************************************************************
11511210// Symbolic
11521211// *************************************************************************
@@ -2119,8 +2178,11 @@ class NonlinearFactorGraph {
21192178 template <T = {double , Vector, gtsam::Point2, gtsam::StereoPoint2,
21202179 gtsam::Point3, gtsam::Rot2, gtsam::SO3, gtsam::SO4,
21212180 gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::Cal3_S2,
2181+ gtsam::Cal3Fisheye, gtsam::Cal3Unified,
21222182 gtsam::CalibratedCamera, gtsam::PinholeCameraCal3_S2,
2123- gtsam::PinholeCamera<gtsam::Cal3Bundler>,
2183+ gtsam::PinholeCameraCal3Bundler,
2184+ gtsam::PinholeCameraCal3Fisheye,
2185+ gtsam::PinholeCameraCal3Unified,
21242186 gtsam::imuBias::ConstantBias}>
21252187 void addPrior (size_t key, const T& prior,
21262188 const gtsam::noiseModel::Base* noiseModel);
@@ -2253,9 +2315,13 @@ class Values {
22532315 void insert (size_t j, const gtsam::Cal3_S2& cal3_s2);
22542316 void insert (size_t j, const gtsam::Cal3DS2& cal3ds2);
22552317 void insert (size_t j, const gtsam::Cal3Bundler& cal3bundler);
2318+ void insert (size_t j, const gtsam::Cal3Fisheye& cal3fisheye);
2319+ void insert (size_t j, const gtsam::Cal3Unified& cal3unified);
22562320 void insert (size_t j, const gtsam::EssentialMatrix& essential_matrix);
22572321 void insert (size_t j, const gtsam::PinholeCameraCal3_S2& simple_camera);
2258- void insert (size_t j, const gtsam::PinholeCamera<gtsam::Cal3Bundler>& camera);
2322+ void insert (size_t j, const gtsam::PinholeCameraCal3Bundler& camera);
2323+ void insert (size_t j, const gtsam::PinholeCameraCal3Fisheye& camera);
2324+ void insert (size_t j, const gtsam::PinholeCameraCal3Unified& camera);
22592325 void insert (size_t j, const gtsam::imuBias::ConstantBias& constant_bias);
22602326 void insert (size_t j, const gtsam::NavState& nav_state);
22612327 void insert (size_t j, double c);
@@ -2273,9 +2339,13 @@ class Values {
22732339 void update (size_t j, const gtsam::Cal3_S2& cal3_s2);
22742340 void update (size_t j, const gtsam::Cal3DS2& cal3ds2);
22752341 void update (size_t j, const gtsam::Cal3Bundler& cal3bundler);
2342+ void update (size_t j, const gtsam::Cal3Fisheye& cal3fisheye);
2343+ void update (size_t j, const gtsam::Cal3Unified& cal3unified);
22762344 void update (size_t j, const gtsam::EssentialMatrix& essential_matrix);
22772345 void update (size_t j, const gtsam::PinholeCameraCal3_S2& simple_camera);
2278- void update (size_t j, const gtsam::PinholeCamera<gtsam::Cal3Bundler>& camera);
2346+ void update (size_t j, const gtsam::PinholeCameraCal3Bundler& camera);
2347+ void update (size_t j, const gtsam::PinholeCameraCal3Fisheye& camera);
2348+ void update (size_t j, const gtsam::PinholeCameraCal3Unified& camera);
22792349 void update (size_t j, const gtsam::imuBias::ConstantBias& constant_bias);
22802350 void update (size_t j, const gtsam::NavState& nav_state);
22812351 void update (size_t j, Vector vector);
@@ -2295,9 +2365,13 @@ class Values {
22952365 gtsam::Cal3_S2,
22962366 gtsam::Cal3DS2,
22972367 gtsam::Cal3Bundler,
2368+ gtsam::Cal3Fisheye,
2369+ gtsam::Cal3Unified,
22982370 gtsam::EssentialMatrix,
22992371 gtsam::PinholeCameraCal3_S2,
2300- gtsam::PinholeCamera<gtsam::Cal3Bundler>,
2372+ gtsam::PinholeCameraCal3Bundler,
2373+ gtsam::PinholeCameraCal3Fisheye,
2374+ gtsam::PinholeCameraCal3Unified,
23012375 gtsam::imuBias::ConstantBias,
23022376 gtsam::NavState,
23032377 Vector,
@@ -2604,7 +2678,9 @@ class ISAM2 {
26042678 template <VALUE = {gtsam::Point2, gtsam::Rot2, gtsam::Pose2, gtsam::Point3,
26052679 gtsam::Rot3, gtsam::Pose3, gtsam::Cal3_S2, gtsam::Cal3DS2,
26062680 gtsam::Cal3Bundler, gtsam::EssentialMatrix,
2607- gtsam::PinholeCameraCal3_S2, gtsam::PinholeCamera<gtsam::Cal3Bundler>,
2681+ gtsam::PinholeCameraCal3_S2, gtsam::PinholeCameraCal3Bundler,
2682+ gtsam::Cal3Fisheye, gtsam::Cal3Unified,
2683+ gtsam::PinholeCameraCal3Fisheye, gtsam::PinholeCameraCal3Unified,
26082684 Vector, Matrix}>
26092685 VALUE calculateEstimate (size_t key) const ;
26102686 gtsam::Values calculateBestEstimate () const ;
@@ -2656,10 +2732,14 @@ template <T = {double,
26562732 gtsam::Cal3_S2,
26572733 gtsam::Cal3DS2,
26582734 gtsam::Cal3Bundler,
2735+ gtsam::Cal3Fisheye,
2736+ gtsam::Cal3Unified,
26592737 gtsam::CalibratedCamera,
26602738 gtsam::PinholeCameraCal3_S2,
26612739 gtsam::imuBias::ConstantBias,
2662- gtsam::PinholeCamera<gtsam::Cal3Bundler>}>
2740+ gtsam::PinholeCameraCal3Bundler,
2741+ gtsam::PinholeCameraCal3Fisheye,
2742+ gtsam::PinholeCameraCal3Unified}>
26632743virtual class PriorFactor : gtsam::NoiseModelFactor {
26642744 PriorFactor (size_t key, const T& prior, const gtsam::noiseModel::Base* noiseModel);
26652745 T prior () const ;
@@ -2801,6 +2881,8 @@ virtual class GenericProjectionFactor : gtsam::NoiseModelFactor {
28012881};
28022882typedef gtsam::GenericProjectionFactor<gtsam::Pose3, gtsam::Point3, gtsam::Cal3_S2> GenericProjectionFactorCal3_S2;
28032883typedef gtsam::GenericProjectionFactor<gtsam::Pose3, gtsam::Point3, gtsam::Cal3DS2> GenericProjectionFactorCal3DS2;
2884+ typedef gtsam::GenericProjectionFactor<gtsam::Pose3, gtsam::Point3, gtsam::Cal3Fisheye> GenericProjectionFactorCal3Fisheye;
2885+ typedef gtsam::GenericProjectionFactor<gtsam::Pose3, gtsam::Point3, gtsam::Cal3Unified> GenericProjectionFactorCal3Unified;
28042886
28052887
28062888#include < gtsam/slam/GeneralSFMFactor.h>
@@ -2811,9 +2893,11 @@ virtual class GeneralSFMFactor : gtsam::NoiseModelFactor {
28112893};
28122894typedef gtsam::GeneralSFMFactor<gtsam::PinholeCameraCal3_S2, gtsam::Point3> GeneralSFMFactorCal3_S2;
28132895typedef gtsam::GeneralSFMFactor<gtsam::PinholeCameraCal3DS2, gtsam::Point3> GeneralSFMFactorCal3DS2;
2814- typedef gtsam::GeneralSFMFactor<gtsam::PinholeCamera<gtsam::Cal3Bundler>, gtsam::Point3> GeneralSFMFactorCal3Bundler;
2896+ typedef gtsam::GeneralSFMFactor<gtsam::PinholeCameraCal3Bundler, gtsam::Point3> GeneralSFMFactorCal3Bundler;
2897+ typedef gtsam::GeneralSFMFactor<gtsam::PinholeCameraCal3Fisheye, gtsam::Point3> GeneralSFMFactorCal3Fisheye;
2898+ typedef gtsam::GeneralSFMFactor<gtsam::PinholeCameraCal3Unified, gtsam::Point3> GeneralSFMFactorCal3Unified;
28152899
2816- template <CALIBRATION = {gtsam::Cal3_S2, gtsam::Cal3DS2, gtsam::Cal3Bundler}>
2900+ template <CALIBRATION = {gtsam::Cal3_S2, gtsam::Cal3DS2, gtsam::Cal3Bundler, gtsam::Cal3Fisheye, gtsam::Cal3Unified }>
28172901virtual class GeneralSFMFactor2 : gtsam::NoiseModelFactor {
28182902 GeneralSFMFactor2 (const gtsam::Point2& measured, const gtsam::noiseModel::Base* model, size_t poseKey, size_t landmarkKey, size_t calibKey);
28192903 gtsam::Point2 measured () const ;
0 commit comments