[−][src]Crate stl_io
stl_io
is a crate for reading and writing STL (STereoLithography) files.
It can read both, binary and ascii STL in a safe manner.
Writing is limited to binary STL, which is more compact anyway.
Examples
Read STL file:
use std::fs::OpenOptions; let mut file = OpenOptions::new().read(true).open("mesh.stl").unwrap(); let stl = stl_io::read_stl(&mut file).unwrap();
Read number of triangles in a STL file:
use std::fs::OpenOptions; let mut file = OpenOptions::new().read(true).open("mesh.stl").unwrap(); let size_hint = stl_io::create_stl_reader(&mut file).unwrap().size_hint();
Write STL file:
use std::fs::OpenOptions; use stl_io::{Normal, Vertex}; let mesh = [stl_io::Triangle { normal: Normal::new([1.0, 0.0, 0.0]), vertices: [Vertex::new([0.0, -1.0, 0.0]), Vertex::new([0.0, 1.0, 0.0]), Vertex::new([0.0, 0.0, 0.5])]}]; let mut file = OpenOptions::new().write(true).create_new(true).open("mesh.stl").unwrap(); stl_io::write_stl(&mut file, mesh.iter()).unwrap();
Structs
AsciiStlReader | Struct for ascii STL reader. |
BinaryStlReader | Struct for binary STL reader. |
IndexedMesh | STL Mesh in indexed form, consisting of a list of Vertices and a list of indexed Triangles. |
IndexedTriangle | STL Triangle in indexed form, consisting of a normal and three indices to vertices in the vertex list. This format is more compact, since in real world Meshes Triangles usually share vertices with other Triangles. |
Triangle | STL Triangle, consisting of a normal and three vertices. This is the format Triangles are usually stored in STL files. |
Vector | Float Vector with approx_eq. |
Traits
TriangleIterator | Iterates over all Triangles in a STL. |
Functions
create_stl_reader | Attempts to create a TriangleIterator for either ascii or binary STL from std::io::Read. |
read_stl | Attempts to read either ascci or binary STL from std::io::Read. |
write_stl | Write to std::io::Write as documented in Wikipedia. |
Type Definitions
Normal | STL Normal - a vector perpendicular to a Triangle in a 3D Mesh. |
Vertex | STL vertex - a corner of a Triangle in a 3D Mesh. |