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 higherlevel 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 higherdimentional 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
CompressedShell  Serialized compressed shell 
CompressedSolid  Serialized compressed solid 
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. 