pub struct Pose { /* private fields */ }Expand description
Use Frame::add_pose to create a new pose.
Implementations§
Source§impl Pose
impl Pose
Sourcepub fn frame(&self) -> Option<Frame>
pub fn frame(&self) -> Option<Frame>
Returns the parent frame of this pose.
§Returns
Some(Frame) if the parent frame is still valid, or None if the frame
has been dropped or no longer exists.
§Example
use cartesian_tree::Frame;
use nalgebra::{Vector3, UnitQuaternion};
let frame = Frame::new_origin("base");
let pose = frame.add_pose(Vector3::new(0.0, 0.0, 0.0), UnitQuaternion::identity());
assert_eq!(pose.frame().unwrap().name(), "base");Sourcepub fn transformation(&self) -> Isometry3<f64>
pub fn transformation(&self) -> Isometry3<f64>
Returns the transformation from this pose to its parent frame.
§Returns
The transformation of the pose in its parent frame.
Sourcepub fn update<O>(&mut self, position: Vector3<f64>, orientation: O)where
O: IntoOrientation,
pub fn update<O>(&mut self, position: Vector3<f64>, orientation: O)where
O: IntoOrientation,
Updates the pose’s transformation relative to its parent.
§Arguments
position: A 3D vector representing the new translational offset from the parent.orientation: An orientation convertible into a unit quaternion for new orientational offset from the parent.
§Example
use cartesian_tree::Frame;
use nalgebra::{Vector3, UnitQuaternion};
let root = Frame::new_origin("root");
let mut pose = root.add_pose(Vector3::new(0.0, 0.0, 1.0), UnitQuaternion::identity());
pose.update(Vector3::new(1.0, 0.0, 0.0), UnitQuaternion::identity());Sourcepub fn in_frame(&self, target: &Frame) -> Result<Pose, CartesianTreeError>
pub fn in_frame(&self, target: &Frame) -> Result<Pose, CartesianTreeError>
Transforms this pose into the coordinate system of the given target frame.
§Arguments
target- The frame to express this pose in.
§Returns
Ok(Pose)a newPose, expressed in thetargetframe.Err(String)if the frame hierarchy cannot be resolved (due to dropped frames or no common ancestor).
§Example
use cartesian_tree::Frame;
use nalgebra::{Vector3, UnitQuaternion};
let root = Frame::new_origin("root");
let pose = root.add_pose(Vector3::new(0.0, 0.0, 1.0), UnitQuaternion::identity());
let new_frame = root.add_child("child", Vector3::new(1.0, 0.0, 0.0), UnitQuaternion::identity()).unwrap();
let pose_in_new_frame = pose.in_frame(&new_frame);Trait Implementations§
Auto Trait Implementations§
impl Freeze for Pose
impl !RefUnwindSafe for Pose
impl !Send for Pose
impl !Sync for Pose
impl Unpin for Pose
impl !UnwindSafe for Pose
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.