diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-04-22 15:45:53 +0200 |
|---|---|---|
| committer | Sébastien Crozet <developer@crozet.re> | 2022-04-22 16:11:23 +0200 |
| commit | bc2ae4b512b8bc7a2b61dd24d9685289453681c5 (patch) | |
| tree | 576d950ee18b0a3a2e69a48db5fd2ba14f7bcd39 /src/pipeline/debug_render_pipeline/outlines.rs | |
| parent | 21a31bc1026d17d30b3a5ac35e6bb716dc66be6e (diff) | |
| download | rapier-bc2ae4b512b8bc7a2b61dd24d9685289453681c5.tar.gz rapier-bc2ae4b512b8bc7a2b61dd24d9685289453681c5.tar.bz2 rapier-bc2ae4b512b8bc7a2b61dd24d9685289453681c5.zip | |
Add a basic lines-based debug-renderer
Diffstat (limited to 'src/pipeline/debug_render_pipeline/outlines.rs')
| -rw-r--r-- | src/pipeline/debug_render_pipeline/outlines.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/pipeline/debug_render_pipeline/outlines.rs b/src/pipeline/debug_render_pipeline/outlines.rs new file mode 100644 index 0000000..01a441e --- /dev/null +++ b/src/pipeline/debug_render_pipeline/outlines.rs @@ -0,0 +1,36 @@ +use crate::geometry::{Ball, Cuboid}; +#[cfg(feature = "dim3")] +use crate::geometry::{Cone, Cylinder}; +use crate::math::{Point, Real, Vector}; +use std::any::TypeId; +use std::collections::HashMap; + +#[cfg(feature = "dim2")] +pub fn instances(nsubdivs: u32) -> HashMap<TypeId, Vec<Point<Real>>> { + let mut result = HashMap::new(); + result.insert( + TypeId::of::<Cuboid>(), + Cuboid::new(Vector::repeat(0.5)).to_polyline(), + ); + result.insert(TypeId::of::<Ball>(), Ball::new(0.5).to_polyline(nsubdivs)); + result +} + +#[cfg(feature = "dim3")] +pub fn instances(nsubdivs: u32) -> HashMap<TypeId, (Vec<Point<Real>>, Vec<[u32; 2]>)> { + let mut result = HashMap::new(); + result.insert( + TypeId::of::<Cuboid>(), + Cuboid::new(Vector::repeat(0.5)).to_outline(), + ); + result.insert(TypeId::of::<Ball>(), Ball::new(0.5).to_outline(nsubdivs)); + result.insert( + TypeId::of::<Cone>(), + Cone::new(0.5, 0.5).to_outline(nsubdivs), + ); + result.insert( + TypeId::of::<Cylinder>(), + Cylinder::new(0.5, 0.5).to_outline(nsubdivs), + ); + result +} |
