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:
CameraToWorld
- TransformsCameraPoint
intoWorldPoint
WorldToCamera
- TransformsWorldPoint
intoCameraPoint
CameraToCamera
- TransformsCameraPoint
from one camera intoCameraPoint
for another camera
Required Associated Types§
Required Methods§
Sourcefn isometry(self) -> IsometryMatrix3<f64>
fn isometry(self) -> IsometryMatrix3<f64>
Retrieve the isometry.
Provided Methods§
Sourcefn scale(self, scale: f64) -> Self
fn scale(self, scale: f64) -> Self
Applies a scale factor to the pose (scales the translation component)
Sourcefn from_parts(translation: Vector3<f64>, rotation: Rotation3<f64>) -> Self
fn from_parts(translation: Vector3<f64>, rotation: Rotation3<f64>) -> Self
Create the pose from rotation and translation.
Sourcefn homogeneous(self) -> Matrix4<f64>
fn homogeneous(self) -> Matrix4<f64>
Retrieve the homogeneous matrix.
Sourcefn transform_jacobians(
self,
input: Self::InputPoint,
) -> (Self::OutputPoint, Matrix4<f64>, Matrix4x6<f64>)
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)
Sourcefn transform_jacobian_input(
self,
input: Self::InputPoint,
) -> (Self::OutputPoint, Matrix4<f64>)
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
Sourcefn transform_jacobian_self(
self,
input: Self::InputPoint,
) -> (Self::OutputPoint, Matrix4x6<f64>)
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)
Sourcefn transform(self, input: Self::InputPoint) -> Self::OutputPoint
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.