ncollide3d/transformation/to_trimesh/
capsule_to_trimesh.rs

1use super::ToTriMesh;
2use crate::procedural;
3use crate::procedural::TriMesh;
4use crate::shape::Capsule;
5use na;
6use simba::scalar::RealField;
7
8impl<N: RealField + Copy> ToTriMesh<N> for Capsule<N> {
9    type DiscretizationParameter = (u32, u32);
10
11    fn to_trimesh(&self, (ntheta_subdiv, nphi_subdiv): (u32, u32)) -> TriMesh<N> {
12        let diameter = self.radius * na::convert(2.0f64);
13        let height = self.half_height * na::convert(2.0f64);
14        // FIXME: the fact `capsule` does not take directly the half_height and the radius feels
15        // inconsistant.
16        procedural::capsule(&diameter, &height, ntheta_subdiv, nphi_subdiv)
17    }
18}