Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 38 additions & 16 deletions bevy_rapier2d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,38 +33,60 @@ default = [
]
dim2 = []
debug-render-2d = [
"bevy/bevy_core_pipeline",
"bevy/bevy_sprite",
"bevy/bevy_gizmos",
"bevy_core_pipeline",
"bevy_sprite",
Copy link

@atlv24 atlv24 Nov 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bevy_sprite might not be needed either.

"bevy_gizmos",
"rapier2d/debug-render",
"bevy/bevy_asset",
"bevy_asset",
]
debug-render-3d = [
"bevy/bevy_core_pipeline",
"bevy/bevy_pbr",
"bevy/bevy_gizmos",
"bevy_core_pipeline",
"bevy_pbr",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Im not sure if bevy_pbr is still needed.

"bevy_gizmos",
"rapier2d/debug-render",
"bevy/bevy_asset",
"bevy_asset",
]
rapier-debug-render = ["rapier2d/debug-render"]

parallel = ["rapier2d/parallel"]
simd-stable = ["rapier2d/simd-stable"]
simd-nightly = ["rapier2d/simd-nightly"]
serde-serialize = ["rapier2d/serde-serialize", "bevy/serialize", "serde"]
serde-serialize = ["rapier2d/serde-serialize", "bevy_ecs/serialize", "serde"]
enhanced-determinism = ["rapier2d/enhanced-determinism"]
headless = []
picking-backend = ["bevy/bevy_picking", "bevy/bevy_render"]
picking-backend = ["bevy_picking", "bevy_camera"]
async-collider = [
"bevy/bevy_asset",
"bevy/bevy_scene",
"bevy/bevy_render",
"bevy/bevy_image",
"bevy_asset",
"bevy_scene",
"bevy_image",
]
to-bevy-mesh = ["bevy/bevy_render", "bevy/bevy_asset"]
to-bevy-mesh = ["bevy_asset", "bevy_mesh"]

[dependencies]
bevy = { version = "0.17.3", default-features = false, features = ["std"] }
# Bevy crates
bevy_app = { version = "0.17.3", default-features = false }
bevy_derive = { version = "0.17.3", default-features = false }
bevy_ecs = { version = "0.17.3", default-features = false }
bevy_math = { version = "0.17.3", default-features = false }
bevy_reflect = { version = "0.17.3", default-features = false }
bevy_time = { version = "0.17.3", default-features = false }
bevy_transform = { version = "0.17.3", default-features = false }
bevy_platform = { version = "0.17.3", default-features = false, features = ["std"] }
bevy_log = { version = "0.17.3", default-features = false }
bevy_color = { version = "0.17.3", default-features = false }

# Optional bevy crates for features
bevy_asset = { version = "0.17.3", default-features = false, optional = true }
bevy_scene = { version = "0.17.3", default-features = false, optional = true }
bevy_image = { version = "0.17.3", default-features = false, optional = true }
bevy_mesh = { version = "0.17.3", default-features = false, optional = true }
bevy_picking = { version = "0.17.3", default-features = false, optional = true }
bevy_camera = { version = "0.17.3", default-features = false, optional = true }
bevy_gizmos = { version = "0.17.3", default-features = false, optional = true }
bevy_sprite = { version = "0.17.3", default-features = false, optional = true }
bevy_pbr = { version = "0.17.3", default-features = false, optional = true }
bevy_core_pipeline = { version = "0.17.3", default-features = false, optional = true }

nalgebra = { version = "0.34.1", features = ["convert-glam030"] }
rapier2d = "0.31.0"
bitflags = "2.10.0"
Expand Down
54 changes: 38 additions & 16 deletions bevy_rapier3d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,38 +34,60 @@ default = [
dim3 = []
debug-render = ["debug-render-3d"]
debug-render-2d = [
"bevy/bevy_core_pipeline",
"bevy/bevy_sprite",
"bevy/bevy_gizmos",
"bevy_core_pipeline",
"bevy_sprite",
"bevy_gizmos",
"rapier3d/debug-render",
"bevy/bevy_asset",
"bevy_asset",
]
debug-render-3d = [
"bevy/bevy_core_pipeline",
"bevy/bevy_pbr",
"bevy/bevy_gizmos",
"bevy_core_pipeline",
"bevy_pbr",
"bevy_gizmos",
"rapier3d/debug-render",
"bevy/bevy_asset",
"bevy_asset",
]
rapier-debug-render = ["rapier3d/debug-render"]

parallel = ["rapier3d/parallel"]
simd-stable = ["rapier3d/simd-stable"]
simd-nightly = ["rapier3d/simd-nightly"]
serde-serialize = ["rapier3d/serde-serialize", "bevy/serialize", "serde"]
serde-serialize = ["rapier3d/serde-serialize", "bevy_ecs/serialize", "serde"]
enhanced-determinism = ["rapier3d/enhanced-determinism"]
headless = []
picking-backend = ["bevy/bevy_picking", "bevy/bevy_render"]
picking-backend = ["bevy_picking", "bevy_camera"]
async-collider = [
"bevy/bevy_asset",
"bevy/bevy_scene",
"bevy/bevy_render",
"bevy/bevy_image",
"bevy_asset",
"bevy_scene",
"bevy_image",
]
to-bevy-mesh = ["bevy/bevy_render", "bevy/bevy_asset"]
to-bevy-mesh = ["bevy_asset", "bevy_mesh"]

[dependencies]
bevy = { version = "0.17.3", default-features = false, features = ["std"] }
# Bevy crates
bevy_app = { version = "0.17.3", default-features = false }
bevy_derive = { version = "0.17.3", default-features = false }
bevy_ecs = { version = "0.17.3", default-features = false }
bevy_math = { version = "0.17.3", default-features = false }
bevy_reflect = { version = "0.17.3", default-features = false }
bevy_time = { version = "0.17.3", default-features = false }
bevy_transform = { version = "0.17.3", default-features = false }
bevy_platform = { version = "0.17.3", default-features = false, features = ["std"] }
bevy_log = { version = "0.17.3", default-features = false }
bevy_color = { version = "0.17.3", default-features = false }

# Optional bevy crates for features
bevy_asset = { version = "0.17.3", default-features = false, optional = true }
bevy_scene = { version = "0.17.3", default-features = false, optional = true }
bevy_image = { version = "0.17.3", default-features = false, optional = true }
bevy_mesh = { version = "0.17.3", default-features = false, optional = true }
bevy_picking = { version = "0.17.3", default-features = false, optional = true }
bevy_camera = { version = "0.17.3", default-features = false, optional = true }
bevy_gizmos = { version = "0.17.3", default-features = false, optional = true }
bevy_sprite = { version = "0.17.3", default-features = false, optional = true }
bevy_pbr = { version = "0.17.3", default-features = false, optional = true }
bevy_core_pipeline = { version = "0.17.3", default-features = false, optional = true }

nalgebra = { version = "0.34.1", features = ["convert-glam030"] }
rapier3d = "0.31.0"
bitflags = "2.10.0"
Expand Down
2 changes: 1 addition & 1 deletion src/control/character_controller.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::geometry::{Collider, CollisionGroups, ShapeCastHit};
use crate::math::{Real, Rot, Vect};
use bevy::prelude::*;
use bevy_ecs::{component::Component, entity::Entity};

use crate::plugin::context::RapierContextColliders;
pub use rapier::control::CharacterAutostep;
Expand Down
3 changes: 2 additions & 1 deletion src/dynamics/joint.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use bevy::prelude::*;
use bevy_ecs::component::Component;
use bevy_ecs::entity::Entity;
use rapier::dynamics::{ImpulseJointHandle, MultibodyJointHandle};

pub use rapier::dynamics::{JointAxesMask, JointAxis, MotorModel};
Expand Down
2 changes: 1 addition & 1 deletion src/dynamics/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pub use self::revolute_joint::*;
pub use self::rope_joint::*;
pub use self::spring_joint::*;

use bevy::reflect::Reflect;
use bevy_reflect::Reflect;
use rapier::dynamics::CoefficientCombineRule as RapierCoefficientCombineRule;

#[cfg(feature = "dim3")]
Expand Down
2 changes: 1 addition & 1 deletion src/dynamics/revolute_joint.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::dynamics::{GenericJoint, GenericJointBuilder};
use crate::math::{Real, Vect};
use crate::plugin::context::RapierRigidBodySet;
use bevy::prelude::Entity;
use bevy_ecs::entity::Entity;
use rapier::dynamics::{
JointAxesMask, JointAxis, JointLimits, JointMotor, MotorModel, RigidBodyHandle, RigidBodySet,
};
Expand Down
4 changes: 3 additions & 1 deletion src/dynamics/rigid_body.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
use crate::math::Vect;
use bevy::prelude::*;
use bevy_derive::Deref;
use bevy_ecs::prelude::*;
use bevy_reflect::prelude::*;
use rapier::prelude::{
Isometry, LockedAxes as RapierLockedAxes, RigidBodyActivation, RigidBodyHandle, RigidBodyType,
};
Expand Down
7 changes: 4 additions & 3 deletions src/geometry/collider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ use std::fmt;
#[cfg(all(feature = "dim3", feature = "async-collider"))]
use {
crate::geometry::{TriMeshFlags, VHACDParameters},
bevy::platform::collections::HashMap,
bevy_platform::collections::HashMap,
};

use bevy::prelude::*;
use bevy_ecs::prelude::*;
use bevy_reflect::prelude::*;

use bevy::platform::collections::HashSet;
use bevy_platform::collections::HashSet;
use rapier::geometry::Shape;
use rapier::prelude::{ColliderHandle, InteractionGroups, InteractionTestMode, SharedShape};

Expand Down
7 changes: 2 additions & 5 deletions src/geometry/collider_impl.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
#[cfg(all(feature = "dim3", feature = "async-collider"))]
use bevy_mesh::{Indices, Mesh, VertexAttributeValues};
#[cfg(feature = "dim2")]
use na::DVector;
#[cfg(all(feature = "dim3", feature = "async-collider"))]
use {
bevy::mesh::{Indices, VertexAttributeValues},
bevy::prelude::*,
};

use rapier::{
parry::transformation::voxelization::FillMode,
Expand Down
4 changes: 2 additions & 2 deletions src/geometry/shape_views/voxels.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ use rapier::prelude::{Aabb, VoxelData, VoxelState, Voxels};
use crate::math::{IVect, Vect};

#[cfg(feature = "dim2")]
use bevy::math::bounding::Aabb2d as BevyAabb;
use bevy_math::bounding::Aabb2d as BevyAabb;
#[cfg(feature = "dim3")]
use bevy::math::bounding::Aabb3d as BevyAabb;
use bevy_math::bounding::Aabb3d as BevyAabb;

fn aabb_na_from_bevy(aabb: &BevyAabb) -> Aabb {
rapier::parry::bounding_volume::Aabb::new(aabb.min.into(), aabb.max.into())
Expand Down
Loading