Loading...
Searching...
No Matches
variantSpec.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_SDF_VARIANT_SPEC_H
25#define PXR_USD_SDF_VARIANT_SPEC_H
26
28
29#include "pxr/pxr.h"
30#include "pxr/usd/sdf/api.h"
31#include "pxr/usd/sdf/declareSpec.h"
32#include "pxr/usd/sdf/proxyTypes.h"
33#include "pxr/usd/sdf/spec.h"
34#include <string>
35
36PXR_NAMESPACE_OPEN_SCOPE
37
38SDF_DECLARE_HANDLES(SdfLayer);
39SDF_DECLARE_HANDLES(SdfPrimSpec);
40SDF_DECLARE_HANDLES(SdfVariantSpec);
41SDF_DECLARE_HANDLES(SdfVariantSetSpec);
42
43class SdfPath;
44
55class SdfVariantSpec : public SdfSpec
56{
57 SDF_DECLARE_SPEC(SdfVariantSpec, SdfSpec);
58
59public:
63
65 SDF_API
66 static SdfVariantSpecHandle New(const SdfVariantSetSpecHandle& owner,
67 const std::string& name);
68
70
73
75 SDF_API
76 std::string GetName() const;
77
79 SDF_API
81
85
87 SDF_API
88 SdfVariantSetSpecHandle GetOwner() const;
89
91 SDF_API
92 SdfPrimSpecHandle GetPrimSpec() const;
93
98 SDF_API
99 SdfVariantSetsProxy GetVariantSets() const;
100
102 SDF_API
103 std::vector<std::string> GetVariantNames(const std::string& name) const;
104
106};
107
118SDF_API SdfVariantSpecHandle SdfCreateVariantInLayer(
119 const SdfLayerHandle &layer,
120 const SdfPath &primPath,
121 const std::string &variantSetName,
122 const std::string &variantName );
123
124PXR_NAMESPACE_CLOSE_SCOPE
125
126#endif /* SDF_VARIANT_SPEC_H */
A scene description container that can combine with other such containers to form simple component as...
Definition: layer.h:100
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
Represents a prim description in an SdfLayer object.
Definition: primSpec.h:75
Base class for all Sdf spec classes.
Definition: spec.h:50
Represents a coherent set of alternate representations for part of a scene.
Represents a single variant in a variant set.
Definition: variantSpec.h:56
SDF_API std::string GetName() const
Returns the name of this variant.
SDF_API SdfPrimSpecHandle GetPrimSpec() const
Get the prim spec owned by this variant.
SDF_API TfToken GetNameToken() const
Returns the name of this variant.
SDF_API std::vector< std::string > GetVariantNames(const std::string &name) const
Returns list of variant names for the given variant set.
SDF_API SdfVariantSetSpecHandle GetOwner() const
Return the SdfVariantSetSpec that owns this variant.
SDF_API SdfVariantSetsProxy GetVariantSets() const
Returns the nested variant sets.
static SDF_API SdfVariantSpecHandle New(const SdfVariantSetSpecHandle &owner, const std::string &name)
Constructs a new instance.
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88
SDF_API SdfVariantSpecHandle SdfCreateVariantInLayer(const SdfLayerHandle &layer, const SdfPath &primPath, const std::string &variantSetName, const std::string &variantName)
Convenience function to create a variant spec for a given variant set and a prim at the given path wi...