Cargo Features

[dependencies]
bevy_xpbd_3d = { version = "0.4.1", default-features = false, features = ["3d", "f32", "f64", "debug-plugin", "simd", "parallel", "enhanced-determinism", "default-collider", "parry-f32", "parry-f64", "collider-from-mesh", "async-collider", "serialize"] }
default = 3d, async-collider, debug-plugin, f32, parallel, parry-f32

These default features are set whenever bevy_xpbd_3d is added without default-features = false somewhere in the dependency tree.

3d default

Affects mass_properties::Inertia, mass_properties::InverseInertia, components::AngularVelocity, rotation::Rotation, angular_constraint::AngularConstraint.apply_angular_correction, angular_constraint::AngularConstraint.compute_generalized_inverse_mass, angular_constraint::AngularConstraint.get_delta_rot, revolute::RevoluteJoint.aligned_axis, position_constraint::PositionConstraint.compute_generalized_inverse_mass, position_constraint::PositionConstraint.get_delta_rot, double::Vector, single::Vector, shape_caster::ShapeCaster.shape_rotation, sync::position_to_transform, collider::AsyncCollider, collider::AsyncSceneCollider, collider::AsyncSceneColliderData, collider::ComputedCollider, collider_backend::init_async_colliders, collider_backend::init_async_scene_colliders

f32 default parry-f32
f64 parry-f64?
debug-plugin default

Enables bevy_gizmos and bevy_render of bevy

Affects plugins::debug

simd

Enables simd-stable of optional parry3d and optional parry3d-f64

parallel default

Enables parallel of optional parry3d and optional parry3d-f64

enhanced-determinism

Enables enhanced-determinism of optional parry3d and optional parry3d-f64 and libm of bevy_math

bevy_math:

Enable libm mathematical functions for glam types to ensure consistent outputs across platforms at the cost of losing hardware-level optimization using intrinsics

default-collider parry-f32 parry-f64?

Enables nalgebra

Affects collider_backend::init_async_colliders, collider_backend::init_async_scene_colliders, collision::contact_query, gizmos::PhysicsGizmoExt.draw_collider, gizmos::PhysicsGizmoExt.draw_shapecast

parry-f32 default = default-collider, f32

We unfortunately can't reuse the f32 and f64 features for this,
because Parry uses separate crates for f32 and f64.

Enables parry3d

Affects collision::contact_query, gizmos::PhysicsGizmoExt.draw_collider, gizmos::PhysicsGizmoExt.draw_shapecast

parry-f64 = default-collider, f64

Enables parry3d-f64

Affects collision::contact_query, gizmos::PhysicsGizmoExt.draw_collider, gizmos::PhysicsGizmoExt.draw_shapecast

collider-from-mesh async-collider

Enables bevy_render of bevy

bevy:

Provides rendering functionality

Affects collider::ComputedCollider

async-collider default = collider-from-mesh

Enables bevy_gltf and bevy_scene of bevy

Affects collider::AsyncCollider, collider::AsyncSceneCollider, collider::AsyncSceneColliderData, collider_backend::init_async_colliders, collider_backend::init_async_scene_colliders

serialize

Enables serde, serde-serialize of optional parry3d and optional parry3d-f64 and serialize of bevy

bevy:

Enable serialization support through serde