pub enum Shape2D {
Circle {
radius: Fix128,
},
Polygon {
vertices: Vec<Vec2Fix>,
},
Capsule {
radius: Fix128,
half_length: Fix128,
},
Edge {
start: Vec2Fix,
end: Vec2Fix,
},
}Expand description
2D collision shape.
All shapes are defined in local space relative to the body’s center of mass.
Variants§
Circle
Circle defined by its radius.
Polygon
Convex polygon defined by vertices in CCW winding order.
Capsule
Capsule defined by a radius and half-length along the local X axis.
Fields
Edge
Line segment (edge) from start to end.
Zero thickness and two-sided: it collides with circles, capsules and polygons from either side, but not with other edges (two segments enclose no area, so parallel edges never overlap).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Shape2D
impl RefUnwindSafe for Shape2D
impl Send for Shape2D
impl Sync for Shape2D
impl Unpin for Shape2D
impl UnsafeUnpin for Shape2D
impl UnwindSafe for Shape2D
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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