gtsam  4.0.0
gtsam
Cal3DS2.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
19 #pragma once
20 
21 #include <gtsam/geometry/Cal3DS2_Base.h>
22 
23 namespace gtsam {
24 
32 class GTSAM_EXPORT Cal3DS2 : public Cal3DS2_Base {
33 
34  typedef Cal3DS2_Base Base;
35 
36 public:
37 
38  enum { dimension = 9 };
39 
42 
44  Cal3DS2() : Base() {}
45 
46  Cal3DS2(double fx, double fy, double s, double u0, double v0,
47  double k1, double k2, double p1 = 0.0, double p2 = 0.0) :
48  Base(fx, fy, s, u0, v0, k1, k2, p1, p2) {}
49 
50  virtual ~Cal3DS2() {}
51 
55 
56  Cal3DS2(const Vector &v) : Base(v) {}
57 
61 
63  virtual void print(const std::string& s = "") const ;
64 
66  bool equals(const Cal3DS2& K, double tol = 10e-9) const;
67 
71 
73  Cal3DS2 retract(const Vector& d) const ;
74 
76  Vector localCoordinates(const Cal3DS2& T2) const ;
77 
79  virtual size_t dim() const { return 9 ; } //TODO: make a final dimension variable (also, usually size_t in other classes e.g. Pose2)
80 
82  static size_t Dim() { return 9; } //TODO: make a final dimension variable
83 
87 
89  virtual boost::shared_ptr<Base> clone() const {
90  return boost::shared_ptr<Base>(new Cal3DS2(*this));
91  }
92 
94 
95 
96 private:
97 
100 
102  friend class boost::serialization::access;
103  template<class Archive>
104  void serialize(Archive & ar, const unsigned int /*version*/)
105  {
106  ar & boost::serialization::make_nvp("Cal3DS2",
107  boost::serialization::base_object<Cal3DS2_Base>(*this));
108  }
109 
111 
112 };
113 
114 template<>
115 struct traits<Cal3DS2> : public internal::Manifold<Cal3DS2> {};
116 
117 template<>
118 struct traits<const Cal3DS2> : public internal::Manifold<Cal3DS2> {};
119 
120 }
121 
virtual boost::shared_ptr< Base > clone() const
Definition: Cal3DS2.h:89
Both ManifoldTraits and Testable.
Definition: Manifold.h:120
Definition: Cal3DS2.h:32
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition: Matrix.cpp:141
virtual size_t dim() const
Return dimensions of calibration manifold object.
Definition: Cal3DS2.h:79
Cal3DS2()
Default Constructor with only unit focal length.
Definition: Cal3DS2.h:44
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition: concepts.h:30
static size_t Dim()
Return dimensions of calibration manifold object.
Definition: Cal3DS2.h:82
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
Definition: Cal3DS2_Base.h:39