Struct avian3d::debug_render::PhysicsGizmos

source ·
pub struct PhysicsGizmos {
Show 17 fields pub axis_lengths: Option<Vector>, pub aabb_color: Option<Color>, pub collider_color: Option<Color>, pub sleeping_color_multiplier: Option<[f32; 4]>, pub contact_point_color: Option<Color>, pub contact_normal_color: Option<Color>, pub contact_normal_scale: ContactGizmoScale, pub joint_anchor_color: Option<Color>, pub joint_separation_color: Option<Color>, pub raycast_color: Option<Color>, pub raycast_point_color: Option<Color>, pub raycast_normal_color: Option<Color>, pub shapecast_color: Option<Color>, pub shapecast_shape_color: Option<Color>, pub shapecast_point_color: Option<Color>, pub shapecast_normal_color: Option<Color>, pub hide_meshes: bool,
}
Expand description

Gizmos used for debug rendering physics. See PhysicsDebugPlugin

You can configure what is rendered by inserting the PhysicsGizmos configuration group or by getting it from the GizmoConfigStore resource and mutating the returned configuration.

To configure the debug rendering of specific entities, use the DebugRender component.

§Example

use avian3d::prelude::*;
use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            PhysicsPlugins::default(),
            // Enables debug rendering
            PhysicsDebugPlugin::default(),
        ))
        // Overwrite default debug rendering configuration (optional)
        .insert_gizmo_config(
            PhysicsGizmos {
                aabb_color: Some(Color::WHITE),
                ..default()
            },
            GizmoConfig::default(),
        )
        .run();
}

fn setup(mut commands: Commands) {
    // This rigid body and its collider and AABB will get rendered
    commands.spawn((RigidBody::Dynamic, Collider::sphere(0.5)));
}

Fields§

§axis_lengths: Option<Vector>

The lengths of the axes drawn for an entity at the center of mass.

§aabb_color: Option<Color>

The color of the AABBs. If None, the AABBs will not be rendered.

§collider_color: Option<Color>

The color of the collider wireframes. If None, the colliders will not be rendered.

§sleeping_color_multiplier: Option<[f32; 4]>

The colors (in HSLA) for sleeping bodies will be multiplied by this array. If None, sleeping will have no effect on the colors.

§contact_point_color: Option<Color>

The color of the contact points. If None, the contact points will not be rendered.

§contact_normal_color: Option<Color>

The color of the contact normals. If None, the contact normals will not be rendered.

§contact_normal_scale: ContactGizmoScale

The scale used for contact normals.

§joint_anchor_color: Option<Color>

The color of the lines drawn from the centers of bodies to their joint anchors.

§joint_separation_color: Option<Color>

The color of the lines drawn between joint anchors, indicating the separation.

§raycast_color: Option<Color>

The color used for the rays in raycasts.

§raycast_point_color: Option<Color>

The color used for the hit points in raycasts.

§raycast_normal_color: Option<Color>

The color used for the hit normals in raycasts.

§shapecast_color: Option<Color>

The color used for the ray in shapecasts.

§shapecast_shape_color: Option<Color>

The color used for the shape in shapecasts.

§shapecast_point_color: Option<Color>

The color used for the hit points in shapecasts.

§shapecast_normal_color: Option<Color>

The color used for the hit normals in shapecasts.

§hide_meshes: bool

Determines if the visibility of entities with colliders should be set to Visibility::Hidden, which will only show the debug renders.

Implementations§

source§

impl PhysicsGizmos

source

pub fn all() -> Self

Creates a PhysicsGizmos configuration with all rendering options enabled.

source

pub fn none() -> Self

Creates a PhysicsGizmos configuration with debug rendering enabled but all options turned off.

Note: this doesn’t affect entities with DebugRender component; their debug gizmos will be visible.

source

pub fn axes(axis_lengths: Vector) -> Self

Creates a PhysicsGizmos configuration with the given lengths for the axes that are drawn for the entity at the center of mass. Other debug rendering options will be disabled.

source

pub fn aabbs(color: Color) -> Self

Creates a PhysicsGizmos configuration with a given AABB color. Other debug rendering options will be disabled.

source

pub fn colliders(color: Color) -> Self

Creates a PhysicsGizmos configuration with a given collider color. Other debug rendering options will be disabled.

source

pub fn contact_points(color: Color) -> Self

Creates a PhysicsGizmos configuration with a given contact point color. Other debug rendering options will be disabled.

source

pub fn contact_normals(color: Color) -> Self

Creates a PhysicsGizmos configuration with a given contact normal color. Other debug rendering options will be disabled.

source

pub fn joints( anchor_color: Option<Color>, separation_color: Option<Color> ) -> Self

Creates a PhysicsGizmos configuration with given colors for joint anchors and separation distances. Other debug rendering options will be disabled.

source

pub fn with_axes(self, axis_lengths: Vector) -> Self

Sets the lengths of the axes drawn for the entity.

source

pub fn with_aabb_color(self, color: Color) -> Self

Sets the AABB color.

source

pub fn with_collider_color(self, color: Color) -> Self

Sets the collider color.

source

pub fn with_sleeping_color_multiplier(self, color_multiplier: [f32; 4]) -> Self

Sets the multiplier used for the colors (in HSLA) of sleeping bodies.

source

pub fn with_contact_point_color(self, color: Color) -> Self

Sets the contact point color.

source

pub fn with_contact_normal_color(self, color: Color) -> Self

Sets the contact normal color.

source

pub fn with_contact_normal_scale(self, scale: ContactGizmoScale) -> Self

Sets the contact normal scale.

source

pub fn with_joint_colors( anchor_color: Option<Color>, separation_color: Option<Color> ) -> Self

Sets the colors used for debug rendering joints.

source

pub fn with_raycast_colors( self, ray: Option<Color>, hit_point: Option<Color>, hit_normal: Option<Color> ) -> Self

Sets the colors used for debug rendering raycasts.

source

pub fn with_shapecast_colors( self, ray: Option<Color>, shape: Option<Color>, hit_point: Option<Color>, hit_normal: Option<Color> ) -> Self

Sets the colors used for debug rendering shapecasts.

source

pub fn with_mesh_visibility(self, is_visible: bool) -> Self

Sets the visibility of the entity’s visual mesh.

source

pub fn without_axes(self) -> Self

Disables axis debug rendering.

source

pub fn without_aabbs(self) -> Self

Disables AABB debug rendering.

source

pub fn without_colliders(self) -> Self

Disables collider debug rendering.

source

pub fn without_contact_points(self) -> Self

Disables contact point debug rendering.

source

pub fn without_contact_normals(self) -> Self

Disables contact normal debug rendering.

source

pub fn without_joints(self) -> Self

Disables joint debug rendering.

source

pub fn without_raycasts(self) -> Self

Disables raycast debug rendering.

source

pub fn without_shapecasts(self) -> Self

Disables shapecast debug rendering.

Trait Implementations§

source§

impl Default for PhysicsGizmos

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl FromReflect for PhysicsGizmos
where Self: Any + Send + Sync, Option<Vector>: FromReflect + TypePath + RegisterForReflection, Option<Color>: FromReflect + TypePath + RegisterForReflection, Option<[f32; 4]>: FromReflect + TypePath + RegisterForReflection, ContactGizmoScale: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection,

source§

fn from_reflect(reflect: &dyn Reflect) -> Option<Self>

Constructs a concrete instance of Self from a reflected value.
source§

fn take_from_reflect( reflect: Box<dyn Reflect> ) -> Result<Self, Box<dyn Reflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
source§

impl GetTypeRegistration for PhysicsGizmos
where Self: Any + Send + Sync, Option<Vector>: FromReflect + TypePath + RegisterForReflection, Option<Color>: FromReflect + TypePath + RegisterForReflection, Option<[f32; 4]>: FromReflect + TypePath + RegisterForReflection, ContactGizmoScale: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection,

source§

fn get_type_registration() -> TypeRegistration

Returns the default TypeRegistration for this type.
source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
source§

impl Reflect for PhysicsGizmos
where Self: Any + Send + Sync, Option<Vector>: FromReflect + TypePath + RegisterForReflection, Option<Color>: FromReflect + TypePath + RegisterForReflection, Option<[f32; 4]>: FromReflect + TypePath + RegisterForReflection, ContactGizmoScale: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection,

source§

fn get_represented_type_info(&self) -> Option<&'static TypeInfo>

Returns the TypeInfo of the type represented by this value. Read more
source§

fn into_any(self: Box<Self>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>.
source§

fn as_any(&self) -> &dyn Any

Returns the value as a &dyn Any.
source§

fn as_any_mut(&mut self) -> &mut dyn Any

Returns the value as a &mut dyn Any.
source§

fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>

Casts this type to a boxed reflected value.
source§

fn as_reflect(&self) -> &dyn Reflect

Casts this type to a reflected value.
source§

fn as_reflect_mut(&mut self) -> &mut dyn Reflect

Casts this type to a mutable reflected value.
source§

fn clone_value(&self) -> Box<dyn Reflect>

Clones the value as a Reflect trait object. Read more
source§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
source§

fn try_apply(&mut self, value: &dyn Reflect) -> Result<(), ApplyError>

Tries to apply a reflected value to this value. Read more
source§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
source§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
source§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
source§

fn reflect_owned(self: Box<Self>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
source§

fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>

Returns a “partial equality” comparison result. Read more
source§

fn apply(&mut self, value: &(dyn Reflect + 'static))

Applies a reflected value to this value. Read more
source§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
source§

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

Debug formatter for the value. Read more
source§

fn serializable(&self) -> Option<Serializable<'_>>

Returns a serializable version of the value. Read more
source§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
source§

impl Struct for PhysicsGizmos
where Self: Any + Send + Sync, Option<Vector>: FromReflect + TypePath + RegisterForReflection, Option<Color>: FromReflect + TypePath + RegisterForReflection, Option<[f32; 4]>: FromReflect + TypePath + RegisterForReflection, ContactGizmoScale: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection,

source§

fn field(&self, name: &str) -> Option<&dyn Reflect>

Returns a reference to the value of the field named name as a &dyn Reflect.
source§

fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>

Returns a mutable reference to the value of the field named name as a &mut dyn Reflect.
source§

fn field_at(&self, index: usize) -> Option<&dyn Reflect>

Returns a reference to the value of the field with index index as a &dyn Reflect.
source§

fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>

Returns a mutable reference to the value of the field with index index as a &mut dyn Reflect.
source§

fn name_at(&self, index: usize) -> Option<&str>

Returns the name of the field with index index.
source§

fn field_len(&self) -> usize

Returns the number of fields in the struct.
source§

fn iter_fields(&self) -> FieldIter<'_>

Returns an iterator over the values of the reflectable fields for this struct.
source§

fn clone_dynamic(&self) -> DynamicStruct

Clones the struct into a DynamicStruct.
source§

impl TypePath for PhysicsGizmos
where Self: Any + Send + Sync,

source§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
source§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
source§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
source§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
source§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
source§

impl Typed for PhysicsGizmos
where Self: Any + Send + Sync, Option<Vector>: FromReflect + TypePath + RegisterForReflection, Option<Color>: FromReflect + TypePath + RegisterForReflection, Option<[f32; 4]>: FromReflect + TypePath + RegisterForReflection, ContactGizmoScale: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection,

source§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.
source§

impl GizmoConfigGroup for PhysicsGizmos
where Self: Reflect + TypePath + Default,

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, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
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> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynamicTypePath for T
where T: TypePath,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromWorld for T
where T: Default,

source§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given World.
source§

impl<S> GetField for S
where S: Struct,

source§

fn get_field<T>(&self, name: &str) -> Option<&T>
where T: Reflect,

Returns a reference to the value of the field named name, downcast to T.
source§

fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T>
where T: Reflect,

Returns a mutable reference to the value of the field named name, downcast to T.
source§

impl<T> GetPath for T
where T: Reflect + ?Sized,

source§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p> ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
source§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
source§

fn path<'p, T>( &self, path: impl ReflectPath<'p> ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
source§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> ConditionalSend for T
where T: Send,

source§

impl<T> Settings for T
where T: 'static + Send + Sync,

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,