1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Native Rust implementation of [Universal Scene Description](https://openusd.org) (USD).
//!
//! Reads `.usda` (text), `.usdc` (binary), and `.usdz` (packaged) files without
//! any C++ dependencies.
//!
//! # Modules
//!
//! | Module | Purpose |
//! |--------|---------|
//! | [`sdf`] | Core data model — [`Value`](sdf::Value), [`Path`](sdf::Path), [`Spec`](sdf::Spec), [`AbstractData`](sdf::AbstractData) trait, and schema field keys. |
//! | [`usda`] | Text format reader. [`TextReader`](usda::TextReader) parses `.usda` files into [`AbstractData`](sdf::AbstractData). |
//! | [`usdc`] | Binary format reader. [`CrateData`](usdc::CrateData) parses `.usdc` files into [`AbstractData`](sdf::AbstractData). |
//! | [`usdz`] | Archive format reader. [`Archive`](usdz::Archive) extracts layers from `.usdz` packages. |
//! | [`ar`] | Asset resolution. [`Resolver`](ar::Resolver) trait maps asset paths (`@...@`) to physical locations; [`DefaultResolver`](ar::DefaultResolver) searches the filesystem. |
//! | [`compose`] | Layer collection. [`collect_layers`](compose::collect_layers) recursively resolves and loads the full layer stack from a root file. |
//! | [`stage`] | Composed stage. [`Stage`](stage::Stage) merges opinions across layers using [LIVERPS](https://docs.nvidia.com/learn-openusd/latest/creating-composition-arcs/strength-ordering/what-is-liverps.html) strength ordering. |
//! | [`expr`] | Variable expression parser and evaluator for USD's `\`...\`` expression syntax. |
//!
//! # Quick start
//!
//! ```no_run
//! use openusd::{ar, Stage};
//!
//! let resolver = ar::DefaultResolver::new();
//! let stage = Stage::open(&resolver, "scene.usda").unwrap();
//!
//! stage.traverse(|prim_path| {
//! println!("{prim_path}");
//! }).unwrap();
//! ```
pub use f16;
pub use Stage;