52 std::string
node_name(
bool with_out_socket =
true)
const;
68 template<
class T>
NodeItem val(
const T &data)
const;
70 const std::string &attribute_name =
"");
76 bool use_group_default);
111#define NODE_SHADER_MATERIALX_BEGIN \
112 class MaterialXNodeParser : public materialx::NodeParser { \
114 using materialx::NodeParser::NodeParser; \
115 materialx::NodeItem compute() override; \
118 materialx::NodeItem MaterialXNodeParser::compute() \
120 using NodeItem = materialx::NodeItem;
122#define NODE_SHADER_MATERIALX_END \
125 static void node_shader_materialx(void *data, struct bNode *node, struct bNodeSocket *out) \
127 materialx::NodeParserData *d = reinterpret_cast<materialx::NodeParserData *>(data); \
128 d->result = MaterialXNodeParser(d->graph, \
NodeItem val(const T &data) const
std::vector< std::pair< std::string, NodeItem > > Inputs
GroupNodeParser * group_parser_
NodeItem get_input_value(const std::string &name, NodeItem::Type to_type)
virtual NodeItem compute()=0
virtual NodeItem compute_full()
const bNodeSocket * socket_out_
MaterialX::GraphElement * graph_
const Material * material_
NodeParser(MaterialX::GraphElement *graph, const Depsgraph *depsgraph, const Material *material, const bNode *node, const bNodeSocket *socket_out, NodeItem::Type to_type, GroupNodeParser *group_parser, const ExportParams &export_params)
NodeItem create_input(const std::string &name, const NodeItem &item)
const Depsgraph * depsgraph_
ExportParams export_params_
NodeItem get_input_link(const std::string &name, NodeItem::Type to_type)
NodeItem texcoord_node(NodeItem::Type type=NodeItem::Type::Vector2, const std::string &attribute_name="")
NodeItem get_input_default(const std::string &name, NodeItem::Type to_type)
virtual ~NodeParser()=default
NodeItem get_output_default(const std::string &name, NodeItem::Type to_type)
NodeItem create_node(const std::string &category, NodeItem::Type type)
std::string node_name(bool with_out_socket=true) const
NodeItem create_output(const std::string &name, const NodeItem &item)
NodeItem val(const T &data) const
const Depsgraph * depsgraph
static Type to_type(const eGPUType type)
struct CLG_LogRef * LOG_MATERIALX_SHADER
MaterialX::GraphElement * graph
const Depsgraph * depsgraph
GroupNodeParser * group_parser
const Material * material
ExportParams export_params