diff options
| author | Sébastien Crozet <developer@crozet.re> | 2023-07-08 14:27:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-08 14:27:39 +0200 |
| commit | 13b290ddd0b14b7b856b605db3132a94145ec099 (patch) | |
| tree | da9cb4d5c06e8a88934fdb6a58e740bfc240a582 /src/pipeline/debug_render_pipeline/debug_render_backend.rs | |
| parent | bf047ed474a40f86c74993496b4dc35cf89f97da (diff) | |
| parent | eac5a26925b3751cf38ad5be1bc8de318a63b3d0 (diff) | |
| download | rapier-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.rs | 13 |
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`. |
