Trait Pose

Source
pub trait Pose:
    From<IsometryMatrix3<f64>>
    + Clone
    + Copy {
    type InputPoint: Projective;
    type OutputPoint: Projective;
    type Inverse: Pose;

    // Required method
    fn isometry(self) -> IsometryMatrix3<f64>;

    // Provided methods
    fn identity() -> Self { ... }
    fn inverse(self) -> Self::Inverse { ... }
    fn scale(self, scale: f64) -> Self { ... }
    fn from_parts(translation: Vector3<f64>, rotation: Rotation3<f64>) -> Self { ... }
    fn homogeneous(self) -> Matrix4<f64> { ... }
    fn se3(self) -> Vector6<f64> { ... }
    fn from_se3(se3: Vector6<f64>) -> Self { ... }
    fn transform_jacobians(
        self,
        input: Self::InputPoint,
    ) -> (Self::OutputPoint, Matrix4<f64>, Matrix4x6<f64>) { ... }
    fn transform_jacobian_input(
        self,
        input: Self::InputPoint,
    ) -> (Self::OutputPoint, Matrix4<f64>) { ... }
    fn transform_jacobian_self(
        self,
        input: Self::InputPoint,
    ) -> (Self::OutputPoint, Matrix4x6<f64>) { ... }
    fn transform(self, input: Self::InputPoint) -> Self::OutputPoint { ... }
}
Expand description

This trait is implemented by all the different poses in this library:

Required Associated Types§

Required Methods§

Source

fn isometry(self) -> IsometryMatrix3<f64>

Retrieve the isometry.

Provided Methods§

Source

fn identity() -> Self

Creates a pose with no change in position or orientation.

Source

fn inverse(self) -> Self::Inverse

Takes the inverse of the pose.

Source

fn scale(self, scale: f64) -> Self

Applies a scale factor to the pose (scales the translation component)

Source

fn from_parts(translation: Vector3<f64>, rotation: Rotation3<f64>) -> Self

Create the pose from rotation and translation.

Source

fn homogeneous(self) -> Matrix4<f64>

Retrieve the homogeneous matrix.

Source

fn se3(self) -> Vector6<f64>

Retrieve the se(3) representation of the pose.

Source

fn from_se3(se3: Vector6<f64>) -> Self

Set the se(3) representation of the pose.

Source

fn transform_jacobians( self, input: Self::InputPoint, ) -> (Self::OutputPoint, Matrix4<f64>, Matrix4x6<f64>)

Transform the given point to an output point, while also retrieving both Jacobians.

The following things are returned in this order:

  • The output point of the transformation
  • The Jacobian of the output in respect to the input point
  • The Jacobian of the output in respect to the pose in se(3) (with translation components before so(3) components)
Source

fn transform_jacobian_input( self, input: Self::InputPoint, ) -> (Self::OutputPoint, Matrix4<f64>)

Transform the given point to an output point, while also retrieving the input Jacobian.

The following things are returned in this order:

  • The output point of the transformation
  • The Jacobian of the output in respect to the input point
Source

fn transform_jacobian_self( self, input: Self::InputPoint, ) -> (Self::OutputPoint, Matrix4x6<f64>)

Transform the given point to an output point, while also retrieving the transform Jacobian.

The following things are returned in this order:

  • The output point of the transformation
  • The Jacobian of the output in respect to the pose in se(3) (with translation components before so(3) components)
Source

fn transform(self, input: Self::InputPoint) -> Self::OutputPoint

Transform the given point to an output point, while also retrieving the transform Jacobian.

The following things are returned in this order:

  • The output point of the transformation
  • The Jacobian of the output in respect to the pose in se(3) (with translation components before so(3) components)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§