A Wavefront OBJ parser and utility crate.
[dependencies]
wavefront = "x.y.z"
let model = wavefront::Obj::from_file("tests/ship.obj").unwrap();
for [a, b, c] in model.triangles() {
// No index lookup required: wavefront handles this for you!
println!("{:?} {:?} {:?}", a.position(), b.position(), c.position());
}
-
Ergonomic API for parsing OBJs from files and readers.
-
Wrapper types that automatically perform indexing and hide the annoyances of the OBJ format if you just want to grab some triangles...
-
...but allows you to dip into the nitty-gritty details of OBJ if you want to do that too.
-
Correct handling of complex polygons.
-
No dependencies
-
Materials and the MTL support.
-
Object, group, polygon, vertex and vertex attribute insertion
-
Saving
-
Arbitrary geometry support.
wavefront
was born of a general feeling that the API of existing OBJ parsers
were either unnecessarily verbose or didn't properly handle the heirarchical
structure of the OBJ format. wavefront
aims to couple correct handling of the
format's features with a clean, terse API that allows you to jump straight to
the thing you want to do: rendering your model.
wavefront
is distributed under either of:
-
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
-
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at the disgression of the user.