24#ifndef EXT_RMANPKG_25_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_MATFILT_RESOLVE_VSTRUCTS_H
25#define EXT_RMANPKG_25_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_MATFILT_RESOLVE_VSTRUCTS_H
28#include "pxr/imaging/hd/material.h"
29#include "pxr/imaging/hd/materialNetworkInterface.h"
34PXR_NAMESPACE_OPEN_SCOPE
38void MatfiltResolveVstructs(
40 bool enableConditions =
true);
42class MatfiltVstructConditionalEvaluatorImpl;
52 typedef std::shared_ptr<MatfiltVstructConditionalEvaluator> Ptr;
56 static Ptr Parse(
const std::string &inputExpr);
69 const TfToken &upstreamNodeOutput,
70 const NdrTokenVec &shaderTypePriority,
75 MatfiltVstructConditionalEvaluatorImpl *_impl =
nullptr;
78PXR_NAMESPACE_CLOSE_SCOPE
Abstract interface for querying and mutating a material network.
Parses and evaluates a single expression of "virtual struct conditional grammar".
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.
Token for efficient comparison, assignment, and hashing of known strings.
Common typedefs that are used throughout the NDR library.