Struct heron::rapier_plugin::rapier2d::geometry::ColliderBuilder
pub struct ColliderBuilder {Show 15 fields
pub shape: SharedShape,
pub density: Option<f32>,
pub mass_properties: Option<MassProperties>,
pub friction: f32,
pub friction_combine_rule: CoefficientCombineRule,
pub restitution: f32,
pub restitution_combine_rule: CoefficientCombineRule,
pub position: Isometry<f32, Unit<Complex<f32>>, 2>,
pub is_sensor: bool,
pub active_collision_types: ActiveCollisionTypes,
pub active_hooks: ActiveHooks,
pub active_events: ActiveEvents,
pub user_data: u128,
pub collision_groups: InteractionGroups,
pub solver_groups: InteractionGroups,
}
Expand description
A structure responsible for building a new collider.
Fields
shape: SharedShape
The shape of the collider to be built.
density: Option<f32>
The uniform density of the collider to be built.
mass_properties: Option<MassProperties>
Overrides automatic computation of MassProperties
.
If None, it will be computed based on shape and density.
friction: f32
The friction coefficient of the collider to be built.
friction_combine_rule: CoefficientCombineRule
The rule used to combine two friction coefficients.
restitution: f32
The restitution coefficient of the collider to be built.
restitution_combine_rule: CoefficientCombineRule
The rule used to combine two restitution coefficients.
position: Isometry<f32, Unit<Complex<f32>>, 2>
The position of this collider.
is_sensor: bool
Is this collider a sensor?
active_collision_types: ActiveCollisionTypes
Contact pairs enabled for this collider.
active_hooks: ActiveHooks
Physics hooks enabled for this collider.
active_events: ActiveEvents
Events enabled for this collider.
user_data: u128
The user-data of the collider being built.
collision_groups: InteractionGroups
The collision groups for the collider being built.
solver_groups: InteractionGroups
The solver groups for the collider being built.
Implementations
impl ColliderBuilder
impl ColliderBuilder
pub fn new(shape: SharedShape) -> ColliderBuilder
pub fn new(shape: SharedShape) -> ColliderBuilder
Initialize a new collider builder with the given shape.
pub fn compound(
shapes: Vec<(Isometry<f32, Unit<Complex<f32>>, 2>, SharedShape), Global>
) -> ColliderBuilder
pub fn compound(
shapes: Vec<(Isometry<f32, Unit<Complex<f32>>, 2>, SharedShape), Global>
) -> ColliderBuilder
Initialize a new collider builder with a compound shape.
pub fn ball(radius: f32) -> ColliderBuilder
pub fn ball(radius: f32) -> ColliderBuilder
Initialize a new collider builder with a ball shape defined by its radius.
pub fn halfspace(
outward_normal: Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>
) -> ColliderBuilder
pub fn halfspace(
outward_normal: Unit<Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>>
) -> ColliderBuilder
Initialize a new collider build with a half-space shape defined by the outward normal of its planar boundary.
pub fn cuboid(hx: f32, hy: f32) -> ColliderBuilder
pub fn cuboid(hx: f32, hy: f32) -> ColliderBuilder
Initialize a new collider builder with a cuboid shape defined by its half-extents.
pub fn round_cuboid(hx: f32, hy: f32, border_radius: f32) -> ColliderBuilder
pub fn round_cuboid(hx: f32, hy: f32, border_radius: f32) -> ColliderBuilder
Initialize a new collider builder with a round cuboid shape defined by its half-extents and border radius.
pub fn capsule_x(half_height: f32, radius: f32) -> ColliderBuilder
pub fn capsule_x(half_height: f32, radius: f32) -> ColliderBuilder
Initialize a new collider builder with a capsule shape aligned with the x
axis.
pub fn capsule_y(half_height: f32, radius: f32) -> ColliderBuilder
pub fn capsule_y(half_height: f32, radius: f32) -> ColliderBuilder
Initialize a new collider builder with a capsule shape aligned with the y
axis.
pub fn segment(
a: OPoint<f32, Const<2>>,
b: OPoint<f32, Const<2>>
) -> ColliderBuilder
pub fn segment(
a: OPoint<f32, Const<2>>,
b: OPoint<f32, Const<2>>
) -> ColliderBuilder
Initializes a collider builder with a segment shape.
pub fn triangle(
a: OPoint<f32, Const<2>>,
b: OPoint<f32, Const<2>>,
c: OPoint<f32, Const<2>>
) -> ColliderBuilder
pub fn triangle(
a: OPoint<f32, Const<2>>,
b: OPoint<f32, Const<2>>,
c: OPoint<f32, Const<2>>
) -> ColliderBuilder
Initializes a collider builder with a triangle shape.
pub fn round_triangle(
a: OPoint<f32, Const<2>>,
b: OPoint<f32, Const<2>>,
c: OPoint<f32, Const<2>>,
border_radius: f32
) -> ColliderBuilder
pub fn round_triangle(
a: OPoint<f32, Const<2>>,
b: OPoint<f32, Const<2>>,
c: OPoint<f32, Const<2>>,
border_radius: f32
) -> ColliderBuilder
Initializes a collider builder with a triangle shape with round corners.
pub fn polyline(
vertices: Vec<OPoint<f32, Const<2>>, Global>,
indices: Option<Vec<[u32; 2], Global>>
) -> ColliderBuilder
pub fn polyline(
vertices: Vec<OPoint<f32, Const<2>>, Global>,
indices: Option<Vec<[u32; 2], Global>>
) -> ColliderBuilder
Initializes a collider builder with a polyline shape defined by its vertex and index buffers.
pub fn trimesh(
vertices: Vec<OPoint<f32, Const<2>>, Global>,
indices: Vec<[u32; 3], Global>
) -> ColliderBuilder
pub fn trimesh(
vertices: Vec<OPoint<f32, Const<2>>, Global>,
indices: Vec<[u32; 3], Global>
) -> ColliderBuilder
Initializes a collider builder with a triangle mesh shape defined by its vertex and index buffers.
pub fn convex_decomposition(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]]
) -> ColliderBuilder
pub fn convex_decomposition(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]]
) -> ColliderBuilder
Initializes a collider builder with a compound shape obtained from the decomposition of the given trimesh (in 3D) or polyline (in 2D) into convex parts.
pub fn round_convex_decomposition(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]],
border_radius: f32
) -> ColliderBuilder
pub fn round_convex_decomposition(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]],
border_radius: f32
) -> ColliderBuilder
Initializes a collider builder with a compound shape obtained from the decomposition of the given trimesh (in 3D) or polyline (in 2D) into convex parts dilated with round corners.
pub fn convex_decomposition_with_params(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]],
params: &VHACDParameters
) -> ColliderBuilder
pub fn convex_decomposition_with_params(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]],
params: &VHACDParameters
) -> ColliderBuilder
Initializes a collider builder with a compound shape obtained from the decomposition of the given trimesh (in 3D) or polyline (in 2D) into convex parts.
pub fn round_convex_decomposition_with_params(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]],
params: &VHACDParameters,
border_radius: f32
) -> ColliderBuilder
pub fn round_convex_decomposition_with_params(
vertices: &[OPoint<f32, Const<2>>],
indices: &[[u32; 2]],
params: &VHACDParameters,
border_radius: f32
) -> ColliderBuilder
Initializes a collider builder with a compound shape obtained from the decomposition of the given trimesh (in 3D) or polyline (in 2D) into convex parts dilated with round corners.
pub fn convex_hull(points: &[OPoint<f32, Const<2>>]) -> Option<ColliderBuilder>
pub fn convex_hull(points: &[OPoint<f32, Const<2>>]) -> Option<ColliderBuilder>
Initializes a new collider builder with a 2D convex polygon or 3D convex polyhedron obtained after computing the convex-hull of the given points.
pub fn round_convex_hull(
points: &[OPoint<f32, Const<2>>],
border_radius: f32
) -> Option<ColliderBuilder>
pub fn round_convex_hull(
points: &[OPoint<f32, Const<2>>],
border_radius: f32
) -> Option<ColliderBuilder>
Initializes a new collider builder with a round 2D convex polygon or 3D convex polyhedron
obtained after computing the convex-hull of the given points. The shape is dilated
by a sphere of radius border_radius
.
pub fn convex_polyline(
points: Vec<OPoint<f32, Const<2>>, Global>
) -> Option<ColliderBuilder>
pub fn convex_polyline(
points: Vec<OPoint<f32, Const<2>>, Global>
) -> Option<ColliderBuilder>
Creates a new collider builder that is a convex polygon formed by the given polyline assumed to be convex (no convex-hull will be automatically computed).
pub fn round_convex_polyline(
points: Vec<OPoint<f32, Const<2>>, Global>,
border_radius: f32
) -> Option<ColliderBuilder>
pub fn round_convex_polyline(
points: Vec<OPoint<f32, Const<2>>, Global>,
border_radius: f32
) -> Option<ColliderBuilder>
Creates a new collider builder that is a round convex polygon formed by the
given polyline assumed to be convex (no convex-hull will be automatically
computed). The polygon shape is dilated by a sphere of radius border_radius
.
pub fn heightfield(
heights: Matrix<f32, Dynamic, Const<1>, VecStorage<f32, Dynamic, Const<1>>>,
scale: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
) -> ColliderBuilder
pub fn heightfield(
heights: Matrix<f32, Dynamic, Const<1>, VecStorage<f32, Dynamic, Const<1>>>,
scale: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
) -> ColliderBuilder
Initializes a collider builder with a heightfield shape defined by its set of height and a scale factor along each coordinate axis.
pub fn default_friction() -> f32
pub fn default_friction() -> f32
The default friction coefficient used by the collider builder.
pub fn default_density() -> f32
pub fn default_density() -> f32
The default density used by the collider builder.
pub fn user_data(self, data: u128) -> ColliderBuilder
pub fn user_data(self, data: u128) -> ColliderBuilder
Sets an arbitrary user-defined 128-bit integer associated to the colliders built by this builder.
pub fn collision_groups(self, groups: InteractionGroups) -> ColliderBuilder
pub fn collision_groups(self, groups: InteractionGroups) -> ColliderBuilder
Sets the collision groups used by this collider.
Two colliders will interact iff. their collision groups are compatible. See InteractionGroups::test for details.
pub fn solver_groups(self, groups: InteractionGroups) -> ColliderBuilder
pub fn solver_groups(self, groups: InteractionGroups) -> ColliderBuilder
Sets the solver groups used by this collider.
Forces between two colliders in contact will be computed iff their solver groups are compatible. See InteractionGroups::test for details.
pub fn sensor(self, is_sensor: bool) -> ColliderBuilder
pub fn sensor(self, is_sensor: bool) -> ColliderBuilder
Sets whether or not the collider built by this builder is a sensor.
Sensors will have a default density of zero,
but if you call Self::mass_properties
you can assign a mass to a sensor.
pub fn active_hooks(self, active_hooks: ActiveHooks) -> ColliderBuilder
pub fn active_hooks(self, active_hooks: ActiveHooks) -> ColliderBuilder
The set of physics hooks enabled for this collider.
pub fn active_events(self, active_events: ActiveEvents) -> ColliderBuilder
pub fn active_events(self, active_events: ActiveEvents) -> ColliderBuilder
The set of events enabled for this collider.
pub fn active_collision_types(
self,
active_collision_types: ActiveCollisionTypes
) -> ColliderBuilder
pub fn active_collision_types(
self,
active_collision_types: ActiveCollisionTypes
) -> ColliderBuilder
The set of active collision types for this collider.
pub fn friction(self, friction: f32) -> ColliderBuilder
pub fn friction(self, friction: f32) -> ColliderBuilder
Sets the friction coefficient of the collider this builder will build.
pub fn friction_combine_rule(
self,
rule: CoefficientCombineRule
) -> ColliderBuilder
pub fn friction_combine_rule(
self,
rule: CoefficientCombineRule
) -> ColliderBuilder
Sets the rule to be used to combine two friction coefficients in a contact.
pub fn restitution(self, restitution: f32) -> ColliderBuilder
pub fn restitution(self, restitution: f32) -> ColliderBuilder
Sets the restitution coefficient of the collider this builder will build.
pub fn restitution_combine_rule(
self,
rule: CoefficientCombineRule
) -> ColliderBuilder
pub fn restitution_combine_rule(
self,
rule: CoefficientCombineRule
) -> ColliderBuilder
Sets the rule to be used to combine two restitution coefficients in a contact.
pub fn density(self, density: f32) -> ColliderBuilder
pub fn density(self, density: f32) -> ColliderBuilder
Sets the uniform density of the collider this builder will build.
This will be overridden by a call to Self::mass_properties
so it only makes sense to call
either Self::density
or Self::mass_properties
.
pub fn mass_properties(self, mass_properties: MassProperties) -> ColliderBuilder
pub fn mass_properties(self, mass_properties: MassProperties) -> ColliderBuilder
Sets the mass properties of the collider this builder will build.
If this is set, Self::density
will be ignored, so it only makes sense to call
either Self::density
or Self::mass_properties
.
pub fn translation(
self,
translation: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
) -> ColliderBuilder
pub fn translation(
self,
translation: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
) -> ColliderBuilder
Sets the initial translation of the collider to be created.
If the collider will be attached to a rigid-body, this sets the translation relative to the rigid-body it will be attached to.
pub fn rotation(self, angle: f32) -> ColliderBuilder
pub fn rotation(self, angle: f32) -> ColliderBuilder
Sets the initial orientation of the collider to be created.
If the collider will be attached to a rigid-body, this sets the orientation relative to the rigid-body it will be attached to.
pub fn position(
self,
pos: Isometry<f32, Unit<Complex<f32>>, 2>
) -> ColliderBuilder
pub fn position(
self,
pos: Isometry<f32, Unit<Complex<f32>>, 2>
) -> ColliderBuilder
Sets the initial position (translation and orientation) of the collider to be created.
If the collider will be attached to a rigid-body, this sets the position relative to the rigid-body it will be attached to.
pub fn position_wrt_parent(
self,
pos: Isometry<f32, Unit<Complex<f32>>, 2>
) -> ColliderBuilder
👎Deprecated: Use .position
instead.
pub fn position_wrt_parent(
self,
pos: Isometry<f32, Unit<Complex<f32>>, 2>
) -> ColliderBuilder
.position
instead.Sets the initial position (translation and orientation) of the collider to be created, relative to the rigid-body it is attached to.
pub fn delta(
self,
delta: Isometry<f32, Unit<Complex<f32>>, 2>
) -> ColliderBuilder
👎Deprecated: Use .position
instead.
pub fn delta(
self,
delta: Isometry<f32, Unit<Complex<f32>>, 2>
) -> ColliderBuilder
.position
instead.Set the position of this collider in the local-space of the rigid-body it is attached to.
pub fn components(
&self
) -> (ColliderChanges, ColliderPosition, ColliderBroadPhaseData, SharedShape, ColliderType, ColliderMaterial, ColliderFlags, ColliderMassProps)
pub fn components(
&self
) -> (ColliderChanges, ColliderPosition, ColliderBroadPhaseData, SharedShape, ColliderType, ColliderMaterial, ColliderFlags, ColliderMassProps)
Builds all the components required by a collider.
Trait Implementations
impl Clone for ColliderBuilder
impl Clone for ColliderBuilder
fn clone(&self) -> ColliderBuilder
fn clone(&self) -> ColliderBuilder
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreimpl Into<Collider> for ColliderBuilder
impl Into<Collider> for ColliderBuilder
Auto Trait Implementations
impl !RefUnwindSafe for ColliderBuilder
impl Send for ColliderBuilder
impl Sync for ColliderBuilder
impl Unpin for ColliderBuilder
impl !UnwindSafe for ColliderBuilder
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read morefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read morefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moresourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.