Representation for a 3D pose (6 degrees of freedom). More...
#include <legacy_pose3d.hpp>
Public Types | |
typedef ecl::linear_algebra::Matrix< Float, 3, 3 > | RotationMatrix |
The type used to represent rotation matrices. More... | |
typedef ecl::linear_algebra::Matrix< Float, 3, 1 > | Translation |
The type used to represent translations. More... | |
Public Member Functions | |
LegacyPose3D< Float > | inverse () const |
Calculate the inverse pose. More... | |
LegacyPose3D () | |
Initialise with zero rotation and zero translation. More... | |
template<typename Trans > | |
LegacyPose3D (const ecl::linear_algebra::AngleAxis< Float > &angle_axis, const ecl::linear_algebra::MatrixBase< Trans > &translation) | |
Initialise from an eigen AngleAxis and a translation. More... | |
template<typename Rot , typename Trans > | |
LegacyPose3D (const ecl::linear_algebra::EigenBase< Rot > &rotation, const ecl::linear_algebra::EigenBase< Trans > &translation) | |
Initialise with rotation matrix and translation. More... | |
template<typename Trans > | |
LegacyPose3D (const ecl::linear_algebra::Quaternion< Float > &quaternion, const ecl::linear_algebra::MatrixBase< Trans > &translation) | |
Initialise from an eigen Quaternion and a translation. More... | |
template<enum Pose2DStorageType Storage_> | |
LegacyPose3D (const LegacyPose2D< Float, Storage_ > &pose) | |
Initialise from a 2D pose. More... | |
LegacyPose3D (const LegacyPose3D< Float > &pose) | |
Copy constructor for 3d poses. More... | |
template<typename Float_ > | |
LegacyPose3D< Float > | operator* (const LegacyPose3D< Float_ > &pose) const |
Combine this pose with the incoming pose. More... | |
template<typename Float_ > | |
LegacyPose3D< Float > & | operator*= (const LegacyPose3D< Float_ > &pose) |
Transform this pose by the specified input pose. More... | |
template<enum Pose2DStorageType Storage_> | |
LegacyPose3D< Float > & | operator= (const LegacyPose2D< Float, Storage_ > &pose) |
Assign from another Pose2D instance. More... | |
LegacyPose3D< Float > & | operator= (const LegacyPose3D< Float > &pose) |
Assign from another Pose2D instance. More... | |
template<typename Float_ > | |
LegacyPose3D< Float > | relative (const LegacyPose3D< Float_ > &pose) const |
Relative pose between this pose and another. More... | |
RotationMatrix & | rotation () |
const RotationMatrix & | rotation () const |
Return a mutable handle to the translation vector. More... | |
void | rotation (const RotationMatrix &rotation) |
Set the rotational component. More... | |
Translation & | translation () |
Return a mutable handle to the rotational storage component. More... | |
const Translation & | translation () const |
Return a const handle to the rotational storage component. More... | |
template<typename Trans > | |
void | translation (const ecl::linear_algebra::MatrixBase< Trans > &translation) |
Set the translation vector. More... | |
virtual | ~LegacyPose3D () |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Float | Scalar |
Eigen style declaration of the element type. More... | |
Private Attributes | |
RotationMatrix | rot |
Translation | trans |
Friends | |
template<typename OutputStream , typename Float_ > | |
OutputStream & | operator<< (OutputStream &ostream, const LegacyPose3D< Float_ > &pose) |
Insertion operator for output streams. More... | |
Representation for a 3D pose (6 degrees of freedom).
This represents a transformation typical of that of an object in 3D, that is, it has 3 translational degrees of freedom and 3 rotational degrees of freedom. Default storage type for rotations is the rotation matrix. We may think about a quaternion storage type in the future.
Float | : must be a float type (e.g. float, double, float32, float64) |
Definition at line 66 of file legacy_pose3d.hpp.
typedef ecl::linear_algebra::Matrix<Float,3,3> ecl::LegacyPose3D< Float, enable_if< is_float< Float > >::type >::RotationMatrix |
The type used to represent rotation matrices.
Definition at line 77 of file legacy_pose3d.hpp.
typedef ecl::linear_algebra::Matrix<Float,3,1> ecl::LegacyPose3D< Float, enable_if< is_float< Float > >::type >::Translation |
The type used to represent translations.
Definition at line 78 of file legacy_pose3d.hpp.
|
inline |
Initialise with zero rotation and zero translation.
Definition at line 86 of file legacy_pose3d.hpp.
|
inline |
Initialise with rotation matrix and translation.
This accepts arbitrary eigen types to use as a rotation matrix and translation vector.
rotation | : 3x3 rotation matrix. |
translation | : 3x1 translation vector (will compile error if incorrect size). |
Rot | : any compatible eigen 3x3 matrix type (e.g. Matrix<Float,3,3>). |
Trans | : any compatible eigen 3x1 matrix type (e.g. Matrix<Float,3,1>). |
Definition at line 101 of file legacy_pose3d.hpp.
|
inline |
Initialise from a 2D pose.
Essentially converts the 2D pose to a 3D pose, note that any 2D pose object will do.
pose | : the 2d pose. |
Definition at line 113 of file legacy_pose3d.hpp.
|
inline |
Initialise from an eigen AngleAxis and a translation.
angle_axis | : a 3d vector and scalar angle object from eigen. |
translation | : 3x1 translation vector (will compile error if incorrect size). |
Trans | : any compatible eigen 3x1 matrix type (e.g. Matrix<Float,3,1>). |
Definition at line 129 of file legacy_pose3d.hpp.
|
inline |
Initialise from an eigen Quaternion and a translation.
quaternion | : an eigen quaternion object. |
translation | : 3x1 translation vector (will compile error if incorrect size). |
Trans | : any compatible eigen 3x1 matrix type (e.g. Matrix<Float,3,1>). |
Definition at line 143 of file legacy_pose3d.hpp.
|
inline |
Copy constructor for 3d poses.
pose | : the pose to be copied. |
Definition at line 152 of file legacy_pose3d.hpp.
|
inlinevirtual |
Definition at line 157 of file legacy_pose3d.hpp.
|
inline |
Calculate the inverse pose.
This calculates the reverse transformation between frames.
Definition at line 246 of file legacy_pose3d.hpp.
|
inline |
Combine this pose with the incoming pose.
pose | : differential (wrt this pose's frame). |
Definition at line 258 of file legacy_pose3d.hpp.
|
inline |
Transform this pose by the specified input pose.
pose | : a pose differential (wrt this pose's frame). |
Definition at line 271 of file legacy_pose3d.hpp.
|
inline |
Assign from another Pose2D instance.
pose | : another Pose2D, storage type is irrelevant. |
Definition at line 168 of file legacy_pose3d.hpp.
|
inline |
Assign from another Pose2D instance.
pose | : another Pose2D, storage type is irrelevant. |
Definition at line 182 of file legacy_pose3d.hpp.
|
inline |
Relative pose between this pose and another.
Evaluates and returns the pose of this pose, relative to the specified pose.
pose | : reference frame for the relative pose. |
Definition at line 285 of file legacy_pose3d.hpp.
|
inline |
Definition at line 223 of file legacy_pose3d.hpp.
|
inline |
Return a mutable handle to the translation vector.
Definition at line 225 of file legacy_pose3d.hpp.
|
inline |
Set the rotational component.
This accepts a rotation matrix to set the rotational part of the pose.
rotation | : input rotation to set. |
Definition at line 197 of file legacy_pose3d.hpp.
|
inline |
Return a mutable handle to the rotational storage component.
Definition at line 224 of file legacy_pose3d.hpp.
|
inline |
Return a const handle to the rotational storage component.
Definition at line 226 of file legacy_pose3d.hpp.
|
inline |
Set the translation vector.
This accepts an arbitrary eigen types to use as a translation vector. Eigen will emit the appropriate compile time error if it is incompatible.
translation | : 3x1 translation vector. |
Trans | : any compatible eigen 3x1 matrix type (e.g. Matrix<Float,3,1>). |
Definition at line 210 of file legacy_pose3d.hpp.
|
friend |
Insertion operator for output streams.
Note that the output heading angle is formatted in degrees.
ostream | : stream satisfying the ecl stream concept. |
pose | : the inserted pose. |
Definition at line 315 of file legacy_pose3d.hpp.
|
private |
Definition at line 298 of file legacy_pose3d.hpp.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Float ecl::LegacyPose3D< Float, enable_if< is_float< Float > >::type >::Scalar |
Eigen style declaration of the element type.
Definition at line 76 of file legacy_pose3d.hpp.
|
private |
Definition at line 299 of file legacy_pose3d.hpp.