6# include <pxr/base/tf/stringUtils.h>
27 std::string res = MaterialX::createValidName(pxr::TfMakeValidIdentifier(
name));
29 std::string res = MaterialX::createValidName(
name);
55 const MaterialX::DocumentPtr &document)
68#ifdef USE_MATERIALX_NODEGRAPH
74 std::string valid_child_name =
valid_name(child_name);
76#ifdef USE_MATERIALX_NODEGRAPH
77 MaterialX::NodeGraphPtr graph = parent.
graph_element_->getChildOfType<MaterialX::NodeGraph>(
81 graph = parent.
graph_element_->addChild<MaterialX::NodeGraph>(valid_child_name);
124 return *existing_name;
130 if (!socket_out_name.
is_empty() && node->output_sockets().size() > 1) {
131 name += std::string(
"_") + socket_out_name;
171 [graph_element](
const StringRef check_name) {
172 return graph_element->getNode(check_name) !=
nullptr;
size_t void BLI_uniquename_cb(blender::FunctionRef< bool(blender::StringRefNull)> unique_check, const char *defname, char delim, char *name, size_t name_maxncpy) ATTR_NONNULL(2
#define CLOG_DEBUG(clg_ref,...)
unsigned long long int uint64_t
constexpr bool is_empty() const
MaterialX::InputPtr input
MaterialX::OutputPtr output
static Type to_type(const GPUType type)
static const char * ANONYMOUS_NODE_NAME_PREFIX
static std::string valid_name(const StringRef name)
struct CLG_LogRef * LOG_IO_MATERIALX
uint64_t get_default_hash(const T &v, const Args &...args)
MaterialX::GraphElement * graph_element
bool operator==(const NodeKey &other) const
void set_output_node_name(const NodeItem &item) const
NodeItem get_node(StringRef name) const
std::string unique_node_name(const bNode *node, StringRef socket_out_name, NodeItem::Type to_type)
static std::string unique_anonymous_node_name(MaterialX::GraphElement *graph_element)
Map< NodeKey, const std::string > root_key_to_name_map_
NodeItem get_input(StringRef name) const
const Depsgraph * depsgraph
const ExportParams & export_params
Map< NodeKey, const std::string > & key_to_name_map_
NodeItem get_output(StringRef name) const
std::string node_name_prefix_
const Material * material
Set< std::string > used_node_names_
NodeItem empty_node() const
NodeGraph(const Depsgraph *depsgraph, const Material *material, const ExportParams &export_params, const MaterialX::DocumentPtr &document)
MaterialX::GraphElement * graph_element_