aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline/debug_render_pipeline/debug_render_backend.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2023-07-08 14:27:39 +0200
committerGitHub <noreply@github.com>2023-07-08 14:27:39 +0200
commit13b290ddd0b14b7b856b605db3132a94145ec099 (patch)
treeda9cb4d5c06e8a88934fdb6a58e740bfc240a582 /src/pipeline/debug_render_pipeline/debug_render_backend.rs
parentbf047ed474a40f86c74993496b4dc35cf89f97da (diff)
parenteac5a26925b3751cf38ad5be1bc8de318a63b3d0 (diff)
downloadrapier-13b290ddd0b14b7b856b605db3132a94145ec099.tar.gz
rapier-13b290ddd0b14b7b856b605db3132a94145ec099.tar.bz2
rapier-13b290ddd0b14b7b856b605db3132a94145ec099.zip
Merge pull request #474 from dimforge/debug-render-filtering
Add a predicate to the DebugRenderBackend to filter out objects that are being rendered
Diffstat (limited to 'src/pipeline/debug_render_pipeline/debug_render_backend.rs')
-rw-r--r--src/pipeline/debug_render_pipeline/debug_render_backend.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/pipeline/debug_render_pipeline/debug_render_backend.rs b/src/pipeline/debug_render_pipeline/debug_render_backend.rs
index 4fa86e4..cddf204 100644
--- a/src/pipeline/debug_render_pipeline/debug_render_backend.rs
+++ b/src/pipeline/debug_render_pipeline/debug_render_backend.rs
@@ -1,7 +1,7 @@
use crate::dynamics::{
ImpulseJoint, ImpulseJointHandle, Multibody, MultibodyLink, RigidBody, RigidBodyHandle,
};
-use crate::geometry::Collider;
+use crate::geometry::{Aabb, Collider, ContactPair};
use crate::math::{Isometry, Point, Real, Vector};
use crate::prelude::{ColliderHandle, MultibodyJointHandle};
use na::Scale;
@@ -13,12 +13,14 @@ pub enum DebugRenderObject<'a> {
RigidBody(RigidBodyHandle, &'a RigidBody),
/// A collider is being rendered.
Collider(ColliderHandle, &'a Collider),
+ /// The AABB of a collider is being rendered.
+ ColliderAabb(ColliderHandle, &'a Collider, &'a Aabb),
/// An impulse-joint is being rendered.
ImpulseJoint(ImpulseJointHandle, &'a ImpulseJoint),
/// A multibody joint is being rendered.
MultibodyJoint(MultibodyJointHandle, &'a Multibody, &'a MultibodyLink),
- /// Another element is being rendered.
- Other,
+ /// The contacts of a contact-pair are being rendered.
+ ContactPair(&'a ContactPair, &'a Collider, &'a Collider),
}
/// Trait implemented by graphics backends responsible for rendering the physics scene.
@@ -28,6 +30,11 @@ pub enum DebugRenderObject<'a> {
/// `DebugRenderStyle`. The backend is free to apply its own style, for example based on
/// the `object` being rendered.
pub trait DebugRenderBackend {
+ /// Predicate to filter-out some objects from the debug-rendering.
+ fn filter_object(&self, _object: DebugRenderObject) -> bool {
+ true
+ }
+
/// Draws a colored line.
///
/// Note that this method can be called multiple time for the same `object`.