25 #ifndef PXR_USD_SDR_SHADER_PROPERTY_H 26 #define PXR_USD_SDR_SHADER_PROPERTY_H 31 #include "pxr/usd/sdr/api.h" 35 #include "pxr/base/vt/value.h" 39 PXR_NAMESPACE_OPEN_SCOPE
43 #define SDR_PROPERTY_TYPE_TOKENS \ 45 ((String, "string")) \ 49 ((Normal, "normal")) \ 50 ((Vector, "vector")) \ 51 ((Matrix, "matrix")) \ 52 ((Struct, "struct")) \ 53 ((Terminal, "terminal")) \ 54 ((Vstruct, "vstruct")) \ 55 ((Unknown, "unknown")) 60 #define SDR_PROPERTY_METADATA_TOKENS \ 64 ((RenderType, "renderType")) \ 66 ((Widget, "widget")) \ 68 ((Options, "options")) \ 69 ((IsDynamicArray, "isDynamicArray")) \ 70 ((Connectable, "connectable")) \ 71 ((ValidConnectionTypes, "validConnectionTypes")) \ 72 ((VstructMemberOf, "vstructMemberOf")) \ 73 ((VstructMemberName, "vstructMemberName")) \ 74 ((VstructConditionalExpr, "vstructConditionalExpr"))\ 75 ((IsAssetIdentifier, "__SDR__isAssetIdentifier"))\ 76 ((ImplementationName, "__SDR__implementationName"))\ 77 ((SdrUsdDefinitionType, "sdrUsdDefinitionType"))\ 78 ((DefaultInput, "__SDR__defaultinput")) \ 79 ((Target, "__SDR__target")) \ 80 ((Colorspace, "__SDR__colorspace")) 84 #define SDR_PROPERTY_ROLE_TOKENS \ 87 #define SDR_PROPERTY_TOKENS \ 88 ((PageDelimiter, ":")) 92 SDR_PROPERTY_METADATA_TOKENS);
94 SDR_PROPERTY_ROLE_TOKENS);
112 const NdrTokenMap& metadata,
113 const NdrTokenMap& hints,
114 const NdrOptionVec& options
149 const NdrTokenMap&
GetHints()
const {
return _hints; }
176 return _vstructMemberOf;
182 return _vstructMemberName;
197 return _vstructConditionalExpr;
218 return _validConnectionTypes;
253 return _sdfTypeDefaultValue;
278 friend void SdrShaderNode::_PostProcessProperties();
283 void _SetUsdEncodingVersion(
int usdEncodingVersion);
287 void _ConvertToVStruct();
292 void _FinalizeProperty();
296 const NdrTokenMap _hints;
297 const NdrOptionVec _options;
300 NdrTokenVec _validConnectionTypes;
306 TfToken _vstructConditionalExpr;
312 int _usdEncodingVersion;
315 PXR_NAMESPACE_CLOSE_SCOPE
317 #endif // PXR_USD_SDR_SHADER_PROPERTY_H SDR_API const NdrTokenVec & GetValidConnectionTypes() const
Gets the list of valid connection types for this property.
SDR_API const TfToken & GetVStructMemberOf() const
If this field is part of a vstruct, this is the name of the struct.
SDR_API bool IsVStructMember() const
Returns true if this field is part of a vstruct.
SDR_API bool IsVStruct() const
Returns true if the field is the head of a vstruct.
SDR_API const TfToken & GetLabel() const
The label assigned to this property, if any.
SDR_API std::string GetHelp() const
The help message assigned to this property, if any.
A specialized version of NdrProperty which holds shading information.
SDR_API const TfToken & GetWidget() const
The widget "hint" that indicates the widget that can best display the type of data contained in this ...
SDR_API const TfToken & GetPage() const
The page (group), eg "Advanced", this property appears on, if any.
SDR_API const NdrOptionVec & GetOptions() const
If the property has a set of valid values that are pre-determined, this will return the valid option ...
SDR_API bool CanConnectTo(const NdrProperty &other) const override
Determines if this property can be connected to the specified property.
Token for efficient comparison, assignment, and hashing of known strings.
SDR_API const NdrTokenMap & GetHints() const
Any UI "hints" that are associated with this property.
SDR_API const TfToken & GetVStructConditionalExpr() const
If this field is part of a vstruct, this is the conditional expression.
Represents a property (input or output) that is part of a NdrNode instance.
SDR_API const NdrSdfTypeIndicator GetTypeAsSdfType() const override
Converts the property's type from GetType() into a SdfValueTypeName.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
SDR_API bool IsAssetIdentifier() const
Determines if the value held by this property is an asset identifier (eg, a file path); the logic for...
This file defines some macros that are useful for declaring and using static TfTokens.
SDR_API bool IsDefaultInput() const
Determines if the value held by this property is the default input for this node.
SDR_API const VtValue & GetDefaultValueAsSdfType() const override
Accessor for default value corresponding to the SdfValueTypeName returned by GetTypeAsSdfType.
SDR_API bool IsConnectable() const override
Whether this property can be connected to other properties.
SDR_API std::string GetImplementationName() const
Returns the implementation name of this property.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
SDR_API const TfToken & GetVStructMemberName() const
If this field is part of a vstruct, this is its name in the struct.