38 #ifndef BSFM_POSE_POSE_H
39 #define BSFM_POSE_POSE_H
41 #include <Eigen/Dense>
42 #include <glog/logging.h>
45 #include "../util/types.h"
49 using Eigen::Matrix3d;
50 using Eigen::Matrix4d;
51 using Eigen::Vector2d;
52 using Eigen::Vector3d;
53 using Eigen::Vector4d;
54 using Eigen::VectorXd;
58 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
64 Pose(
const Matrix3d& R,
const Vector3d& t);
70 Pose(
const Pose& other);
73 Pose(
const Matrix4d& other);
84 const Matrix4d&
Get()
const;
93 void Set(
const Matrix4d& transformation);
103 Vector4d
Project(
const Vector4d&);
113 void Compose(
const Pose& other);
133 const double&
X()
const;
134 const double&
Y()
const;
135 const double&
Z()
const;
146 Pose
Delta(
const Pose& rhs)
const;
149 void Print(
const std::string& prefix = std::string())
const;
Vector3d Translation() const
Pose operator*(const Pose &other) const
void SetTranslation(const Vector3d &translation)
Matrix3d Rotation() const
void Set(const Matrix4d &transformation)
Vector2d ProjectTo2D(const Vector3d &)
Vector4d Project(const Vector4d &)
bool IsApprox(const Pose &) const
void TranslateY(double dy)
void Print(const std::string &prefix=std::string()) const
void TranslateZ(double dz)
void SetRotation(const Matrix3d &rotation)
void Compose(const Pose &other)
::Eigen::Matrix< double, 3, 4 > Matrix34d
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Pose()
double & operator()(int i, int j)
Matrix4d FromAxisAngle(const Vector3d &aa)
void TranslateX(double dx)
Pose Delta(const Pose &rhs) const