Skip to main content

hoomd_geometry/
shape.rs

1// Copyright (c) 2024-2026 The Regents of the University of Michigan.
2// Part of hoomd-rs, released under the BSD 3-Clause License.
3
4//! Geometric representations of common shapes in N-dimensional space.
5//!
6//! Geometric primitives defined in this package are designed to be lightweight
7//! representations of geometry, independent of a global reference. This design
8//! makes struct suitible for use with simulation code, and ensures shapes are
9//! constructible from minimal information.
10//!
11//! For shapes with parameterizable dimension, a `const N: usize` generic parameter
12//! encodes the dimensionality.
13
14mod capsule;
15pub use capsule::{Capsule, Spherocylinder};
16
17mod convex_polytope;
18pub use convex_polytope::{ConvexPolygon, ConvexPolyhedron, ConvexPolytope};
19
20mod cuboid;
21pub use cuboid::{Cuboid, Hypercuboid, Rectangle};
22
23mod cylinder;
24pub use cylinder::Cylinder;
25
26mod eighteight;
27pub use eighteight::EightEight;
28
29mod hyperbolic_convex_polytope;
30pub use hyperbolic_convex_polytope::{HyperbolicConvexPolygon, HyperbolicConvexPolytope};
31
32mod hyperellipsoid;
33pub use hyperellipsoid::{Ellipse, Ellipsoid, Hyperellipsoid};
34
35mod simplex3;
36pub use simplex3::Simplex3;
37
38mod sphere;
39pub use sphere::{Circle, Hypersphere, Sphere};
40
41mod sphero;
42pub use sphero::Sphero;