aboutsummaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/collider.rs2
-rw-r--r--src/geometry/collider_shape.rs16
2 files changed, 16 insertions, 2 deletions
diff --git a/src/geometry/collider.rs b/src/geometry/collider.rs
index 232b246..4ad3295 100644
--- a/src/geometry/collider.rs
+++ b/src/geometry/collider.rs
@@ -4,8 +4,6 @@ use crate::geometry::{ColliderShape, InteractionGroups};
use crate::math::{AngVector, Isometry, Point, Real, Rotation, Vector, DIM};
use cdl::bounding_volume::AABB;
use cdl::shape::Shape;
-#[cfg(feature = "dim2")]
-use cdl::shape::{ConvexPolygon, RoundConvexPolygon};
bitflags::bitflags! {
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
diff --git a/src/geometry/collider_shape.rs b/src/geometry/collider_shape.rs
index 05067ef..ed91b82 100644
--- a/src/geometry/collider_shape.rs
+++ b/src/geometry/collider_shape.rs
@@ -154,6 +154,14 @@ impl ColliderShape {
let mut parts = vec![];
let decomp = VHACD::decompose(params, &vertices, &indices, true);
+ #[cfg(feature = "dim2")]
+ for vertices in decomp.compute_exact_convex_hulls(&vertices, &indices) {
+ if let Some(convex) = Self::convex_polyline(vertices) {
+ parts.push((Isometry::identity(), convex));
+ }
+ }
+
+ #[cfg(feature = "dim3")]
for (vertices, indices) in decomp.compute_exact_convex_hulls(&vertices, &indices) {
if let Some(convex) = Self::convex_mesh(vertices, &indices) {
parts.push((Isometry::identity(), convex));
@@ -174,6 +182,14 @@ impl ColliderShape {
let mut parts = vec![];
let decomp = VHACD::decompose(params, &vertices, &indices, true);
+ #[cfg(feature = "dim2")]
+ for vertices in decomp.compute_exact_convex_hulls(&vertices, &indices) {
+ if let Some(convex) = Self::round_convex_polyline(vertices, border_radius) {
+ parts.push((Isometry::identity(), convex));
+ }
+ }
+
+ #[cfg(feature = "dim3")]
for (vertices, indices) in decomp.compute_exact_convex_hulls(&vertices, &indices) {
if let Some(convex) = Self::round_convex_mesh(vertices, &indices, border_radius) {
parts.push((Isometry::identity(), convex));