aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline/debug_render_pipeline/debug_render_pipeline.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-04-28 13:05:00 +0200
committerSébastien Crozet <developer@crozet.re>2022-04-28 13:05:00 +0200
commit8ffb0d1658d448074f5ca2b77aee33f755761e24 (patch)
tree13cf800b8b4e755ec29a4e73a55bee82624a7f15 /src/pipeline/debug_render_pipeline/debug_render_pipeline.rs
parentfd12d76102884150a40b24ca812fffe35d26d09d (diff)
downloadrapier-8ffb0d1658d448074f5ca2b77aee33f755761e24.tar.gz
rapier-8ffb0d1658d448074f5ca2b77aee33f755761e24.tar.bz2
rapier-8ffb0d1658d448074f5ca2b77aee33f755761e24.zip
Take round shapes into account in 2D debug render
Diffstat (limited to 'src/pipeline/debug_render_pipeline/debug_render_pipeline.rs')
-rw-r--r--src/pipeline/debug_render_pipeline/debug_render_pipeline.rs35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/pipeline/debug_render_pipeline/debug_render_pipeline.rs b/src/pipeline/debug_render_pipeline/debug_render_pipeline.rs
index 36593ce..1c929c2 100644
--- a/src/pipeline/debug_render_pipeline/debug_render_pipeline.rs
+++ b/src/pipeline/debug_render_pipeline/debug_render_pipeline.rs
@@ -285,17 +285,20 @@ impl DebugRenderPipeline {
* Round shapes.
*/
TypedShape::RoundCuboid(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ let vtx = s.to_polyline(self.style.border_subdivisions);
+ backend.draw_line_strip(object, &vtx, pos, &Vector::repeat(1.0), color, true)
}
TypedShape::RoundTriangle(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ // TODO: take roundness into account.
+ self.render_shape(object, backend, &s.inner_shape, pos, color)
}
- // TypedShape::RoundTriMesh(s) => self.render_shape(backend, &s.base_shape, pos, color),
+ // TypedShape::RoundTriMesh(s) => self.render_shape(backend, &s.inner_shape, pos, color),
// TypedShape::RoundHeightField(s) => {
- // self.render_shape(backend, &s.base_shape, pos, color)
+ // self.render_shape(backend, &s.inner_shape, pos, color)
// }
TypedShape::RoundConvexPolygon(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ let vtx = s.to_polyline(self.style.border_subdivisions);
+ backend.draw_line_strip(object, &vtx, pos, &Vector::repeat(1.0), color, true)
}
TypedShape::Custom(_) => {}
}
@@ -326,7 +329,6 @@ impl DebugRenderPipeline {
let (vtx, idx) = &self.instances[&TypeId::of::<Cuboid>()];
backend.draw_polyline(object, vtx, idx, pos, &(s.half_extents * 2.0), color)
}
- #[cfg(feature = "dim3")]
TypedShape::Capsule(s) => {
let (vtx, idx) = s.to_outline(self.style.subdivisions);
backend.draw_polyline(object, &vtx, &idx, pos, &Vector::repeat(1.0), color)
@@ -426,23 +428,30 @@ impl DebugRenderPipeline {
* Round shapes.
*/
TypedShape::RoundCuboid(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ let (vtx, idx) = s.to_outline(self.style.border_subdivisions);
+ backend.draw_polyline(object, &vtx, &idx, pos, &Vector::repeat(1.0), color)
}
TypedShape::RoundTriangle(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ // TODO: take roundness into account.
+ self.render_shape(object, backend, &s.inner_shape, pos, color)
}
- // TypedShape::RoundTriMesh(s) => self.render_shape(object, backend, &s.base_shape, pos, color),
+ // TypedShape::RoundTriMesh(s) => self.render_shape(object, backend, &s.inner_shape, pos, color),
// TypedShape::RoundHeightField(s) => {
- // self.render_shape(object, backend, &s.base_shape, pos, color)
+ // self.render_shape(object, backend, &s.inner_shape, pos, color)
// }
TypedShape::RoundCylinder(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ let (vtx, idx) =
+ s.to_outline(self.style.subdivisions, self.style.border_subdivisions);
+ backend.draw_polyline(object, &vtx, &idx, pos, &Vector::repeat(1.0), color)
}
TypedShape::RoundCone(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ let (vtx, idx) =
+ s.to_outline(self.style.subdivisions, self.style.border_subdivisions);
+ backend.draw_polyline(object, &vtx, &idx, pos, &Vector::repeat(1.0), color)
}
TypedShape::RoundConvexPolyhedron(s) => {
- self.render_shape(object, backend, &s.base_shape, pos, color)
+ let (vtx, idx) = s.to_outline(self.style.border_subdivisions);
+ backend.draw_polyline(object, &vtx, &idx, pos, &Vector::repeat(1.0), color)
}
TypedShape::Custom(_) => {}
}