parry3d_f64/shape/
mod.rs

1//! Shapes supported by parry.
2
3pub use self::ball::Ball;
4pub use self::capsule::Capsule;
5pub use self::cuboid::Cuboid;
6pub use self::feature_id::{FeatureId, PackedFeatureId};
7pub use self::half_space::HalfSpace;
8pub use self::polygonal_feature_map::PolygonalFeatureMap;
9pub use self::round_shape::RoundShape;
10pub use self::segment::{Segment, SegmentPointLocation};
11#[cfg(feature = "serde-serialize")]
12pub(crate) use self::shape::DeserializableTypedShape;
13#[doc(inline)]
14pub use self::shape::{Shape, ShapeType, TypedShape};
15#[doc(inline)]
16pub use self::support_map::SupportMap;
17pub use self::triangle::{Triangle, TriangleOrientation, TrianglePointLocation};
18
19#[cfg(feature = "alloc")]
20pub use self::{
21    composite_shape::{SimdCompositeShape, TypedSimdCompositeShape},
22    compound::Compound,
23    polyline::Polyline,
24    shared_shape::SharedShape,
25    voxels::{
26        AxisMask, OctantPattern, VoxelData, VoxelPrimitiveGeometry, VoxelState, VoxelType, Voxels,
27    },
28};
29
30#[cfg(feature = "dim2")]
31#[cfg(feature = "alloc")]
32pub use self::convex_polygon::ConvexPolygon;
33#[cfg(feature = "dim2")]
34#[cfg(feature = "alloc")]
35pub use self::heightfield2::*;
36#[cfg(feature = "dim2")]
37pub use self::polygonal_feature2d::PolygonalFeature;
38
39#[cfg(feature = "dim3")]
40pub use self::cone::Cone;
41#[cfg(feature = "dim3")]
42#[cfg(feature = "alloc")]
43pub use self::convex_polyhedron::ConvexPolyhedron;
44#[cfg(feature = "dim3")]
45pub use self::cylinder::Cylinder;
46#[cfg(feature = "dim3")]
47#[cfg(feature = "alloc")]
48pub use self::heightfield3::*;
49#[cfg(feature = "dim3")]
50pub use self::polygonal_feature3d::PolygonalFeature;
51#[cfg(feature = "dim3")]
52pub use self::tetrahedron::{Tetrahedron, TetrahedronPointLocation};
53pub use self::triangle_pseudo_normals::TrianglePseudoNormals;
54#[cfg(feature = "alloc")]
55pub use self::trimesh::*;
56
57/// A cylinder dilated by a sphere (so it has round corners).
58#[cfg(feature = "dim3")]
59pub type RoundCylinder = RoundShape<Cylinder>;
60/// A cone dilated by a sphere (so it has round corners).
61#[cfg(feature = "dim3")]
62pub type RoundCone = RoundShape<Cone>;
63/// A cuboid dilated by a sphere (so it has round corners).
64pub type RoundCuboid = RoundShape<Cuboid>;
65/// A triangle dilated by a sphere (so it has round corners).
66pub type RoundTriangle = RoundShape<Triangle>;
67/// A convex polyhedron dilated by a sphere (so it has round corners).
68#[cfg(feature = "dim3")]
69#[cfg(feature = "alloc")]
70pub type RoundConvexPolyhedron = RoundShape<ConvexPolyhedron>;
71/// A convex polygon dilated by a sphere (so it has round corners).
72#[cfg(feature = "dim2")]
73#[cfg(feature = "alloc")]
74pub type RoundConvexPolygon = RoundShape<ConvexPolygon>;
75
76pub(crate) use self::round_shape::RoundShapeRef;
77
78mod ball;
79mod capsule;
80#[cfg(feature = "alloc")]
81#[doc(hidden)]
82pub mod composite_shape;
83#[cfg(feature = "alloc")]
84mod compound;
85mod cuboid;
86mod half_space;
87#[cfg(feature = "alloc")]
88mod polyline;
89mod round_shape;
90mod segment;
91#[doc(hidden)]
92pub mod shape;
93#[doc(hidden)]
94pub mod support_map;
95mod triangle;
96
97#[cfg(feature = "dim2")]
98#[cfg(feature = "alloc")]
99mod convex_polygon;
100#[cfg(feature = "dim2")]
101#[cfg(feature = "alloc")]
102mod heightfield2;
103
104#[cfg(feature = "dim3")]
105mod cone;
106#[cfg(feature = "dim3")]
107#[cfg(feature = "alloc")]
108mod convex_polyhedron;
109#[cfg(feature = "dim3")]
110mod cylinder;
111#[cfg(feature = "dim3")]
112#[cfg(feature = "alloc")]
113mod heightfield3;
114#[cfg(feature = "dim3")]
115mod polygonal_feature3d;
116mod polygonal_feature_map;
117#[cfg(feature = "dim3")]
118mod tetrahedron;
119#[cfg(feature = "alloc")]
120pub(crate) mod trimesh;
121// TODO: move this elsewhere?
122mod feature_id;
123#[cfg(feature = "dim2")]
124mod polygonal_feature2d;
125#[cfg(feature = "alloc")]
126mod shared_shape;
127mod triangle_pseudo_normals;
128#[cfg(feature = "alloc")]
129mod voxels;