Files
test2/source/blender/nodes/shader/materialx/group_nodes.h

55 lines
1.3 KiB
C++

/* SPDX-FileCopyrightText: 2011-2022 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include "node_parser.h"
/* TODO: #pxr::UsdMtlxRead() doesn't perform node-graphs.
* Uncomment USE_MATERIALX_NODEGRAPH after fixing it. */
// #define USE_MATERIALX_NODEGRAPH
namespace blender::nodes::materialx {
class GroupInputNodeParser;
class GroupNodeParser : public NodeParser {
friend GroupInputNodeParser;
protected:
bool use_group_default_;
public:
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;
};
class GroupOutputNodeParser : public GroupNodeParser {
public:
using GroupNodeParser::GroupNodeParser;
NodeItem compute() override;
NodeItem compute_full() override;
private:
static std::string out_name(const bNodeSocket *out_socket);
};
class GroupInputNodeParser : public GroupNodeParser {
public:
using GroupNodeParser::GroupNodeParser;
NodeItem compute() override;
NodeItem compute_full() override;
private:
std::string in_name() const;
};
} // namespace blender::nodes::materialx