All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
pipeline.h File Reference

Collection of module-scoped utilities for establishing pipeline conventions for things not currently suitable or possible to canonize in USD's schema modules. More...

+ Include dependency graph for pipeline.h:

Go to the source code of this file.

Functions

 SDF_DECLARE_HANDLES (SdfLayer)
 
USDUTILS_API TfToken UsdUtilsGetAlphaAttributeNameForColor (TfToken const &colorAttrName)
 Define the shading pipeline's convention for naming a companion alpha/opacity attribute and primvarnames given the full name of a color-valued attribute.
 
USDUTILS_API TfToken UsdUtilsGetModelNameFromRootLayer (const SdfLayerHandle &rootLayer)
 Returns the model name associated with a given root layer.
 
USDUTILS_API const std::set< UsdUtilsRegisteredVariantSet > & UsdUtilsGetRegisteredVariantSets ()
 Certain variant sets can be registered with the system.
 
USDUTILS_API void UsdUtilsRegisterVariantSet (const std::string &variantSetName, const UsdUtilsRegisteredVariantSet::SelectionExportPolicy &selectionExportPolicy)
 Registers variantSetName with selectionExportPolicy.
 
USDUTILS_API UsdPrim UsdUtilsGetPrimAtPathWithForwarding (const UsdStagePtr &stage, const SdfPath &path)
 If a valid UsdPrim already exists at path on the USD stage stage, returns it.
 
USDUTILS_API UsdPrim UsdUtilsUninstancePrimAtPath (const UsdStagePtr &stage, const SdfPath &path)
 Given a path, uninstances all the instanced prims in the namespace chain and returns the resulting prim at the requested path.
 
USDUTILS_API const TfTokenUsdUtilsGetPrimaryUVSetName ()
 Returns the name of the primary UV set used on meshes and nurbs.
 
USDUTILS_API const TfTokenUsdUtilsGetPrefName ()
 Returns the name of the reference position used on meshes and nurbs.
 
USDUTILS_API TfToken UsdUtilsGetMaterialsScopeName (const bool forceDefault=false)
 Get the name of the USD prim under which materials are expected to be authored.
 
USDUTILS_API TfToken UsdUtilsGetPrimaryCameraName (const bool forceDefault=false)
 Get the name of the USD prim representing the primary camera.
 

Variables

USDUTILS_API TfEnvSetting< bool > USD_FORCE_DEFAULT_MATERIALS_SCOPE_NAME
 

Detailed Description

Collection of module-scoped utilities for establishing pipeline conventions for things not currently suitable or possible to canonize in USD's schema modules.

Definition in file pipeline.h.

Function Documentation

◆ UsdUtilsGetAlphaAttributeNameForColor()

USDUTILS_API TfToken UsdUtilsGetAlphaAttributeNameForColor ( TfToken const &  colorAttrName)

Define the shading pipeline's convention for naming a companion alpha/opacity attribute and primvarnames given the full name of a color-valued attribute.

◆ UsdUtilsGetMaterialsScopeName()

USDUTILS_API TfToken UsdUtilsGetMaterialsScopeName ( const bool  forceDefault = false)

Get the name of the USD prim under which materials are expected to be authored.

The scope name can be configured in the metadata of a plugInfo.json file like so:

"UsdUtilsPipeline": {
"MaterialsScopeName": "SomeScopeName"
}

If forceDefault is true, any value specified in a plugInfo.json will be ignored and the built-in default will be returned. This is primarily used for unit testing purposes as a way to ignore any site-based configuration.

◆ UsdUtilsGetModelNameFromRootLayer()

USDUTILS_API TfToken UsdUtilsGetModelNameFromRootLayer ( const SdfLayerHandle &  rootLayer)

Returns the model name associated with a given root layer.

In order, it looks for defaultPrim metadata, a prim matching the filename, and then the first concrete root prim.

◆ UsdUtilsGetPrefName()

USDUTILS_API const TfToken & UsdUtilsGetPrefName ( )

Returns the name of the reference position used on meshes and nurbs.

By default the name is "pref".

◆ UsdUtilsGetPrimaryCameraName()

USDUTILS_API TfToken UsdUtilsGetPrimaryCameraName ( const bool  forceDefault = false)

Get the name of the USD prim representing the primary camera.

By default the name is "main_cam".

The camera name can be configured in the metadata of a plugInfo.json file like so:

"UsdUtilsPipeline": {
"PrimaryCameraName": "SomeCameraName"
}

If forceDefault is true, any value specified in a plugInfo.json will be ignored and the built-in default will be returned. This is primarily used for unit testing purposes as a way to ignore any site-based configuration.

◆ UsdUtilsGetPrimaryUVSetName()

USDUTILS_API const TfToken & UsdUtilsGetPrimaryUVSetName ( )

Returns the name of the primary UV set used on meshes and nurbs.

By default the name is "st".

◆ UsdUtilsGetPrimAtPathWithForwarding()

USDUTILS_API UsdPrim UsdUtilsGetPrimAtPathWithForwarding ( const UsdStagePtr &  stage,
const SdfPath path 
)

If a valid UsdPrim already exists at path on the USD stage stage, returns it.

It not, it checks to see if the path belongs to a prim underneath an instance and returns the corresponding prototype prim.

This returns an invalid UsdPrim if no corresponding prototype prim can be found and if no prim exists at the path.

This method is similar to UsdStage::GetPrimAtPath(), in that it will never author scene description, and therefore is safe to use as a "reader" in the Usd multi-threading model.

◆ UsdUtilsGetRegisteredVariantSets()

USDUTILS_API const std::set< UsdUtilsRegisteredVariantSet > & UsdUtilsGetRegisteredVariantSets ( )

Certain variant sets can be registered with the system.

Returns the set of UsdUtilsRegisteredVariantSet objects that are registered with the pipeline.

Variant sets can be registered through direct enumeration inside a plugInfo.json, or via a plugin for situations that require dynamic configuration at runtime.

This list will be empty until one or more plugInfo.json files discoverable by your USD installation contain an entry in the UsdUtilsPipeline group like the following:

"UsdUtilsPipeline": {
"RegisteredVariantSets": {
"modelingVariant": {
"selectionExportPolicy": "always"
},
"standin": {
"selectionExportPolicy": "never"
}
}
}

After the above variantSets are registered, this will then load any plugin that has a plugInfo.json with:

"UsdUtilsPipeline": {
"RegistersVariantSets": true
}

This plugin should then have code that registers code to run for UsdUtilsRegisteredVariantSet:

std::string variantSetName = ...;
UsdUtilsRegisterVariantSet(variantSetName, exportPolicy);
}
USDUTILS_API void UsdUtilsRegisterVariantSet(const std::string &variantSetName, const UsdUtilsRegisteredVariantSet::SelectionExportPolicy &selectionExportPolicy)
Registers variantSetName with selectionExportPolicy.
#define TF_REGISTRY_FUNCTION(KEY_TYPE)
Define a function that is called on demand by TfRegistryManager.
Class that holds information about variantSets that are registered with the pipeline.
SelectionExportPolicy
This specifies how the variantSet should be treated during export.
See also
UsdUtilsRegisterVariantSet

◆ UsdUtilsRegisterVariantSet()

USDUTILS_API void UsdUtilsRegisterVariantSet ( const std::string &  variantSetName,
const UsdUtilsRegisteredVariantSet::SelectionExportPolicy selectionExportPolicy 
)

Registers variantSetName with selectionExportPolicy.

See also
UsdUtilsGetRegisteredVariantSets

◆ UsdUtilsUninstancePrimAtPath()

USDUTILS_API UsdPrim UsdUtilsUninstancePrimAtPath ( const UsdStagePtr &  stage,
const SdfPath path 
)

Given a path, uninstances all the instanced prims in the namespace chain and returns the resulting prim at the requested path.

Returns a NULL prim if the given path doesn't exist and does not correspond to a valid prim inside a prototype.