b2ChainDef

Struct b2ChainDef 

Source
#[repr(C)]
pub struct b2ChainDef { pub userData: *mut c_void, pub points: *const b2Vec2, pub count: c_int, pub materials: *const b2SurfaceMaterial, pub materialCount: c_int, pub filter: b2Filter, pub isLoop: bool, pub enableSensorEvents: bool, pub internalValue: c_int, }
Expand description

Used to create a chain of line segments. This is designed to eliminate ghost collisions with some limitations.

  • chains are one-sided
  • chains have no mass and should be used on static bodies
  • chains have a counter-clockwise winding order (normal points right of segment direction)
  • chains are either a loop or open
  • a chain must have at least 4 points
  • the distance between any two points must be greater than B2_LINEAR_SLOP
  • a chain shape should not self intersect (this is not validated)
  • an open chain shape has NO COLLISION on the first and final edge
  • you may overlap two open chains on their first three and/or last three points to get smooth collision
  • a chain shape creates multiple line segment shapes on the body https://en.wikipedia.org/wiki/Polygonal_chain Must be initialized using b2DefaultChainDef(). @warning Do not use chain shapes unless you understand the limitations. This is an advanced feature. @ingroup shape

Fields§

§userData: *mut c_void

Use this to store application specific shape data.

§points: *const b2Vec2

An array of at least 4 points. These are cloned and may be temporary.

§count: c_int

The point count, must be 4 or more.

§materials: *const b2SurfaceMaterial

Surface materials for each segment. These are cloned.

§materialCount: c_int

The material count. Must be 1 or count. This allows you to provide one material for all segments or a unique material per segment. For open chains, the material on the ghost segments are place holders.

§filter: b2Filter

Contact filtering data.

§isLoop: bool

Indicates a closed chain formed by connecting the first and last points

§enableSensorEvents: bool

Enable sensors to detect this chain. False by default.

§internalValue: c_int

Used internally to detect a valid definition. DO NOT SET.

Trait Implementations§

Source§

impl Clone for b2ChainDef

Source§

fn clone(&self) -> b2ChainDef

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for b2ChainDef

Source§

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

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

impl Copy for b2ChainDef

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.