Primvar Data Management#
Utilities to author and inspect UsdGeomPrimvars
UsdGeomPrimvars are often used when authoring UsdGeomPointBased prims (e.g meshes, curves, and point clouds) to describe surface varying properties that can affect how a prim is rendered, or to drive a surface deformation.
However, UsdGeomPrimvar data can be quite intricate to use, especially with respect to indexed vs non-indexed primvars, element size, the complexities of VtArray detach (copy-on-write) semantics, and the ambiguity of “native” attributes vs primvar attributes (e.g. mesh normals).
These classes aim to provide simpler entry points to avoid common mistakes with respect to UsdGeomPrimvar data handling.
Classes Summary#
- usdex::core::PrimvarData
A templated read-only class to manage the components of
UsdGeomPrimvardata as a single object without risk of detaching (copying) arrays.
Functions Summary#
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, int value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single scalar value.
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const pxr::GfVec2f &value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single scalar value.
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const pxr::TfToken &value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single scalar value.
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, float value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single scalar value.
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, int64_t value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single scalar value.
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const pxr::GfVec3f &value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single vector value.
- pxr::UsdGeomPrimvar usdex::core::createConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const std::string &value, const pxr::SdfValueTypeName &valueTypeName=pxr::SdfValueTypeName())
Create and author a constant primvar on a prim from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, int64_t value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, float value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const pxr::GfVec3f &value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const pxr::GfVec2f &value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const std::string &value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, const pxr::TfToken &value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
- bool usdex::core::setConstantPrimvar(pxr::UsdPrim prim, const std::string &name, int value, pxr::UsdTimeCode time=pxr::UsdTimeCode::Default())
Set data on an existing constant primvar from a single scalar value.
Typedefs Summary#
- usdex::core::FloatPrimvarData
An alias for
PrimvarDatathat holdsVtFloatArrayvalues (e.g widths or scale factors).- usdex::core::Int64PrimvarData
An alias for
PrimvarDatathat holdsVtInt64Arrayvalues (e.g ids that might be very large).- usdex::core::IntPrimvarData
An alias for
PrimvarDatathat holdsVtIntArrayvalues (e.g simple switch values or booleans consumable by shaders).- usdex::core::StringPrimvarData
An alias for
PrimvarDatathat holdsVtStringArrayvalues (e.g human readable descriptors).- usdex::core::TokenPrimvarData
An alias for
PrimvarDatathat holdsVtTokenArrayvalues (e.g more efficient human readable descriptors).- usdex::core::Vec2fPrimvarData
An alias for
PrimvarDatathat holdsVtVec2fArrayvalues (e.g texture coordinates).- usdex::core::Vec3fPrimvarData
An alias for
PrimvarDatathat holdsVtVec3fArrayvalues (e.g normals, colors, or other vectors).