10#ifdef USE_MATERIALX_NODEGRAPH
21 bool use_group_default)
30 ngroup->ensure_topology_cache();
31 const bNode *node_out = ngroup->group_output_node();
42#ifdef USE_MATERIALX_NODEGRAPH
63#ifdef USE_MATERIALX_NODEGRAPH
65 for (
const auto *socket_in :
node_->input_sockets()) {
74 for (
int i = 0;
i < values.size(); ++
i) {
76 outputs.append(create_output(out_name(node_->input_sockets()[
i]), values[
i]));
79 return outputs[socket_out_->index()];
81 if (use_group_default_) {
82 return get_input_value(socket_out_->index(), to_type_);
84 return get_input_link(socket_out_->index(), to_type_);
93 node_->typeinfo->type_legacy,
96#ifdef USE_MATERIALX_NODEGRAPH
110std::string GroupOutputNodeParser::out_name(
const bNodeSocket *out_socket)
112 return MaterialX::createValidName(std::string(
"out_") + out_socket->
identifier);
117#ifdef USE_MATERIALX_NODEGRAPH
124 value =
group_parser_->create_node(
"constant", value.
type(), {{
"value", value}});
126 return create_input(in_name(), value);
128 if (use_group_default_) {
129 return group_parser_->get_input_value(socket_out_->index(), to_type_);
131 return group_parser_->get_input_link(socket_out_->index(), to_type_);
140 node_->typeinfo->type_legacy,
143#ifdef USE_MATERIALX_NODEGRAPH
157std::string GroupInputNodeParser::in_name()
const
159 return MaterialX::createValidName(std::string(
"in_") + socket_out_->identifier);
#define CLOG_DEBUG(clg_ref,...)
#define CLOG_INFO(clg_ref,...)
void append(const T &value)
GroupNodeParser(NodeGraph &graph, const bNode *node, const bNodeSocket *socket_out, NodeItem::Type to_type, GroupNodeParser *group_parser, bool use_group_default)
NodeItem compute() override
NodeItem compute_full() override
NodeItem compute_full() override
NodeItem compute() override
MaterialX::InputPtr input
MaterialX::OutputPtr output
static bool is_arithmetic(Type type)
MaterialX::ValuePtr value
NodeItem convert(Type to_type) const
static Type type(const std::string &type_str)
GroupNodeParser * group_parser_
NodeItem get_input_value(const std::string &name, NodeItem::Type to_type)
const bNodeSocket * socket_out_
NodeParser(NodeGraph &graph, const bNode *node, const bNodeSocket *socket_out, NodeItem::Type to_type, GroupNodeParser *group_parser)
NodeItem create_node(const std::string &category, NodeItem::Type type)
static Type to_type(const GPUType type)
struct CLG_LogRef * LOG_IO_MATERIALX
static blender::bke::bNodeSocketTemplate outputs[]