aboutsummaryrefslogtreecommitdiff
path: root/src/control
diff options
context:
space:
mode:
authorThierry Berger <contact@thierryberger.com>2024-11-19 16:33:26 +0100
committerGitHub <noreply@github.com>2024-11-19 16:33:26 +0100
commit510237cc29ebc667a8c158ef0340b7d1aa669a72 (patch)
tree772daf3fac2e463eba254900001fce5a659f2f92 /src/control
parentff79f4c67478f8c8045464cac22f9e57388cd4a0 (diff)
downloadrapier-510237cc29ebc667a8c158ef0340b7d1aa669a72.tar.gz
rapier-510237cc29ebc667a8c158ef0340b7d1aa669a72.tar.bz2
rapier-510237cc29ebc667a8c158ef0340b7d1aa669a72.zip
Profiling support (#743)
Diffstat (limited to 'src/control')
-rw-r--r--src/control/character_controller.rs5
-rw-r--r--src/control/ray_cast_vehicle_controller.rs3
2 files changed, 8 insertions, 0 deletions
diff --git a/src/control/character_controller.rs b/src/control/character_controller.rs
index 0b086fb..ba0baeb 100644
--- a/src/control/character_controller.rs
+++ b/src/control/character_controller.rs
@@ -211,6 +211,7 @@ impl KinematicCharacterController {
}
/// Computes the possible movement for a shape.
+ #[profiling::function]
pub fn move_shape(
&self,
dt: Real,
@@ -430,6 +431,7 @@ impl KinematicCharacterController {
self.offset.eval(up_extends) + 0.05
}
+ #[profiling::function]
fn detect_grounded_status_and_apply_friction(
&self,
dt: Real,
@@ -657,6 +659,7 @@ impl KinematicCharacterController {
Vector2::new(side_extent, up_extent)
}
+ #[profiling::function]
fn handle_stairs(
&self,
bodies: &RigidBodySet,
@@ -817,6 +820,7 @@ impl KinematicCharacterController {
/// impulses to the rigid-bodies surrounding the character shape at the time of the collisions.
/// Note that the impulse calculation is only approximate as it is not based on a global
/// constraints resolution scheme.
+ #[profiling::function]
pub fn solve_character_collision_impulses<'a>(
&self,
dt: Real,
@@ -846,6 +850,7 @@ impl KinematicCharacterController {
/// impulses to the rigid-bodies surrounding the character shape at the time of the collision.
/// Note that the impulse calculation is only approximate as it is not based on a global
/// constraints resolution scheme.
+ #[profiling::function]
fn solve_single_character_collision_impulse(
&self,
dt: Real,
diff --git a/src/control/ray_cast_vehicle_controller.rs b/src/control/ray_cast_vehicle_controller.rs
index 98b6339..eaa506b 100644
--- a/src/control/ray_cast_vehicle_controller.rs
+++ b/src/control/ray_cast_vehicle_controller.rs
@@ -321,6 +321,7 @@ impl DynamicRayCastVehicleController {
wheel.wheel_axle_ws = chassis_transform * wheel.axle_cs;
}
+ #[profiling::function]
fn ray_cast(
&mut self,
bodies: &RigidBodySet,
@@ -403,6 +404,7 @@ impl DynamicRayCastVehicleController {
}
/// Updates the vehicle’s velocity based on its suspension, engine force, and brake.
+ #[profiling::function]
pub fn update_vehicle(
&mut self,
dt: Real,
@@ -531,6 +533,7 @@ impl DynamicRayCastVehicleController {
}
}
+ #[profiling::function]
fn update_friction(&mut self, bodies: &mut RigidBodySet, colliders: &ColliderSet, dt: Real) {
let num_wheels = self.wheels.len();