Crate gltf [−] [src]
glTF 2.0 loader
This crate is intended to load glTF 2.0, a file format designed for the efficient runtime transmission of 3D scenes. The crate aims to provide rustic utilities that make working with glTF simple and intuitive.
Installation
Add gltf
version 0.6 to your Cargo.toml
.
[dependencies.gltf]
version = "0.6"
Examples
Loading glTF from the file system
The crate provides a from_path
method whereby one can import glTF from the
system.
extern crate gltf; fn main() { let path = "path/to/asset.gltf"; // This creates a `Future` that drives the loading // of glTF and all of its data. let import = gltf::Import::from_path(path); // The simpliest way of working with futures is to // block the thread until the glTF is ready. match import.sync() { Ok(gltf) => println!("{:#?}", gltf), Err(err) => println!("error: {:?}", err), } }
An Import
resolves to Gltf
, a data structure that provides helpful utilities
such as iterators for working with glTF.
Walking the node hierarchy
Below demonstates visiting the root Node
s of every Scene
, printing the
number of children each node has.
let gltf = gltf::Import::from_path(path).sync()?; for scene in gltf.scenes() { for node in scene.nodes() { // Do something with this node println!( "Node {} has {} children", node.index(), node.children().count(), ); } }
Reexports
pub use self::gltf::Gltf; |
pub use self::import::Data; |
pub use self::import::Import; |
Modules
accessor |
Contains |
animation |
Contains |
buffer |
Contains |
camera |
Contains |
extensions |
Contains extension specific data structures. |
gltf |
Contains |
image |
Contains |
import |
Contains functions for importing glTF 2.0 assets. |
json |
Contains (de)serializable data structures that match the glTF JSON text. |
material |
Contains |
mesh |
Contains |
root |
Contains |
scene |
Contains |
skin |
Contains |
texture |
Contains |
validation |
Contains functions that validate glTF JSON data against the specification. |