use std::env;
use std::process;
use rust_usd::{Prim, Stage};
fn main() {
let path = env::args().nth(1).unwrap_or_else(|| {
eprintln!("usage: open_stage <path-to-usd-file>");
process::exit(2);
});
let stage = match Stage::open(&path) {
Ok(s) => s,
Err(e) => {
eprintln!("failed to open stage: {}", e.what());
process::exit(1);
}
};
println!("opened {}", path);
print_tree(&stage.pseudo_root(), 0);
}
fn print_tree(prim: &Prim, depth: usize) {
let indent = " ".repeat(depth);
let type_name = prim.type_name();
let label = if type_name.is_empty() {
String::new()
} else {
format!(" [{}]", type_name)
};
println!("{}{}{}", indent, prim.path(), label);
for child in prim.children() {
print_tree(&child, depth + 1);
}
}