7#ifndef EXT_RMANPKG_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_MATFILT_RESOLVE_VSTRUCTS_H
8#define EXT_RMANPKG_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_MATFILT_RESOLVE_VSTRUCTS_H
11#include "pxr/imaging/hd/material.h"
12#include "pxr/imaging/hd/materialNetworkInterface.h"
14#if PXR_VERSION >= 2505
17#include "pxr/usd/ndr/declare.h"
22PXR_NAMESPACE_OPEN_SCOPE
25using SdrTokenVec = NdrTokenVec;
30void MatfiltResolveVstructs(
32 bool enableConditions =
true);
34class MatfiltVstructConditionalEvaluatorImpl;
44 typedef std::shared_ptr<MatfiltVstructConditionalEvaluator> Ptr;
48 static Ptr Parse(
const std::string &inputExpr);
61 const TfToken &upstreamNodeOutput,
62 const SdrTokenVec &shaderTypePriority,
67 MatfiltVstructConditionalEvaluatorImpl *_impl =
nullptr;
70PXR_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 SdrTokenVec &shaderTypePriority, HdMaterialNetworkInterface *networkInterface) const
Runs the conditional actions specified by the parsed inputExpr.
Token for efficient comparison, assignment, and hashing of known strings.