24 #ifndef PXR_IMAGING_HD_MATERIAL_H
25 #define PXR_IMAGING_HD_MATERIAL_H
28 #include "pxr/imaging/hd/api.h"
29 #include "pxr/imaging/hd/sprim.h"
30 #include "pxr/imaging/hd/sceneDelegate.h"
32 PXR_NAMESPACE_OPEN_SCOPE
40 enum DirtyBits : HdDirtyBits {
44 DirtyResource = 1 << 3,
45 AllDirty = (DirtyParams | DirtyResource)
57 HdMaterial() =
delete;
58 HdMaterial(
const HdMaterial &) =
delete;
59 HdMaterial &operator =(
const HdMaterial &) =
delete;
104 std::map<TfToken, VtValue> parameters;
119 std::vector<HdMaterialRelationship> relationships;
120 std::vector<HdMaterialNode> nodes;
128 std::map<TfToken, HdMaterialNetwork> map;
129 std::vector<SdfPath> terminals;
151 return upstreamNode == rhs.upstreamNode
152 && upstreamOutputName == rhs.upstreamOutputName;
164 std::map<TfToken, VtValue> parameters;
165 std::map<TfToken, std::vector<HdMaterialConnection2>> inputConnections;
168 return nodeTypeId == rhs.nodeTypeId
169 && parameters == rhs.parameters
170 && inputConnections == rhs.inputConnections;
180 std::map<SdfPath, HdMaterialNode2> nodes;
181 std::map<TfToken, HdMaterialConnection2> terminals;
185 return nodes == rhs.nodes
186 && terminals == rhs.terminals
187 && primvars == rhs.primvars;
193 void HdMaterialNetwork2ConvertFromHdMaterialNetworkMap(
196 bool *isVolume =
nullptr);
222 PXR_NAMESPACE_CLOSE_SCOPE
224 #endif // PXR_IMAGING_HD_MATERIAL_H
Describes a material node which is made of a path, an identifier and a list of parameters.
Describes a material network composed of nodes, primvars, and relationships between the nodes and ter...
Token for efficient comparison, assignment, and hashing of known strings.
Describes an instance of a node within a network A node contains a (shader) type identifier, parameter values, and connections to upstream nodes.
std::vector< TfToken > TfTokenVector
Convenience types.
A path value used to locate objects in layers or scenegraphs.
Sprim (state prim) is a base class of managing state for non-drawable scene entity (e...
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
Hydra Schema for a material object.
VT_API bool operator==(VtDictionary const &, VtDictionary const &)
Equality comparison.
Container of nodes and top-level terminal connections.
Describes a map from network type to network.
Describes a connection between two nodes in a material.