HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HdMaterialNetworkInterface Class Referenceabstract

#include <materialNetworkInterface.h>

+ Inheritance diagram for HdMaterialNetworkInterface:

Classes

struct  InputConnection
 

Public Types

using InputConnectionVector = TfSmallVector< InputConnection, 4 >
 
using InputConnectionResult = std::pair< bool, InputConnection >
 

Public Member Functions

virtual ~HdMaterialNetworkInterface ()=default
 
virtual SdfPath GetMaterialPrimPath () const =0
 
virtual TfTokenVector GetNodeNames () const =0
 
virtual TfToken GetNodeType (const TfToken &nodeName) const =0
 
virtual TfTokenVector GetNodeTypeInfoKeys (const TfToken &nodeName) const =0
 
virtual VtValue GetNodeTypeInfoValue (const TfToken &nodeName, const TfToken &key) const =0
 
virtual TfTokenVector GetAuthoredNodeParameterNames (const TfToken &nodeName) const =0
 
virtual VtValue GetNodeParameterValue (const TfToken &nodeName, const TfToken &paramName) const =0
 
virtual TfTokenVector GetNodeInputConnectionNames (const TfToken &nodeName) const =0
 
virtual InputConnectionVector GetNodeInputConnection (const TfToken &nodeName, const TfToken &inputName) const =0
 
virtual void DeleteNode (const TfToken &nodeName)=0
 
virtual void SetNodeType (const TfToken &nodeName, const TfToken &nodeType)=0
 
virtual void SetNodeParameterValue (const TfToken &nodeName, const TfToken &paramName, const VtValue &value)=0
 
virtual void DeleteNodeParameter (const TfToken &nodeName, const TfToken &paramName)=0
 
virtual void SetNodeInputConnection (const TfToken &nodeName, const TfToken &inputName, const InputConnectionVector &connections)=0
 
virtual void DeleteNodeInputConnection (const TfToken &nodeName, const TfToken &inputName)=0
 
virtual TfTokenVector GetTerminalNames () const =0
 
virtual InputConnectionResult GetTerminalConnection (const TfToken &terminalName) const =0
 
virtual void DeleteTerminal (const TfToken &terminalName)=0
 
virtual void SetTerminalConnection (const TfToken &terminalName, const InputConnection &connection)=0
 

Detailed Description

Abstract interface for querying and mutating a material network.

This is useful for implementing matfilt functions which can be reused by future scene index implementations.

NOTE: Subclasses make no guarantee of thread-safety even for the const accessors as they might make use of internal caching for optimization. Should you want to read from a material from multiple threads, create a thread-specific interface instance. The non-const methods should never be considered thread-safe from multiple interface instances backed from the same concrete data.

Definition at line 48 of file materialNetworkInterface.h.

Member Typedef Documentation

Constructor & Destructor Documentation

virtual HdMaterialNetworkInterface::~HdMaterialNetworkInterface ( )
virtualdefault

Member Function Documentation

virtual void HdMaterialNetworkInterface::DeleteNode ( const TfToken nodeName)
pure virtual
virtual void HdMaterialNetworkInterface::DeleteNodeInputConnection ( const TfToken nodeName,
const TfToken inputName 
)
pure virtual
virtual void HdMaterialNetworkInterface::DeleteNodeParameter ( const TfToken nodeName,
const TfToken paramName 
)
pure virtual
virtual void HdMaterialNetworkInterface::DeleteTerminal ( const TfToken terminalName)
pure virtual
virtual TfTokenVector HdMaterialNetworkInterface::GetAuthoredNodeParameterNames ( const TfToken nodeName) const
pure virtual
virtual SdfPath HdMaterialNetworkInterface::GetMaterialPrimPath ( ) const
pure virtual
virtual InputConnectionVector HdMaterialNetworkInterface::GetNodeInputConnection ( const TfToken nodeName,
const TfToken inputName 
) const
pure virtual
virtual TfTokenVector HdMaterialNetworkInterface::GetNodeInputConnectionNames ( const TfToken nodeName) const
pure virtual
virtual TfTokenVector HdMaterialNetworkInterface::GetNodeNames ( ) const
pure virtual
virtual VtValue HdMaterialNetworkInterface::GetNodeParameterValue ( const TfToken nodeName,
const TfToken paramName 
) const
pure virtual
virtual TfToken HdMaterialNetworkInterface::GetNodeType ( const TfToken nodeName) const
pure virtual
virtual TfTokenVector HdMaterialNetworkInterface::GetNodeTypeInfoKeys ( const TfToken nodeName) const
pure virtual

Node type info is a collection of data related to the node type, often used to determine the node type.

For now, we only have getters for this, as we aren't really intending on mutating this in any filter.

Implemented in HdDataSourceMaterialNetworkInterface, and HdMaterialNetwork2Interface.

virtual VtValue HdMaterialNetworkInterface::GetNodeTypeInfoValue ( const TfToken nodeName,
const TfToken key 
) const
pure virtual
virtual InputConnectionResult HdMaterialNetworkInterface::GetTerminalConnection ( const TfToken terminalName) const
pure virtual
virtual TfTokenVector HdMaterialNetworkInterface::GetTerminalNames ( ) const
pure virtual

Terminal query & mutation

Implemented in HdDataSourceMaterialNetworkInterface, and HdMaterialNetwork2Interface.

virtual void HdMaterialNetworkInterface::SetNodeInputConnection ( const TfToken nodeName,
const TfToken inputName,
const InputConnectionVector connections 
)
pure virtual
virtual void HdMaterialNetworkInterface::SetNodeParameterValue ( const TfToken nodeName,
const TfToken paramName,
const VtValue value 
)
pure virtual
virtual void HdMaterialNetworkInterface::SetNodeType ( const TfToken nodeName,
const TfToken nodeType 
)
pure virtual
virtual void HdMaterialNetworkInterface::SetTerminalConnection ( const TfToken terminalName,
const InputConnection connection 
)
pure virtual

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