Struct CollisionBuilder

Source
pub struct CollisionBuilder { /* private fields */ }
Expand description

The builder for Collision components.

The CollisionBuilder is used to construct Collision elements of Links.

This will configure the collision data:

  • geometry: The geometry used for collision checking1.
  • transform (Optional): The transform from the Link frame to the geometry.
  • name (Optional): The string identifier (or name) of this collision element. For practical purposes, it is recommended to use unique identifiers/names.

They can be added to a LinkBuilder while constructing a Link by calling add_collider.

A CollisionBuilder can be converted to a VisualBuilder to make defining Visual easier. If this is used, it might be easier to first create the VisualBuilder, and convert that back to a CollisionBuilder, since it contains more information.


  1. WARNING: It is not recommended to use high-detail meshes for collision geometries, since this will slow down the collision checking process. Also, keep in mind, that some simulators only support the use of convex meshes for collisions, if at all. 

Implementations§

Source§

impl CollisionBuilder

Source

pub fn new( geometry: impl Into<Box<dyn GeometryInterface + Sync + Send>>, ) -> Self

Create a new CollisionBuilder with the specified Geometry.

Source

pub fn new_full( name: Option<String>, transform: Option<Transform>, geometry: impl Into<Box<dyn GeometryInterface + Sync + Send>>, ) -> Self

Create a new CollisionBuilder with all fields specified.

Source

pub fn named(self, name: impl Into<String>) -> Self

Sets the name of this CollisionBuilder.

Source

pub fn transformed(self, transform: Transform) -> Self

Specify a transform for this CollisionBuilder.

The default is a no transformation (The frame of the Collision will be the same as the frame of the parent Link).

Source

pub fn to_visual(&self) -> VisualBuilder

Creates a VisualBuilder from this CollisionBuilder reference by upgrading.

Creates a VisualBuilder from the CollisionBuilder by cloning the following fields:

  • name
  • transform
  • geometry The other fields are left empty, since they are optional.
Source§

impl CollisionBuilder

Non-builder methods

Source

pub fn name(&self) -> Option<&String>

Gets an optional reference to the name of this CollisionBuilder.

Source

pub fn transform(&self) -> Option<&Transform>

Gets an optional reference to the transform of this CollisionBuilder.

Source

pub fn geometry(&self) -> &Box<dyn GeometryInterface + Sync + Send>

Gets a reference to the geometry of this CollisionBuilder.

Trait Implementations§

Source§

impl Clone for CollisionBuilder

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CollisionBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<CollisionBuilder> for Collision

Source§

fn from(value: CollisionBuilder) -> Self

Converts to this type from the input type.
Source§

impl GroupIDChanger for CollisionBuilder

Source§

unsafe fn change_group_id_unchecked(&mut self, new_group_id: &str)

Unchecked replacement of the GroupID of the builder tree with new_group_id. Read more
Source§

fn apply_group_id(&mut self)

Applies GroupID delimiter replacements. Read more
Source§

fn change_group_id( &mut self, new_group_id: impl GroupID, ) -> Result<(), GroupIDError>

Replaces the GroupID of the builder tree with new_group_id. Read more
Source§

impl PartialEq for CollisionBuilder

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,