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 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<enum Pose2DStorageType Storage_> | |
LegacyPose3D (const LegacyPose2D< Float, Storage_ > &pose) | |
Initialise from a 2D pose. 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 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... | |
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... | |
void | rotation (const RotationMatrix &rotation) |
Set the rotational component. More... | |
RotationMatrix & | rotation () |
const RotationMatrix & | rotation () const |
Return a mutable handle to the translation vector. More... | |
RotationMatrix | rotationMatrix () const |
Return a const handle to the translation vector. More... | |
template<typename Trans > | |
void | translation (const ecl::linear_algebra::MatrixBase< Trans > &translation) |
Set the translation vector. 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... | |
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 60 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 71 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 72 of file legacy_pose3d.hpp.
|
inline |
Initialise with zero rotation and zero translation.
Definition at line 80 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 95 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 107 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 123 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 137 of file legacy_pose3d.hpp.
|
inline |
Copy constructor for 3d poses.
pose | : the pose to be copied. |
Definition at line 146 of file legacy_pose3d.hpp.
|
inlinevirtual |
Definition at line 151 of file legacy_pose3d.hpp.
|
inline |
Calculate the inverse pose.
This calculates the reverse transformation between frames.
Definition at line 240 of file legacy_pose3d.hpp.
|
inline |
Combine this pose with the incoming pose.
pose | : differential (wrt this pose's frame). |
Definition at line 252 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 265 of file legacy_pose3d.hpp.
|
inline |
Assign from another Pose2D instance.
pose | : another Pose2D, storage type is irrelevant. |
Definition at line 162 of file legacy_pose3d.hpp.
|
inline |
Assign from another Pose2D instance.
pose | : another Pose2D, storage type is irrelevant. |
Definition at line 176 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 279 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 191 of file legacy_pose3d.hpp.
|
inline |
Definition at line 217 of file legacy_pose3d.hpp.
|
inline |
Return a mutable handle to the translation vector.
>
Definition at line 219 of file legacy_pose3d.hpp.
|
inline |
Return a const handle to the translation vector.
>Representation of the rotation in matrix form.
Definition at line 228 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 204 of file legacy_pose3d.hpp.
|
inline |
Return a mutable handle to the rotational storage component.
>
Definition at line 218 of file legacy_pose3d.hpp.
|
inline |
Return a const handle to the rotational storage component.
>
Definition at line 220 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 309 of file legacy_pose3d.hpp.
|
private |
Definition at line 292 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 70 of file legacy_pose3d.hpp.
|
private |
Definition at line 293 of file legacy_pose3d.hpp.