diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-04-28 18:24:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-28 18:24:01 +0200 |
| commit | 488aad0af3f772e14fd85b27bfff6c1db5d23829 (patch) | |
| tree | 4c19f613750fcd8779714915dbb752ce369a4173 /src/pipeline/debug_render_pipeline/debug_render_style.rs | |
| parent | 21a31bc1026d17d30b3a5ac35e6bb716dc66be6e (diff) | |
| parent | 7dc038aec66783d72abda446d6251385e6ad30f4 (diff) | |
| download | rapier-488aad0af3f772e14fd85b27bfff6c1db5d23829.tar.gz rapier-488aad0af3f772e14fd85b27bfff6c1db5d23829.tar.bz2 rapier-488aad0af3f772e14fd85b27bfff6c1db5d23829.zip | |
Merge pull request #315 from dimforge/debug-renderer
Add a basic lines-based debug-renderer
Diffstat (limited to 'src/pipeline/debug_render_pipeline/debug_render_style.rs')
| -rw-r--r-- | src/pipeline/debug_render_pipeline/debug_render_style.rs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/pipeline/debug_render_pipeline/debug_render_style.rs b/src/pipeline/debug_render_pipeline/debug_render_style.rs new file mode 100644 index 0000000..ac2b3a3 --- /dev/null +++ b/src/pipeline/debug_render_pipeline/debug_render_style.rs @@ -0,0 +1,60 @@ +use crate::math::Real; + +/// A color for debug-rendering. +/// +/// The default colors are provided in HSLA (Hue Saturation Lightness Alpha) format. +pub type DebugColor = [f32; 4]; + +/// Style used for computing colors when rendering the scene. +#[derive(Copy, Clone, Debug, PartialEq)] +pub struct DebugRenderStyle { + /// The number of subdivision used to approximate the curved + /// parts of a shape with smooth faces. + pub subdivisions: u32, + /// The number of subdivision used to approimate the curved + /// borders of round shapes. + pub border_subdivisions: u32, + /// The color of colliders attached to dynamic rigid-bodies. + pub collider_dynamic_color: DebugColor, + /// The color of colliders attached to fixed rigid-bodies. + pub collider_fixed_color: DebugColor, + /// The color of colliders attached to kinematic rigid-bodies. + pub collider_kinematic_color: DebugColor, + /// The color of colliders not attached to any rigid-body. + pub collider_parentless_color: DebugColor, + /// The color of the line between a rigid-body’s center-of-mass and the + /// anchors of its attached impulse joints. + pub impulse_joint_anchor_color: DebugColor, + /// The color of the line between the two anchors of an impulse joint. + pub impulse_joint_separation_color: DebugColor, + /// The color of the line between a rigid-body’s center-of-mass and the + /// anchors of its attached multibody joints. + pub multibody_joint_anchor_color: DebugColor, + /// The color of the line between the two anchors of a multibody joint. + pub multibody_joint_separation_color: DebugColor, + /// If a rigid-body is sleeping, its attached entities will have their colors + /// multiplied by this array. (For a joint, both attached rigid-bodies must be sleeping + /// or non-dynamic for this multiplier to be applied). + pub sleep_color_multiplier: [f32; 4], + /// The length of the local coordinate axes rendered for a rigid-body. + pub rigid_body_axes_length: Real, +} + +impl Default for DebugRenderStyle { + fn default() -> Self { + Self { + subdivisions: 20, + border_subdivisions: 5, + collider_dynamic_color: [340.0, 1.0, 0.3, 1.0], + collider_kinematic_color: [20.0, 1.0, 0.3, 1.0], + collider_fixed_color: [30.0, 1.0, 0.4, 1.0], + collider_parentless_color: [30.0, 1.0, 0.4, 1.0], + impulse_joint_anchor_color: [240.0, 0.5, 0.4, 1.0], + impulse_joint_separation_color: [0.0, 0.5, 0.4, 1.0], + multibody_joint_anchor_color: [300.0, 1.0, 0.4, 1.0], + multibody_joint_separation_color: [0.0, 1.0, 0.4, 1.0], + sleep_color_multiplier: [1.0, 1.0, 0.2, 1.0], + rigid_body_axes_length: 0.5, + } + } +} |
