29 #include <gtsam/dllexport.h> 47 mutable std::optional<Matrix32> B_;
48 mutable std::optional<Matrix62> H_B_;
51 mutable std::mutex B_mutex_;
69 explicit Unit3(
const Vector3& p);
72 Unit3(
double x,
double y,
double z);
101 static Unit3 Random(std::mt19937 & rng);
108 friend std::ostream& operator<<(std::ostream& os,
const Unit3& pair);
111 void print(
const std::string& s = std::string())
const;
131 Matrix3 skew()
const;
162 return Unit3(p_.cross(q.p_));
167 return point3().cross(q);
176 inline static size_t Dim() {
181 inline size_t dim()
const {
194 Vector2 localCoordinates(
const Unit3& s)
const;
202 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 204 friend class boost::serialization::access;
205 template<
class ARCHIVE>
206 void serialize(ARCHIVE & ar,
const unsigned int ) {
207 ar & BOOST_SERIALIZATION_NVP(p_);
Both ManifoldTraits and Testable.
Definition: Manifold.h:117
Unit3(const Unit3 &u)
Copy constructor.
Definition: Unit3.h:79
double dot(const V1 &a, const V2 &b)
Definition: Vector.h:195
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
Vector2 Point2
Definition: Point2.h:32
bool equals(const Unit3 &s, double tol=1e-9) const
The equals function with tolerance.
Definition: Unit3.h:114
size_t dim() const
Dimensionality of tangent space = 2 DOF.
Definition: Unit3.h:181
Represents a 3D point on a unit sphere.
Definition: Unit3.h:42
Point3 cross(const Point3 &q) const
Cross-product w Point3.
Definition: Unit3.h:166
Base class and basic functions for Manifold types.
Unit3 & operator=(const Unit3 &u)
Copy assignment.
Definition: Unit3.h:84
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
static size_t Dim()
Dimensionality of tangent space = 2 DOF.
Definition: Unit3.h:176
friend Point3 operator*(double s, const Unit3 &d)
Return scaled direction as Point3.
Definition: Unit3.h:140
Unit3()
Default constructor.
Definition: Unit3.h:64
CoordinatesMode
Definition: Unit3.h:185
typedef and functions to augment Eigen's MatrixXd
bool equal_with_abs_tol(const Eigen::DenseBase< MATRIX > &A, const Eigen::DenseBase< MATRIX > &B, double tol=1e-9)
Definition: Matrix.h:80
Definition: chartTesting.h:28
typedef and functions to augment Eigen's VectorXd
Definition: OptionalJacobian.h:38
Unit3 cross(const Unit3 &q) const
Cross-product between two Unit3s.
Definition: Unit3.h:161
serialization for Vectors
Use the exponential map to retract.
Definition: Unit3.h:186
#define GTSAM_MAKE_ALIGNED_OPERATOR_NEW
Definition: types.h:284
Vector3 Point3
Definition: Point3.h:38