aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline/debug_render_pipeline/outlines.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-04-22 15:45:53 +0200
committerSébastien Crozet <developer@crozet.re>2022-04-22 16:11:23 +0200
commitbc2ae4b512b8bc7a2b61dd24d9685289453681c5 (patch)
tree576d950ee18b0a3a2e69a48db5fd2ba14f7bcd39 /src/pipeline/debug_render_pipeline/outlines.rs
parent21a31bc1026d17d30b3a5ac35e6bb716dc66be6e (diff)
downloadrapier-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.rs36
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
+}