24#ifndef PXR_IMAGING_HD_MTLX_HDMTLX_H
25#define PXR_IMAGING_HD_MTLX_HDMTLX_H
29#include "pxr/imaging/hdMtlx/api.h"
32#include <unordered_map>
34#include <MaterialXCore/Library.h>
36MATERIALX_NAMESPACE_BEGIN
38 using DocumentPtr = std::shared_ptr<class Document>;
39MATERIALX_NAMESPACE_END
41PXR_NAMESPACE_OPEN_SCOPE
54const MaterialX::FileSearchPath&
60const MaterialX::DocumentPtr&
66HdMtlxConvertToString(
VtValue const& hdParameterValue);
69struct HdMtlxTexturePrimvarData {
70 HdMtlxTexturePrimvarData()
71 : mxHdTextureMap(MaterialX::StringMap()),
74 MaterialX::StringMap mxHdTextureMap;
75 std::set<SdfPath> hdTextureNodes;
76 std::set<SdfPath> hdPrimvarNodes;
84HdMtlxCreateMtlxDocumentFromHdNetwork(
87 SdfPath const& hdMaterialXNodePath,
89 MaterialX::DocumentPtr
const& libraries,
90 HdMtlxTexturePrimvarData *mxHdData =
nullptr);
95HdMtlxCreateMtlxDocumentFromHdMaterialNetworkInterface(
97 TfToken const& terminalNodeName,
99 MaterialX::DocumentPtr
const& libraries,
100 HdMtlxTexturePrimvarData *mxHdData =
nullptr);
102PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface for querying and mutating a material network.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Container of nodes and top-level terminal connections.
Describes an instance of a node within a network A node contains a (shader) type identifier,...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.