45 std::string
node_name(
const char *override_output_name =
nullptr)
const;
63 const std::string &attribute_name =
"");
69 bool use_group_default);
102#define NODE_SHADER_MATERIALX_BEGIN \
103 class MaterialXNodeParser : public materialx::NodeParser { \
105 using materialx::NodeParser::NodeParser; \
106 materialx::NodeItem compute() override; \
109 materialx::NodeItem MaterialXNodeParser::compute() \
111 using NodeItem = materialx::NodeItem;
113#define NODE_SHADER_MATERIALX_END \
116 static void node_shader_materialx(void *data, struct bNode *node, struct bNodeSocket *out) \
118 materialx::NodeParserData *d = reinterpret_cast<materialx::NodeParserData *>(data); \
120 MaterialXNodeParser(d->graph, node, out, d->to_type, d->group_parser).compute_full(); \
struct CLG_LogRef CLG_LogRef
BMesh const char void * data
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_
std::string node_name(const char *override_output_name=nullptr) const
NodeParser(NodeGraph &graph, const bNode *node, const bNodeSocket *socket_out, NodeItem::Type to_type, GroupNodeParser *group_parser)
NodeItem create_input(const std::string &name, const NodeItem &item)
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)
NodeItem create_output(const std::string &name, const NodeItem &item)
NodeItem val(const T &data) const
struct CLG_LogRef * LOG_MATERIALX_SHADER
GroupNodeParser * group_parser
ExportParams export_params