openusd-schemas 0.7.0

Typed Rust APIs for USD's standard schemas (UsdGeom, UsdShade, UsdSkel, UsdPhysics, and more), built on openusd
Documentation
//! Integration test for the UsdProc schema views against a fixture.

use openusd::Result;

use openusd::sdf;
use openusd::tf::Token;
use openusd::usd::Stage;
use openusd_schemas::proc::GenerativeProcedural;

const FIXTURE: &str = "fixtures/usdProc_scene.usda";

#[test]
fn generative_procedural_from_fixture() -> Result<()> {
    let stage = Stage::open(FIXTURE)?;
    let p = GenerativeProcedural::get(&stage, sdf::path("/World/Scatter")?)?.expect("GenerativeProcedural");
    assert_eq!(p.procedural_system_attr().get::<Token>()?.as_deref(), Some("Houdini"));

    // A non-GenerativeProcedural prim reads back as None.
    assert!(GenerativeProcedural::get(&stage, sdf::path("/World")?)?.is_none());
    Ok(())
}