All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SdrShaderProperty Class Reference

A specialized version of NdrProperty which holds shading information. More...

+ Inheritance diagram for SdrShaderProperty:

Public Member Functions

SDR_API SdrShaderProperty (const TfToken &name, const TfToken &type, const VtValue &defaultValue, bool isOutput, size_t arraySize, const NdrTokenMap &metadata, const NdrTokenMap &hints, const NdrOptionVec &options)
 
Metadata

The metadata returned here is a direct result of what the parser plugin is able to determine about the property.

See the documentation for a specific parser plugin to get help on what the parser is looking for to populate these values.

SDR_API const TfTokenGetLabel () const
 The label assigned to this property, if any. More...
 
SDR_API std::string GetHelp () const
 The help message assigned to this property, if any. More...
 
SDR_API const TfTokenGetPage () const
 The page (group), eg "Advanced", this property appears on, if any. More...
 
SDR_API const TfTokenGetWidget () const
 The widget "hint" that indicates the widget that can best display the type of data contained in this property, if any. More...
 
SDR_API const NdrTokenMap & GetHints () const
 Any UI "hints" that are associated with this property. More...
 
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 names and corresponding string values (if the option was specified with a value). More...
 
SDR_API std::string GetImplementationName () const
 Returns the implementation name of this property. More...
 
VStruct Information
SDR_API const TfTokenGetVStructMemberOf () const
 If this field is part of a vstruct, this is the name of the struct. More...
 
SDR_API const TfTokenGetVStructMemberName () const
 If this field is part of a vstruct, this is its name in the struct. More...
 
SDR_API bool IsVStructMember () const
 Returns true if this field is part of a vstruct. More...
 
SDR_API bool IsVStruct () const
 Returns true if the field is the head of a vstruct. More...
 
SDR_API const TfTokenGetVStructConditionalExpr () const
 If this field is part of a vstruct, this is the conditional expression. More...
 
Connection Information
SDR_API bool IsConnectable () const override
 Whether this property can be connected to other properties. More...
 
SDR_API const NdrTokenVec & GetValidConnectionTypes () const
 Gets the list of valid connection types for this property. More...
 
SDR_API bool CanConnectTo (const NdrProperty &other) const override
 Determines if this property can be connected to the specified property. More...
 
Utilities
SDR_API const NdrSdfTypeIndicator GetTypeAsSdfType () const override
 Converts the property's type from GetType() into a SdfValueTypeName. More...
 
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 is left up to the parser. More...
 
SDR_API bool IsDefaultInput () const
 Determines if the value held by this property is the default input for this node. More...
 
- Public Member Functions inherited from NdrProperty
NDR_API NdrProperty (const TfToken &name, const TfToken &type, const VtValue &defaultValue, bool isOutput, size_t arraySize, bool isDynamicArray, const NdrTokenMap &metadata)
 Constructor. More...
 
virtual NDR_API ~NdrProperty ()
 Destructor. More...
 
NDR_API const TfTokenGetName () const
 Gets the name of the property. More...
 
NDR_API const TfTokenGetType () const
 Gets the type of the property. More...
 
NDR_API const VtValueGetDefaultValue () const
 Gets this property's default value. More...
 
NDR_API bool IsOutput () const
 Whether this property is an output. More...
 
NDR_API bool IsArray () const
 Whether this property's type is an array type. More...
 
NDR_API bool IsDynamicArray () const
 Whether this property's array type is dynamically-sized. More...
 
NDR_API int GetArraySize () const
 Gets this property's array size. More...
 
virtual NDR_API std::string GetInfoString () const
 Gets a string with basic information about this property. More...
 
virtual NDR_API const NdrTokenMap & GetMetadata () const
 All of the metadata that came from the parse process. More...
 

Protected Member Functions

SdrShaderPropertyoperator= (const SdrShaderProperty &)=delete
 
- Protected Member Functions inherited from NdrProperty
NdrPropertyoperator= (const NdrProperty &)=delete
 

Protected Attributes

const NdrTokenMap _hints
 
const NdrOptionVec _options
 
NdrTokenVec _validConnectionTypes
 
TfToken _label
 
TfToken _page
 
TfToken _widget
 
TfToken _vstructMemberOf
 
TfToken _vstructMemberName
 
TfToken _vstructConditionalExpr
 
- Protected Attributes inherited from NdrProperty
TfToken _name
 
TfToken _type
 
VtValue _defaultValue
 
bool _isOutput
 
size_t _arraySize
 
bool _isDynamicArray
 
bool _isConnectable
 
NdrTokenMap _metadata
 

Friends

void SdrShaderNode::_PostProcessProperties ()
 

Detailed Description

A specialized version of NdrProperty which holds shading information.

Definition at line 96 of file shaderProperty.h.

Member Function Documentation

SDR_API bool CanConnectTo ( const NdrProperty other) const
overridevirtual

Determines if this property can be connected to the specified property.

Reimplemented from NdrProperty.

SDR_API std::string GetHelp ( ) const

The help message assigned to this property, if any.

SDR_API const NdrTokenMap& GetHints ( ) const
inline

Any UI "hints" that are associated with this property.

"Hints" are simple key/value pairs.

Definition at line 142 of file shaderProperty.h.

SDR_API std::string GetImplementationName ( ) const

Returns the implementation name of this property.

The name of the property is how to refer to the property in shader networks. The label is how to present this property to users. The implementation name is the name of the parameter this property represents in the implementation. Any client using the implementation must call this method to get the correct name; using getName() is not correct.

SDR_API const TfToken& GetLabel ( ) const
inline

The label assigned to this property, if any.

Distinct from the name returned from GetName(). In the context of a UI, the label value might be used as the display name for the property instead of the name.

Definition at line 123 of file shaderProperty.h.

SDR_API const NdrOptionVec& GetOptions ( ) const
inline

If the property has a set of valid values that are pre-determined, this will return the valid option names and corresponding string values (if the option was specified with a value).

Definition at line 148 of file shaderProperty.h.

SDR_API const TfToken& GetPage ( ) const
inline

The page (group), eg "Advanced", this property appears on, if any.

Definition at line 131 of file shaderProperty.h.

SDR_API const NdrSdfTypeIndicator GetTypeAsSdfType ( ) const
overridevirtual

Converts the property's type from GetType() into a SdfValueTypeName.

Two scenarios can result: an exact mapping from property type to Sdf type, and an inexact mapping. In the first scenario, the first element in the pair will be the cleanly-mapped Sdf type, and the second element, a TfToken, will be empty. In the second scenario, the Sdf type will be set to Token to indicate an unclean mapping, and the second element will be set to the original type returned by GetType().

Reimplemented from NdrProperty.

SDR_API const NdrTokenVec& GetValidConnectionTypes ( ) const
inline

Gets the list of valid connection types for this property.

This value comes from shader metadata, and may not be specified. The value from NdrProperty::GetType() can be used as a fallback, or you can use the connectability test in CanConnectTo().

Definition at line 210 of file shaderProperty.h.

SDR_API const TfToken& GetVStructConditionalExpr ( ) const
inline

If this field is part of a vstruct, this is the conditional expression.

Definition at line 189 of file shaderProperty.h.

SDR_API const TfToken& GetVStructMemberName ( ) const
inline

If this field is part of a vstruct, this is its name in the struct.

Definition at line 174 of file shaderProperty.h.

SDR_API const TfToken& GetVStructMemberOf ( ) const
inline

If this field is part of a vstruct, this is the name of the struct.

Definition at line 168 of file shaderProperty.h.

SDR_API const TfToken& GetWidget ( ) const
inline

The widget "hint" that indicates the widget that can best display the type of data contained in this property, if any.

Examples of this value could include "number", "slider", etc.

Definition at line 137 of file shaderProperty.h.

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 is left up to the parser.

Note: The type returned from GetTypeAsSdfType() will be Asset if this method returns true (even though its true underlying data type is string).

SDR_API bool IsConnectable ( ) const
inlineoverridevirtual

Whether this property can be connected to other properties.

If this returns true, connectability to a specific property can be tested via CanConnectTo().

Reimplemented from NdrProperty.

Definition at line 203 of file shaderProperty.h.

SDR_API bool IsDefaultInput ( ) const

Determines if the value held by this property is the default input for this node.

SDR_API bool IsVStruct ( ) const

Returns true if the field is the head of a vstruct.

SDR_API bool IsVStructMember ( ) const

Returns true if this field is part of a vstruct.


The documentation for this class was generated from the following file: