Crate truck_topology[−][src]
Topological structs: vertex, edge, wire, face, shell, and solid
Examples
The following sample code is a description of a topological tetrahedron as a solid model by this package.
use truck_topology::*; use std::iter::FromIterator; // Create vertices. A tetrahedron has four vertices. let v = Vertex::news(&[(), (), (), ()]); // Create edges. Vertex is implemented the Copy trait. let edge = [ Edge::new(&v[0], &v[1], ()), Edge::new(&v[0], &v[2], ()), Edge::new(&v[0], &v[3], ()), Edge::new(&v[1], &v[2], ()), Edge::new(&v[1], &v[3], ()), Edge::new(&v[2], &v[3], ()), ]; // Create boundaries of faces as the wire. // Edge is implemented the Copy trait. let wire = vec![ Wire::from_iter(vec![&edge[0], &edge[3], &edge[1].inverse()]), Wire::from_iter(vec![&edge[1], &edge[5], &edge[2].inverse()]), Wire::from_iter(vec![&edge[2], &edge[4].inverse(), &edge[0].inverse()]), Wire::from_iter(vec![&edge[3], &edge[5], &edge[4].inverse()]), ]; // Create faces by the boundary wires. // The boundary of face must be simple and closed. let mut face: Vec<Face<_, _, _>> = wire.into_iter().map(|wire| Face::new(vec![wire], ())).collect(); face[3].invert(); // Create shell of faces. Shell can be created by the Vec<Face>. let shell: Shell<_, _, _> = face.into(); // Create a tetrahedron solid by the boundary shell. // The boundaries of a solid must be closed and oriented. let solid = Solid::new(vec![shell]);
Elements and containers
Main structures in truck_topology
consist 4 topological elements and 2 topological containers.
topological elements
The following structures are topological elements.
Except Solid
, each topological element has a unique id
for each instance.
In higher-level packages, by mapping this id
to geometric information, you can draw a solid shape.
topological containers
The following structures are topological container.
The entities of Wire
and Shell
are std::collections::VecDeque<Edge>
and std::vec::Vec<Face>
,
respectively, and many methods inherited by Deref
and DerefMut
.
These containers are used for creating higher-dimentional topological elements and checked the
regularity (e.g. connectivity, closedness, and so on) before creating these elements.
Modules
errors | classifies the errors that can occur in this crate. |
face | Defines the boundary iterator. |
shell | classifies shell conditions and defines the face iterators. |
wire | define the edge iterators and the vertex iterator. |
Structs
Edge | Edge, which consists two vertices. |
Face | Face, attatched to a simple and closed wire. |
Shell | Shell, a connected compounded faces. |
Solid | Solid, attached to a closed shells. |
Vertex | Vertex, the minimum topological unit. |
Wire | Wire, a path or cycle which consists some edges. |
Type Definitions
EdgeID | The id that does not depend on the direction of the edge. |
FaceID | The id that does not depend on the direction of the face. |
Result |
|
VertexID | The id of vertex. |