pub struct Link<'a> {
pub name: &'a str,
pub inertial: Inertial,
pub visuals: Vec<Visual<'a>>,
pub collisions: Vec<Collision<'a>>,
}Expand description
One link of a built structure: the mass it has, and the shapes it is drawn and collided with.
A link that no stated joint attaches is added beneath the structure’s body
frame by a fixed joint named <link>_joint, exactly as a mount link is, so
stating a link is also how a structure grows one. Naming a link some joint
already provides gives that link its body instead.
Every field but the name has a default: a link carries the same unit inertial a generated link does, and no geometry at all.
use phoxal_model::builder::{Inertia, Inertial, Link, RobotBuilder};
let robot = RobotBuilder::new("rover")
.link(Link {
name: "base_link",
inertial: Inertial {
mass_kg: 12.0,
inertia: Inertia {
ixx: 0.8,
iyy: 1.2,
izz: 1.6,
..Inertia::default()
},
..Inertial::default()
},
..Link::default()
})
.build()?;
let base = robot.structure().link("base_link").expect("the stated link");
assert_eq!(base.inertial().mass_kg(), 12.0);Fields§
§name: &'a strThe link’s own identity, unique within its structure.
inertial: InertialThe link’s mass properties.
visuals: Vec<Visual<'a>>The shapes the link is drawn with.
collisions: Vec<Collision<'a>>The shapes the link collides with.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Link<'a>
impl<'a> RefUnwindSafe for Link<'a>
impl<'a> Send for Link<'a>
impl<'a> Sync for Link<'a>
impl<'a> Unpin for Link<'a>
impl<'a> UnsafeUnpin for Link<'a>
impl<'a> UnwindSafe for Link<'a>
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