HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pipeline.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef PXR_USD_USD_UTILS_PIPELINE_H
25 #define PXR_USD_USD_UTILS_PIPELINE_H
26 
27 /// \file usdUtils/pipeline.h
28 ///
29 /// Collection of module-scoped utilities for establishing pipeline
30 /// conventions for things not currently suitable or possible to canonize in
31 /// USD's schema modules.
32 
33 #include "pxr/pxr.h"
34 #include "pxr/usd/usdUtils/api.h"
36 
37 #include "pxr/base/tf/envSetting.h"
38 #include "pxr/base/tf/token.h"
40 #include "pxr/usd/sdf/path.h"
41 #include "pxr/usd/usd/common.h"
42 
44 
46 
49 
50 /// Define the shading pipeline's convention for naming a companion
51 /// alpha/opacity attribute and primvarnames given the full name of a
52 /// color-valued attribute
55 
56 /// Returns the model name associated with a given root layer. In order,
57 /// it looks for defaultPrim metadata, a prim matching the filename,
58 /// and then the first concrete root prim.
60 TfToken UsdUtilsGetModelNameFromRootLayer(const SdfLayerHandle& rootLayer);
61 
62 /// Certain variant sets can be registered with the system.
63 /// \sa UsdUtilsRegisteredVariantSet
64 ///
65 
66 /// Returns the set of UsdUtilsRegisteredVariantSet objects that are registered
67 /// with the pipeline.
68 ///
69 /// This list will be empty until one or more plugInfo.json files
70 /// discoverable by your USD installation contain an entry in the
71 /// UsdUtilsPipeline group like the following:
72 /// \code{json}
73 /// "UsdUtilsPipeline": {
74 /// "RegisteredVariantSets": [
75 /// "modelingVariant": {
76 /// "selectionExportPolicy": {
77 /// "always"
78 /// }
79 /// },
80 /// "standin": {
81 /// "selectionExportPolicy": {
82 /// "never"
83 /// }
84 /// }
85 /// ]
86 /// }
87 /// \endcode
89 const std::set<UsdUtilsRegisteredVariantSet>& UsdUtilsGetRegisteredVariantSets();
90 
91 /// If a valid UsdPrim already exists at \p path on the USD stage \p stage,
92 /// returns it. It not, it checks to see if the path belongs to a prim
93 /// underneath an instance and returns the corresponding prototype prim.
94 ///
95 /// This returns an invalid UsdPrim if no corresponding prototype prim can be
96 /// found and if no prim exists at the path.
97 ///
98 /// This method is similar to UsdStage::GetPrimAtPath(), in that it will never
99 /// author scene description, and therefore is safe to use as a "reader" in the
100 /// Usd multi-threading model.
102 UsdPrim UsdUtilsGetPrimAtPathWithForwarding(const UsdStagePtr &stage,
103  const SdfPath &path);
104 
105 /// Given a path, uninstances all the instanced prims in the namespace chain and
106 /// returns the resulting prim at the requested path. Returns a NULL prim if the
107 /// given path doesn't exist and does not correspond to a valid prim inside a
108 /// prototype.
110 UsdPrim UsdUtilsUninstancePrimAtPath(const UsdStagePtr &stage,
111  const SdfPath &path);
112 
113 /// Returns the name of the primary UV set used on meshes and nurbs.
114 /// By default the name is "st".
117 
118 /// Returns the name of the reference position used on meshes and nurbs.
119 /// By default the name is "pref".
122 
123 /// Get the name of the USD prim under which materials are expected to be
124 /// authored.
125 ///
126 /// The scope name can be configured in the metadata of a plugInfo.json file
127 /// like so:
128 /// \code{json}
129 /// "UsdUtilsPipeline": {
130 /// "MaterialsScopeName": "SomeScopeName"
131 /// }
132 /// \endcode
133 ///
134 /// If \p forceDefault is true, any value specified in a plugInfo.json will be
135 /// ignored and the built-in default will be returned. This is primarily used
136 /// for unit testing purposes as a way to ignore any site-based configuration.
138 TfToken UsdUtilsGetMaterialsScopeName(const bool forceDefault = false);
139 
140 /// Get the name of the USD prim representing the primary camera.
141 /// By default the name is "main_cam".
142 ///
143 /// The camera name can be configured in the metadata of a plugInfo.json file
144 /// like so:
145 /// \code{json}
146 /// "UsdUtilsPipeline": {
147 /// "PrimaryCameraName": "SomeCameraName"
148 /// }
149 /// \endcode
150 ///
151 /// If \p forceDefault is true, any value specified in a plugInfo.json will be
152 /// ignored and the built-in default will be returned. This is primarily used
153 /// for unit testing purposes as a way to ignore any site-based configuration.
155 TfToken UsdUtilsGetPrimaryCameraName(const bool forceDefault = false);
156 
158 
159 #endif
Definition: layer.h:96
USDUTILS_API const TfToken & UsdUtilsGetPrimaryUVSetName()
GLsizei const GLchar *const * path
Definition: glcorearb.h:3340
USDUTILS_API TfToken UsdUtilsGetModelNameFromRootLayer(const SdfLayerHandle &rootLayer)
USDUTILS_API UsdPrim UsdUtilsGetPrimAtPathWithForwarding(const UsdStagePtr &stage, const SdfPath &path)
USDUTILS_API TfEnvSetting< bool > USD_FORCE_DEFAULT_MATERIALS_SCOPE_NAME
Definition: token.h:87
PXR_NAMESPACE_OPEN_SCOPE SDF_DECLARE_HANDLES(SdfLayer)
USDUTILS_API TfToken UsdUtilsGetPrimaryCameraName(const bool forceDefault=false)
USDUTILS_API const TfToken & UsdUtilsGetPrefName()
Definition: prim.h:132
Definition: path.h:288
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition: path.h:1375
USDUTILS_API TfToken UsdUtilsGetMaterialsScopeName(const bool forceDefault=false)
USDUTILS_API const std::set< UsdUtilsRegisteredVariantSet > & UsdUtilsGetRegisteredVariantSets()
USDUTILS_API UsdPrim UsdUtilsUninstancePrimAtPath(const UsdStagePtr &stage, const SdfPath &path)
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:91
#define USDUTILS_API
Definition: api.h:40
USDUTILS_API TfToken UsdUtilsGetAlphaAttributeNameForColor(TfToken const &colorAttrName)