modernized default constructors

release/4.3a0
Varun Agrawal 2020-12-02 05:45:20 -05:00
parent 9bc63fa5a9
commit 04597feaa4
9 changed files with 45 additions and 45 deletions

View File

@ -68,7 +68,9 @@ void calibrateJacobians(const Cal& calibration, const Point2& pn,
*/ */
class GTSAM_EXPORT Cal3 { class GTSAM_EXPORT Cal3 {
protected: protected:
double fx_, fy_, s_, u0_, v0_; ///< focal length, skew and principal point double fx_ = 1.0f, fy_ = 1.0f; ///< focal length
double s_ = 0.0f; ///< skew
double u0_ = 0.0f, v0_ = 0.0f; ///< principal point
public: public:
enum { dimension = 5 }; enum { dimension = 5 };
@ -79,14 +81,14 @@ class GTSAM_EXPORT Cal3 {
/// @{ /// @{
/// Create a default calibration that leaves coordinates unchanged /// Create a default calibration that leaves coordinates unchanged
Cal3() : fx_(1), fy_(1), s_(0), u0_(0), v0_(0) {} Cal3() = default;
/// constructor from doubles /// constructor from doubles
Cal3(double fx, double fy, double s, double u0, double v0) Cal3(double fx, double fy, double s, double u0, double v0)
: fx_(fx), fy_(fy), s_(s), u0_(u0), v0_(v0) {} : fx_(fx), fy_(fy), s_(s), u0_(u0), v0_(v0) {}
/// constructor from vector /// constructor from vector
Cal3(const Vector& d) Cal3(const Vector5& d)
: fx_(d(0)), fy_(d(1)), s_(d(2)), u0_(d(3)), v0_(d(4)) {} : fx_(d(0)), fy_(d(1)), s_(d(2)), u0_(d(3)), v0_(d(4)) {}
/** /**
@ -162,7 +164,7 @@ class GTSAM_EXPORT Cal3 {
Matrix3 matrix() const { return K(); } Matrix3 matrix() const { return K(); }
#endif #endif
/// return inverted calibration matrix inv(K) /// Return inverted calibration matrix inv(K)
Matrix3 matrix_inverse() const { Matrix3 matrix_inverse() const {
const double fxy = fx_ * fy_, sv0 = s_ * v0_, fyu0 = fy_ * u0_; const double fxy = fx_ * fy_, sv0 = s_ * v0_, fyu0 = fy_ * u0_;
Matrix3 K_inverse; Matrix3 K_inverse;

View File

@ -31,12 +31,12 @@ namespace gtsam {
class GTSAM_EXPORT Cal3Bundler : public Cal3 { class GTSAM_EXPORT Cal3Bundler : public Cal3 {
private: private:
double f_; ///< focal length double f_ = 1.0f; ///< focal length
double k1_, k2_; ///< radial distortion double k1_ = 0.0f, k2_ = 0.0f; ///< radial distortion
double tol_; ///< tolerance value when calibrating double tol_ = 1e-5; ///< tolerance value when calibrating
// NOTE: image center parameters (u0, v0) are not optimized // NOTE: image center parameters (u0, v0) are not optimized
// but are constants. // but are treated as constants.
public: public:
@ -46,7 +46,7 @@ class GTSAM_EXPORT Cal3Bundler : public Cal3 {
/// @{ /// @{
/// Default constructor /// Default constructor
Cal3Bundler() : Cal3(), f_(1), k1_(0), k2_(0), tol_(1e-5) {} Cal3Bundler() = default;
/** /**
* Constructor * Constructor

View File

@ -42,11 +42,11 @@ public:
/// @{ /// @{
/// Default Constructor with only unit focal length /// Default Constructor with only unit focal length
Cal3DS2() : Base() {} Cal3DS2() = default;
Cal3DS2(double fx, double fy, double s, double u0, double v0, Cal3DS2(double fx, double fy, double s, double u0, double v0, double k1,
double k1, double k2, double p1 = 0.0, double p2 = 0.0, double tol = 1e-5) : double k2, double p1 = 0.0, double p2 = 0.0, double tol = 1e-5)
Base(fx, fy, s, u0, v0, k1, k2, p1, p2, tol) {} : Base(fx, fy, s, u0, v0, k1, k2, p1, p2, tol) {}
virtual ~Cal3DS2() {} virtual ~Cal3DS2() {}
@ -54,7 +54,7 @@ public:
/// @name Advanced Constructors /// @name Advanced Constructors
/// @{ /// @{
Cal3DS2(const Vector &v) : Base(v) {} Cal3DS2(const Vector9 &v) : Base(v) {}
/// @} /// @}
/// @name Testable /// @name Testable

View File

@ -41,9 +41,9 @@ namespace gtsam {
*/ */
class GTSAM_EXPORT Cal3DS2_Base : public Cal3 { class GTSAM_EXPORT Cal3DS2_Base : public Cal3 {
protected: protected:
double k1_, k2_; ///< radial 2nd-order and 4th-order double k1_ = 0.0f, k2_ = 0.0f; ///< radial 2nd-order and 4th-order
double p1_, p2_; ///< tangential distortion double p1_ = 0.0f, p2_ = 0.0f; ///< tangential distortion
double tol_ = 1e-5; ///< tolerance value when calibrating double tol_ = 1e-5; ///< tolerance value when calibrating
public: public:
enum { dimension = 9 }; enum { dimension = 9 };
@ -52,7 +52,7 @@ class GTSAM_EXPORT Cal3DS2_Base : public Cal3 {
/// @{ /// @{
/// Default Constructor with only unit focal length /// Default Constructor with only unit focal length
Cal3DS2_Base() : Cal3(), k1_(0), k2_(0), p1_(0), p2_(0), tol_(1e-5) {} Cal3DS2_Base() = default;
Cal3DS2_Base(double fx, double fy, double s, double u0, double v0, double k1, Cal3DS2_Base(double fx, double fy, double s, double u0, double v0, double k1,
double k2, double p1 = 0.0, double p2 = 0.0, double tol = 1e-5) double k2, double p1 = 0.0, double p2 = 0.0, double tol = 1e-5)
@ -69,7 +69,7 @@ class GTSAM_EXPORT Cal3DS2_Base : public Cal3 {
/// @name Advanced Constructors /// @name Advanced Constructors
/// @{ /// @{
Cal3DS2_Base(const Vector& v) Cal3DS2_Base(const Vector9& v)
: Cal3(v(0), v(1), v(2), v(3), v(4)), : Cal3(v(0), v(1), v(2), v(3), v(4)),
k1_(v(5)), k1_(v(5)),
k2_(v(6)), k2_(v(6)),

View File

@ -48,8 +48,9 @@ namespace gtsam {
*/ */
class GTSAM_EXPORT Cal3Fisheye : public Cal3 { class GTSAM_EXPORT Cal3Fisheye : public Cal3 {
private: private:
double k1_, k2_, k3_, k4_; ///< fisheye distortion coefficients double k1_ = 0.0f, k2_ = 0.0f; ///< fisheye distortion coefficients
double tol_ = 1e-5; ///< tolerance value when calibrating double k3_ = 0.0f, k4_ = 0.0f; ///< fisheye distortion coefficients
double tol_ = 1e-5; ///< tolerance value when calibrating
public: public:
enum { dimension = 9 }; enum { dimension = 9 };
@ -60,7 +61,7 @@ class GTSAM_EXPORT Cal3Fisheye : public Cal3 {
/// @{ /// @{
/// Default Constructor with only unit focal length /// Default Constructor with only unit focal length
Cal3Fisheye() : Cal3(), k1_(0), k2_(0), k3_(0), k4_(0), tol_(1e-5) {} Cal3Fisheye() = default;
Cal3Fisheye(const double fx, const double fy, const double s, const double u0, Cal3Fisheye(const double fx, const double fy, const double s, const double u0,
const double v0, const double k1, const double k2, const double v0, const double k1, const double k2,

View File

@ -25,10 +25,6 @@
namespace gtsam { namespace gtsam {
/* ************************************************************************* */
Cal3Unified::Cal3Unified(const Vector& v)
: Base(v(0), v(1), v(2), v(3), v(4), v(5), v(6), v(7), v(8)), xi_(v(9)) {}
/* ************************************************************************* */ /* ************************************************************************* */
Vector10 Cal3Unified::vector() const { Vector10 Cal3Unified::vector() const {
Vector10 v; Vector10 v;
@ -136,7 +132,7 @@ Cal3Unified Cal3Unified::retract(const Vector& d) const {
} }
/* ************************************************************************* */ /* ************************************************************************* */
Vector10 Cal3Unified::localCoordinates(const Cal3Unified& T2) const { Vector Cal3Unified::localCoordinates(const Cal3Unified& T2) const {
return T2.vector() - vector(); return T2.vector() - vector();
} }

View File

@ -45,11 +45,10 @@ class GTSAM_EXPORT Cal3Unified : public Cal3DS2_Base {
using This = Cal3Unified; using This = Cal3Unified;
using Base = Cal3DS2_Base; using Base = Cal3DS2_Base;
private: private:
double xi_ = 0.0f; ///< mirror parameter
double xi_; ///< mirror parameter public:
public:
enum { dimension = 10 }; enum { dimension = 10 };
@ -57,11 +56,11 @@ public:
/// @{ /// @{
/// Default Constructor with only unit focal length /// Default Constructor with only unit focal length
Cal3Unified() : Base(), xi_(0) {} Cal3Unified() = default;
Cal3Unified(double fx, double fy, double s, double u0, double v0, Cal3Unified(double fx, double fy, double s, double u0, double v0, double k1,
double k1, double k2, double p1 = 0.0, double p2 = 0.0, double xi = 0.0) : double k2, double p1 = 0.0, double p2 = 0.0, double xi = 0.0)
Base(fx, fy, s, u0, v0, k1, k2, p1, p2), xi_(xi) {} : Base(fx, fy, s, u0, v0, k1, k2, p1, p2), xi_(xi) {}
virtual ~Cal3Unified() {} virtual ~Cal3Unified() {}
@ -69,7 +68,8 @@ public:
/// @name Advanced Constructors /// @name Advanced Constructors
/// @{ /// @{
Cal3Unified(const Vector &v) ; Cal3Unified(const Vector10& v)
: Base(v(0), v(1), v(2), v(3), v(4), v(5), v(6), v(7), v(8)), xi_(v(9)) {}
/// @} /// @}
/// @name Testable /// @name Testable
@ -88,6 +88,9 @@ public:
/// mirror parameter /// mirror parameter
inline double xi() const { return xi_;} inline double xi() const { return xi_;}
/// Return all parameters as a vector
Vector10 vector() const ;
/** /**
* convert intrinsic coordinates xy to image coordinates uv * convert intrinsic coordinates xy to image coordinates uv
* @param p point in intrinsic coordinates * @param p point in intrinsic coordinates
@ -117,7 +120,7 @@ public:
Cal3Unified retract(const Vector& d) const ; Cal3Unified retract(const Vector& d) const ;
/// Given a different calibration, calculate update to obtain it /// Given a different calibration, calculate update to obtain it
Vector10 localCoordinates(const Cal3Unified& T2) const ; Vector localCoordinates(const Cal3Unified& T2) const ;
/// Return dimensions of calibration manifold object /// Return dimensions of calibration manifold object
virtual size_t dim() const { return dimension ; } virtual size_t dim() const { return dimension ; }
@ -125,9 +128,6 @@ public:
/// Return dimensions of calibration manifold object /// Return dimensions of calibration manifold object
static size_t Dim() { return dimension; } static size_t Dim() { return dimension; }
/// Return all parameters as a vector
Vector10 vector() const ;
/// @} /// @}
private: private:

View File

@ -42,14 +42,14 @@ class GTSAM_EXPORT Cal3_S2 : public Cal3 {
/// @{ /// @{
/// Create a default calibration that leaves coordinates unchanged /// Create a default calibration that leaves coordinates unchanged
Cal3_S2() : Cal3() {} Cal3_S2() = default;
/// constructor from doubles /// constructor from doubles
Cal3_S2(double fx, double fy, double s, double u0, double v0) Cal3_S2(double fx, double fy, double s, double u0, double v0)
: Cal3(fx, fy, s, u0, v0) {} : Cal3(fx, fy, s, u0, v0) {}
/// constructor from vector /// constructor from vector
Cal3_S2(const Vector& d) : Cal3(d) {} Cal3_S2(const Vector5& d) : Cal3(d) {}
/** /**
* Easy constructor, takes fov in degrees, asssumes zero skew, unit aspect * Easy constructor, takes fov in degrees, asssumes zero skew, unit aspect

View File

@ -29,7 +29,7 @@ namespace gtsam {
*/ */
class GTSAM_EXPORT Cal3_S2Stereo : public Cal3_S2 { class GTSAM_EXPORT Cal3_S2Stereo : public Cal3_S2 {
private: private:
double b_; double b_ = 1.0f; ///< Stereo baseline.
public: public:
@ -42,7 +42,7 @@ namespace gtsam {
/// @ /// @
/// default calibration leaves coordinates unchanged /// default calibration leaves coordinates unchanged
Cal3_S2Stereo() : Cal3_S2(1, 1, 0, 0, 0), b_(1.0) {} Cal3_S2Stereo() = default;
/// constructor from doubles /// constructor from doubles
Cal3_S2Stereo(double fx, double fy, double s, double u0, double v0, Cal3_S2Stereo(double fx, double fy, double s, double u0, double v0,
@ -50,7 +50,7 @@ namespace gtsam {
: Cal3_S2(fx, fy, s, u0, v0), b_(b) {} : Cal3_S2(fx, fy, s, u0, v0), b_(b) {}
/// constructor from vector /// constructor from vector
Cal3_S2Stereo(const Vector& d) Cal3_S2Stereo(const Vector6& d)
: Cal3_S2(d(0), d(1), d(2), d(3), d(4)), b_(d(5)) {} : Cal3_S2(d(0), d(1), d(2), d(3), d(4)), b_(d(5)) {}
/// easy constructor; field-of-view in degrees, assumes zero skew /// easy constructor; field-of-view in degrees, assumes zero skew
@ -61,6 +61,7 @@ namespace gtsam {
/// @name Testable /// @name Testable
/// @{ /// @{
/// print with optional string
void print(const std::string& s = "") const override; void print(const std::string& s = "") const override;
/// Check if equal up to specified tolerance /// Check if equal up to specified tolerance