use std::env;
use std::process;
use rust_usd::{InitialLoadSet, Stage};
fn main() {
let path = env::args().nth(1).unwrap_or_else(|| {
eprintln!("usage: payload_control <path-to-usd-file-with-payloads>");
process::exit(2);
});
let load_all = open(&path, InitialLoadSet::All);
let load_none = open(&path, InitialLoadSet::None);
println!("InitialLoadSet=All: {} mesh(es)", load_all.meshes().len());
println!("InitialLoadSet=None: {} mesh(es)", load_none.meshes().len());
let payload_path = env::args().nth(2);
if let Some(target) = payload_path {
load_none.load(&target);
println!(
"after load({}): {} mesh(es)",
target,
load_none.meshes().len()
);
load_none.unload(&target);
println!(
"after unload({}): {} mesh(es)",
target,
load_none.meshes().len()
);
} else {
println!("(pass an SDF path as a second arg to demo load/unload)");
}
}
fn open(path: &str, load: InitialLoadSet) -> Stage {
Stage::open_with_load_set(path, load).unwrap_or_else(|e| {
eprintln!("failed to open {}: {}", path, e.what());
process::exit(1);
})
}