24 #ifndef EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_MATFILT_RESOLVE_VSTRUCTS_H 25 #define EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_MATFILT_RESOLVE_VSTRUCTS_H 28 #include "pxr/imaging/hd/materialNetworkInterface.h" 29 #include "hdPrman/matfiltFilterChain.h" 33 PXR_NAMESPACE_OPEN_SCOPE
41 void MatfiltResolveVstructs(
44 const std::map<TfToken, VtValue> &contextValues,
45 const NdrTokenVec &shaderTypePriority,
46 std::vector<std::string> *outputErrorMessages);
50 void MatfiltResolveVstructs(
52 const NdrTokenVec &shaderTypePriority,
53 bool enableConditions);
56 class MatfiltVstructConditionalEvaluatorImpl;
66 typedef std::shared_ptr<MatfiltVstructConditionalEvaluator> Ptr;
70 static Ptr Parse(
const std::string &inputExpr);
83 const TfToken &upstreamNodeOutput,
84 const NdrTokenVec &shaderTypePriority,
89 MatfiltVstructConditionalEvaluatorImpl *_impl =
nullptr;
92 PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface for querying and mutating a material network.
Parses and evaluates a single expression of "virtual struct conditional grammar".
Token for efficient comparison, assignment, and hashing of known strings.
A path value used to locate objects in layers or scenegraphs.
void Evaluate(const TfToken &nodeId, const TfToken &nodeInputId, const TfToken &upstreamNodeId, const TfToken &upstreamNodeOutput, const NdrTokenVec &shaderTypePriority, HdMaterialNetworkInterface *networkInterface) const
Runs the conditional actions specified by the parsed inputExpr.
Container of nodes and top-level terminal connections.