parry2d/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::{CompositeShape, CompositeShapeRef, TypedCompositeShape},
22    compound::Compound,
23    polyline::Polyline,
24    shared_shape::SharedShape,
25    voxels::{AxisMask, OctantPattern, VoxelData, VoxelState, VoxelType, Voxels, VoxelsChunkRef},
26};
27
28#[cfg(feature = "dim2")]
29#[cfg(feature = "alloc")]
30pub use self::convex_polygon::ConvexPolygon;
31#[cfg(feature = "dim2")]
32#[cfg(feature = "alloc")]
33pub use self::heightfield2::*;
34#[cfg(feature = "dim2")]
35pub use self::polygonal_feature2d::PolygonalFeature;
36
37#[cfg(feature = "dim3")]
38pub use self::cone::Cone;
39#[cfg(feature = "dim3")]
40#[cfg(feature = "alloc")]
41pub use self::convex_polyhedron::ConvexPolyhedron;
42#[cfg(feature = "dim3")]
43pub use self::cylinder::Cylinder;
44#[cfg(feature = "dim3")]
45#[cfg(feature = "alloc")]
46pub use self::heightfield3::*;
47#[cfg(feature = "dim3")]
48pub use self::polygonal_feature3d::PolygonalFeature;
49#[cfg(feature = "dim3")]
50pub use self::tetrahedron::{Tetrahedron, TetrahedronPointLocation};
51pub use self::triangle_pseudo_normals::TrianglePseudoNormals;
52#[cfg(feature = "alloc")]
53pub use self::trimesh::*;
54
55/// A cylinder dilated by a sphere (so it has round corners).
56#[cfg(feature = "dim3")]
57pub type RoundCylinder = RoundShape<Cylinder>;
58/// A cone dilated by a sphere (so it has round corners).
59#[cfg(feature = "dim3")]
60pub type RoundCone = RoundShape<Cone>;
61/// A cuboid dilated by a sphere (so it has round corners).
62pub type RoundCuboid = RoundShape<Cuboid>;
63/// A triangle dilated by a sphere (so it has round corners).
64pub type RoundTriangle = RoundShape<Triangle>;
65/// A convex polyhedron dilated by a sphere (so it has round corners).
66#[cfg(feature = "dim3")]
67#[cfg(feature = "alloc")]
68pub type RoundConvexPolyhedron = RoundShape<ConvexPolyhedron>;
69/// A convex polygon dilated by a sphere (so it has round corners).
70#[cfg(feature = "dim2")]
71#[cfg(feature = "alloc")]
72pub type RoundConvexPolygon = RoundShape<ConvexPolygon>;
73
74pub(crate) use self::round_shape::RoundShapeRef;
75
76mod ball;
77mod capsule;
78#[cfg(feature = "alloc")]
79#[doc(hidden)]
80pub mod composite_shape;
81#[cfg(feature = "alloc")]
82mod compound;
83mod cuboid;
84mod half_space;
85#[cfg(feature = "alloc")]
86mod polyline;
87mod round_shape;
88mod segment;
89#[doc(hidden)]
90pub mod shape;
91#[doc(hidden)]
92pub mod support_map;
93mod triangle;
94
95#[cfg(feature = "dim2")]
96#[cfg(feature = "alloc")]
97mod convex_polygon;
98#[cfg(feature = "dim2")]
99#[cfg(feature = "alloc")]
100mod heightfield2;
101
102#[cfg(feature = "dim3")]
103mod cone;
104#[cfg(feature = "dim3")]
105#[cfg(feature = "alloc")]
106mod convex_polyhedron;
107#[cfg(feature = "dim3")]
108mod cylinder;
109#[cfg(feature = "dim3")]
110#[cfg(feature = "alloc")]
111mod heightfield3;
112#[cfg(feature = "dim3")]
113mod polygonal_feature3d;
114mod polygonal_feature_map;
115#[cfg(feature = "dim3")]
116mod tetrahedron;
117#[cfg(feature = "alloc")]
118pub(crate) mod trimesh;
119// TODO: move this elsewhere?
120mod feature_id;
121#[cfg(feature = "dim2")]
122mod polygonal_feature2d;
123#[cfg(feature = "alloc")]
124mod shared_shape;
125mod triangle_pseudo_normals;
126#[cfg(feature = "alloc")]
127mod voxels;