Nodes: move some code from blenkernel directory to nodes

This also introduces the `blender::nodes` namespace. Eventually,
we want to move most/all of the node implementation files into
this namespace.

The reason for this file-move is that the code fits much better
into the `nodes` directory than in the `blenkernel` directory.
This commit is contained in:
Jacques Lucke 2020-07-17 11:36:59 +02:00
parent 0a40c671b0
commit 5910dbdbf7
24 changed files with 92 additions and 90 deletions

View File

@ -106,18 +106,18 @@ typedef struct bNodeSocketTemplate {
* However, achieving this requires quite a few changes currently. */
#ifdef __cplusplus
namespace blender {
namespace bke {
namespace nodes {
class SocketMFNetworkBuilder;
class NodeMFNetworkBuilder;
} // namespace bke
} // namespace nodes
namespace fn {
class MFDataType;
}
} // namespace blender
using NodeExpandInMFNetworkFunction = void (*)(blender::bke::NodeMFNetworkBuilder &builder);
using NodeExpandInMFNetworkFunction = void (*)(blender::nodes::NodeMFNetworkBuilder &builder);
using SocketGetMFDataTypeFunction = blender::fn::MFDataType (*)();
using SocketExpandInMFNetworkFunction = void (*)(blender::bke::SocketMFNetworkBuilder &builder);
using SocketExpandInMFNetworkFunction = void (*)(blender::nodes::SocketMFNetworkBuilder &builder);
#else
typedef void *NodeExpandInMFNetworkFunction;

View File

@ -107,7 +107,6 @@ set(SRC
intern/customdata_file.c
intern/data_transfer.c
intern/deform.c
intern/derived_node_tree.cc
intern/displist.c
intern/displist_tangent.c
intern/dynamicpaint.c
@ -188,8 +187,6 @@ set(SRC
intern/multires_unsubdivide.c
intern/nla.c
intern/node.c
intern/node_tree_multi_function.cc
intern/node_tree_ref.cc
intern/object.c
intern/object_deform.c
intern/object_dupli.c
@ -298,7 +295,6 @@ set(SRC
BKE_customdata_file.h
BKE_data_transfer.h
BKE_deform.h
BKE_derived_node_tree.hh
BKE_displist.h
BKE_displist_tangent.h
BKE_duplilist.h
@ -359,8 +355,6 @@ set(SRC
BKE_multires.h
BKE_nla.h
BKE_node.h
BKE_node_tree_multi_function.hh
BKE_node_tree_ref.hh
BKE_object.h
BKE_object_deform.h
BKE_object_facemap.h

View File

@ -45,10 +45,10 @@
#include "BKE_lib_remap.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_node_tree_multi_function.hh"
#include "BKE_pointcache.h"
#include "BKE_simulation.h"
#include "NOD_node_tree_multi_function.hh"
#include "NOD_simulation.h"
#include "BLT_translation.h"
@ -216,16 +216,19 @@ static void copy_states_to_cow(Simulation *simulation_orig, Simulation *simulati
}
static Map<const fn::MFOutputSocket *, std::string> deduplicate_attribute_nodes(
fn::MFNetwork &network, MFNetworkTreeMap &network_map, const DerivedNodeTree &tree)
fn::MFNetwork &network,
nodes::MFNetworkTreeMap &network_map,
const nodes::DerivedNodeTree &tree)
{
Span<const DNode *> attribute_dnodes = tree.nodes_by_type("SimulationNodeParticleAttribute");
Span<const nodes::DNode *> attribute_dnodes = tree.nodes_by_type(
"SimulationNodeParticleAttribute");
uint amount = attribute_dnodes.size();
if (amount == 0) {
return {};
}
Vector<fn::MFInputSocket *> name_sockets;
for (const DNode *dnode : attribute_dnodes) {
for (const nodes::DNode *dnode : attribute_dnodes) {
fn::MFInputSocket &name_socket = network_map.lookup_dummy(dnode->input(0));
name_sockets.append(&name_socket);
}
@ -309,10 +312,10 @@ class CustomDataAttributesRef {
}
};
static std::string dnode_to_path(const DNode &dnode)
static std::string dnode_to_path(const nodes::DNode &dnode)
{
std::string path;
for (const DParentNode *parent = dnode.parent(); parent; parent = parent->parent()) {
for (const nodes::DParentNode *parent = dnode.parent(); parent; parent = parent->parent()) {
path = parent->node_ref().name() + "/" + path;
}
path = path + dnode.name();
@ -373,10 +376,10 @@ static void add_missing_particle_states(Simulation *simulation, Span<std::string
}
static void reinitialize_empty_simulation_states(Simulation *simulation,
const DerivedNodeTree &tree)
const nodes::DerivedNodeTree &tree)
{
VectorSet<std::string> state_names;
for (const DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
for (const nodes::DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
state_names.add(dnode_to_path(*dnode));
}
@ -385,10 +388,11 @@ static void reinitialize_empty_simulation_states(Simulation *simulation,
add_missing_particle_states(simulation, state_names);
}
static void update_simulation_state_list(Simulation *simulation, const DerivedNodeTree &tree)
static void update_simulation_state_list(Simulation *simulation,
const nodes::DerivedNodeTree &tree)
{
VectorSet<std::string> state_names;
for (const DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
for (const nodes::DNode *dnode : tree.nodes_by_type("SimulationNodeParticleSimulation")) {
state_names.add(dnode_to_path(*dnode));
}
@ -672,14 +676,15 @@ class ParticleFunctionForce : public ParticleForce {
};
static Vector<const ParticleForce *> create_forces_for_particle_simulation(
const DNode &simulation_node,
MFNetworkTreeMap &network_map,
const nodes::DNode &simulation_node,
nodes::MFNetworkTreeMap &network_map,
ResourceCollector &resources,
const Map<const fn::MFOutputSocket *, std::string> &attribute_inputs)
{
Vector<const ParticleForce *> forces;
for (const DOutputSocket *origin_socket : simulation_node.input(2, "Forces").linked_sockets()) {
const DNode &origin_node = origin_socket->node();
for (const nodes::DOutputSocket *origin_socket :
simulation_node.input(2, "Forces").linked_sockets()) {
const nodes::DNode &origin_node = origin_socket->node();
if (origin_node.idname() != "SimulationNodeForce") {
continue;
}
@ -701,12 +706,13 @@ static Vector<const ParticleForce *> create_forces_for_particle_simulation(
}
static Map<std::string, Vector<const ParticleForce *>> collect_forces(
MFNetworkTreeMap &network_map,
nodes::MFNetworkTreeMap &network_map,
ResourceCollector &resources,
const Map<const fn::MFOutputSocket *, std::string> &attribute_inputs)
{
Map<std::string, Vector<const ParticleForce *>> forces_by_simulation;
for (const DNode *dnode : network_map.tree().nodes_by_type("SimulationNodeParticleSimulation")) {
for (const nodes::DNode *dnode :
network_map.tree().nodes_by_type("SimulationNodeParticleSimulation")) {
std::string name = dnode_to_path(*dnode);
Vector<const ParticleForce *> forces = create_forces_for_particle_simulation(
*dnode, network_map, resources, attribute_inputs);
@ -729,12 +735,12 @@ static void simulation_data_update(Depsgraph *depsgraph, Scene *scene, Simulatio
Simulation *simulation_orig = (Simulation *)DEG_get_original_id(&simulation_cow->id);
NodeTreeRefMap tree_refs;
nodes::NodeTreeRefMap tree_refs;
/* TODO: Use simulation_cow, but need to add depsgraph relations before that. */
const DerivedNodeTree tree{simulation_orig->nodetree, tree_refs};
const nodes::DerivedNodeTree tree{simulation_orig->nodetree, tree_refs};
fn::MFNetwork network;
ResourceCollector resources;
MFNetworkTreeMap network_map = insert_node_tree_into_mf_network(network, tree, resources);
nodes::MFNetworkTreeMap network_map = insert_node_tree_into_mf_network(network, tree, resources);
Map<const fn::MFOutputSocket *, std::string> attribute_inputs = deduplicate_attribute_nodes(
network, network_map, tree);
fn::mf_network_optimization::constant_folding(network, resources);

View File

@ -273,9 +273,12 @@ set(SRC
texture/node_texture_tree.c
texture/node_texture_util.c
intern/derived_node_tree.cc
intern/node_common.c
intern/node_exec.c
intern/node_socket.cc
intern/node_tree_multi_function.cc
intern/node_tree_ref.cc
intern/node_util.c
composite/node_composite_util.h
@ -286,7 +289,10 @@ set(SRC
NOD_common.h
NOD_composite.h
NOD_derived_node_tree.hh
NOD_function.h
NOD_node_tree_multi_function.hh
NOD_node_tree_ref.hh
NOD_shader.h
NOD_simulation.h
NOD_socket.h

View File

@ -14,11 +14,11 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __BKE_DERIVED_NODE_TREE_HH__
#define __BKE_DERIVED_NODE_TREE_HH__
#ifndef __NOD_DERIVED_NODE_TREE_HH__
#define __NOD_DERIVED_NODE_TREE_HH__
/** \file
* \ingroup bke
* \ingroup nodes
*
* DerivedNodeTree provides a flattened view on a bNodeTree, i.e. node groups are inlined. It
* builds on top of NodeTreeRef and supports similar queries efficiently.
@ -30,9 +30,9 @@
* There is a dot graph exporter for debugging purposes.
*/
#include "BKE_node_tree_ref.hh"
#include "NOD_node_tree_ref.hh"
namespace blender::bke {
namespace blender::nodes {
class DSocket;
class DInputSocket;
@ -512,6 +512,6 @@ inline Span<const DGroupInput *> DerivedNodeTree::group_inputs() const
return group_inputs_;
}
} // namespace blender::bke
} // namespace blender::nodes
#endif /* __BKE_DERIVED_NODE_TREE_HH__ */
#endif /* __NOD_DERIVED_NODE_TREE_HH__ */

View File

@ -14,11 +14,11 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __BKE_NODE_TREE_FUNCTION_HH__
#define __BKE_NODE_TREE_FUNCTION_HH__
#ifndef __NOD_NODE_TREE_FUNCTION_HH__
#define __NOD_NODE_TREE_FUNCTION_HH__
/** \file
* \ingroup bke
* \ingroup nodes
*
* This file allows you to generate a multi-function network from a user-generated node tree.
*/
@ -26,12 +26,11 @@
#include "FN_multi_function_builder.hh"
#include "FN_multi_function_network.hh"
#include "BKE_derived_node_tree.hh"
#include "NOD_derived_node_tree.hh"
#include "BLI_resource_collector.hh"
namespace blender {
namespace bke {
namespace blender::nodes {
/* Maybe this should be moved to BKE_node.h. */
inline bool is_multi_function_data_socket(const bNodeSocket *bsocket)
@ -44,7 +43,7 @@ inline bool is_multi_function_data_socket(const bNodeSocket *bsocket)
}
/**
* A MFNetworkTreeMap maps various components of a bke::DerivedNodeTree to components of a
* A MFNetworkTreeMap maps various components of a DerivedNodeTree to components of a
* fn::MFNetwork. This is necessary for further processing of a multi-function network that has
* been generated from a node tree.
*/
@ -384,7 +383,6 @@ MFNetworkTreeMap insert_node_tree_into_mf_network(fn::MFNetwork &network,
const DerivedNodeTree &tree,
ResourceCollector &resources);
} // namespace bke
} // namespace blender
} // namespace blender::nodes
#endif /* __BKE_NODE_TREE_FUNCTION_HH__ */
#endif /* __NOD_NODE_TREE_FUNCTION_HH__ */

View File

@ -14,11 +14,11 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __BKE_NODE_TREE_REF_HH__
#define __BKE_NODE_TREE_REF_HH__
#ifndef __NOD_NODE_TREE_REF_HH__
#define __NOD_NODE_TREE_REF_HH__
/** \file
* \ingroup bke
* \ingroup nodes
*
* NodeTreeRef makes querying information about a bNodeTree more efficient. It is an immutable data
* structure. It should not be used after anymore, after the underlying node tree changed.
@ -58,7 +58,7 @@
#include "RNA_access.h"
namespace blender::bke {
namespace blender::nodes {
class SocketRef;
class InputSocketRef;
@ -440,6 +440,6 @@ inline bNodeTree *NodeTreeRef::btree() const
return btree_;
}
} // namespace blender::bke
} // namespace blender::nodes
#endif /* __BKE_NODE_TREE_REF_HH__ */
#endif /* __NOD_NODE_TREE_REF_HH__ */

View File

@ -27,11 +27,11 @@
#include "DNA_node_types.h"
#include "BKE_node.h"
#include "BKE_node_tree_multi_function.hh"
#include "BLT_translation.h"
#include "NOD_function.h"
#include "NOD_node_tree_multi_function.hh"
#include "node_util.h"

View File

@ -71,7 +71,7 @@ static const blender::fn::MultiFunction &get_multi_function(bNode &bnode)
return blender::fn::dummy_multi_function;
}
static void node_boolean_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void node_boolean_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
const blender::fn::MultiFunction &fn = get_multi_function(builder.bnode());
builder.set_matching_fn(fn);

View File

@ -28,7 +28,7 @@ static bNodeSocketTemplate fn_node_combine_strings_out[] = {
};
static void fn_node_combine_strings_expand_in_mf_network(
blender::bke::NodeMFNetworkBuilder &builder)
blender::nodes::NodeMFNetworkBuilder &builder)
{
static blender::fn::CustomMF_SI_SI_SO<std::string, std::string, std::string> combine_fn{
"Combine Strings", [](const std::string &a, const std::string &b) { return a + b; }};

View File

@ -90,7 +90,7 @@ static const blender::fn::MultiFunction &get_multi_function(bNode &node)
return blender::fn::dummy_multi_function;
}
static void node_float_compare_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void node_float_compare_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
const blender::fn::MultiFunction &fn = get_multi_function(builder.bnode());
builder.set_matching_fn(fn);

View File

@ -22,11 +22,11 @@ static bNodeSocketTemplate fn_node_group_instance_id_out[] = {
};
static void fn_node_group_instance_id_expand_in_mf_network(
blender::bke::NodeMFNetworkBuilder &builder)
blender::nodes::NodeMFNetworkBuilder &builder)
{
const blender::bke::DNode &node = builder.dnode();
const blender::nodes::DNode &node = builder.dnode();
std::string id = "/";
for (const blender::bke::DParentNode *parent = node.parent(); parent;
for (const blender::nodes::DParentNode *parent = node.parent(); parent;
parent = parent->parent()) {
id = "/" + parent->node_ref().name() + id;
}

View File

@ -14,13 +14,13 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "BKE_derived_node_tree.hh"
#include "NOD_derived_node_tree.hh"
#include "BLI_dot_export.hh"
#define UNINITIALIZED_ID UINT32_MAX
namespace blender::bke {
namespace blender::nodes {
static const NodeTreeRef &get_tree_ref(NodeTreeRefMap &node_tree_refs, bNodeTree *btree)
{
@ -438,4 +438,4 @@ std::string DerivedNodeTree::to_dot() const
return digraph.to_dot_string();
}
} // namespace blender::bke
} // namespace blender::nodes

View File

@ -34,13 +34,13 @@
#include "BKE_lib_id.h"
#include "BKE_node.h"
#include "BKE_node_tree_multi_function.hh"
#include "RNA_access.h"
#include "RNA_types.h"
#include "MEM_guardedalloc.h"
#include "NOD_node_tree_multi_function.hh"
#include "NOD_socket.h"
struct bNodeSocket *node_add_socket_from_template(struct bNodeTree *ntree,
@ -517,7 +517,7 @@ static bNodeSocketType *make_socket_type_bool()
{
bNodeSocketType *socktype = make_standard_socket_type(SOCK_BOOLEAN, PROP_NONE);
socktype->get_mf_data_type = []() { return blender::fn::MFDataType::ForSingle<bool>(); };
socktype->expand_in_mf_network = [](blender::bke::SocketMFNetworkBuilder &builder) {
socktype->expand_in_mf_network = [](blender::nodes::SocketMFNetworkBuilder &builder) {
bool value = builder.socket_default_value<bNodeSocketValueBoolean>()->value;
builder.set_constant_value(value);
};
@ -528,7 +528,7 @@ static bNodeSocketType *make_socket_type_float(PropertySubType subtype)
{
bNodeSocketType *socktype = make_standard_socket_type(SOCK_FLOAT, subtype);
socktype->get_mf_data_type = []() { return blender::fn::MFDataType::ForSingle<float>(); };
socktype->expand_in_mf_network = [](blender::bke::SocketMFNetworkBuilder &builder) {
socktype->expand_in_mf_network = [](blender::nodes::SocketMFNetworkBuilder &builder) {
float value = builder.socket_default_value<bNodeSocketValueFloat>()->value;
builder.set_constant_value(value);
};
@ -539,7 +539,7 @@ static bNodeSocketType *make_socket_type_int(PropertySubType subtype)
{
bNodeSocketType *socktype = make_standard_socket_type(SOCK_INT, subtype);
socktype->get_mf_data_type = []() { return blender::fn::MFDataType::ForSingle<int>(); };
socktype->expand_in_mf_network = [](blender::bke::SocketMFNetworkBuilder &builder) {
socktype->expand_in_mf_network = [](blender::nodes::SocketMFNetworkBuilder &builder) {
int value = builder.socket_default_value<bNodeSocketValueInt>()->value;
builder.set_constant_value(value);
};
@ -552,7 +552,7 @@ static bNodeSocketType *make_socket_type_vector(PropertySubType subtype)
socktype->get_mf_data_type = []() {
return blender::fn::MFDataType::ForSingle<blender::float3>();
};
socktype->expand_in_mf_network = [](blender::bke::SocketMFNetworkBuilder &builder) {
socktype->expand_in_mf_network = [](blender::nodes::SocketMFNetworkBuilder &builder) {
blender::float3 value = builder.socket_default_value<bNodeSocketValueVector>()->value;
builder.set_constant_value(value);
};
@ -565,7 +565,7 @@ static bNodeSocketType *make_socket_type_rgba()
socktype->get_mf_data_type = []() {
return blender::fn::MFDataType::ForSingle<blender::Color4f>();
};
socktype->expand_in_mf_network = [](blender::bke::SocketMFNetworkBuilder &builder) {
socktype->expand_in_mf_network = [](blender::nodes::SocketMFNetworkBuilder &builder) {
blender::Color4f value = builder.socket_default_value<bNodeSocketValueRGBA>()->value;
builder.set_constant_value(value);
};
@ -576,7 +576,7 @@ static bNodeSocketType *make_socket_type_string()
{
bNodeSocketType *socktype = make_standard_socket_type(SOCK_STRING, PROP_NONE);
socktype->get_mf_data_type = []() { return blender::fn::MFDataType::ForSingle<std::string>(); };
socktype->expand_in_mf_network = [](blender::bke::SocketMFNetworkBuilder &builder) {
socktype->expand_in_mf_network = [](blender::nodes::SocketMFNetworkBuilder &builder) {
std::string value = builder.socket_default_value<bNodeSocketValueString>()->value;
builder.set_constant_value(value);
};

View File

@ -14,13 +14,12 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "BKE_node_tree_multi_function.hh"
#include "NOD_node_tree_multi_function.hh"
#include "BLI_color.hh"
#include "BLI_float3.hh"
namespace blender {
namespace bke {
namespace blender::nodes {
/* Maybe this should be moved to BKE_node.h. */
static std::optional<fn::MFDataType> try_get_multi_function_data_type_of_socket(
@ -342,5 +341,4 @@ MFNetworkTreeMap insert_node_tree_into_mf_network(fn::MFNetwork &network,
return network_map;
}
} // namespace bke
} // namespace blender
} // namespace blender::nodes

View File

@ -14,11 +14,11 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "BKE_node_tree_ref.hh"
#include "NOD_node_tree_ref.hh"
#include "BLI_dot_export.hh"
namespace blender::bke {
namespace blender::nodes {
NodeTreeRef::NodeTreeRef(bNodeTree *btree) : btree_(btree)
{
@ -174,4 +174,4 @@ std::string NodeTreeRef::to_dot() const
return digraph.to_dot_string();
}
} // namespace blender::bke
} // namespace blender::nodes

View File

@ -73,7 +73,7 @@
#ifdef __cplusplus
# include "FN_multi_function_builder.hh"
# include "BKE_node_tree_multi_function.hh"
# include "NOD_node_tree_multi_function.hh"
# include "BLI_color.hh"
# include "BLI_float3.hh"

View File

@ -128,7 +128,7 @@ class MapRangeFunction : public blender::fn::MultiFunction {
}
};
static void sh_node_map_range_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_map_range_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
bNode &bnode = builder.bnode();
bool clamp = bnode.custom1 != 0;

View File

@ -147,7 +147,7 @@ static int gpu_shader_math(GPUMaterial *mat,
}
static const blender::fn::MultiFunction &get_base_multi_function(
blender::bke::NodeMFNetworkBuilder &builder)
blender::nodes::NodeMFNetworkBuilder &builder)
{
const int mode = builder.bnode().custom1;
switch (mode) {
@ -347,11 +347,11 @@ static const blender::fn::MultiFunction &get_base_multi_function(
}
}
static void sh_node_math_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_math_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
const blender::fn::MultiFunction &base_function = get_base_multi_function(builder);
const blender::bke::DNode &dnode = builder.dnode();
const blender::nodes::DNode &dnode = builder.dnode();
blender::fn::MFNetwork &network = builder.network();
blender::fn::MFFunctionNode &base_node = network.add_function(base_function);

View File

@ -89,7 +89,7 @@ class SeparateRGBFunction : public blender::fn::MultiFunction {
}
};
static void sh_node_seprgb_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_seprgb_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
static SeparateRGBFunction fn;
builder.set_matching_fn(fn);
@ -146,7 +146,7 @@ static int gpu_shader_combrgb(GPUMaterial *mat,
return GPU_stack_link(mat, node, "combine_rgb", in, out);
}
static void sh_node_combrgb_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_combrgb_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
static blender::fn::CustomMF_SI_SI_SI_SO<float, float, float, blender::Color4f> fn{
"Combine RGB", [](float r, float g, float b) { return blender::Color4f(r, g, b, 1.0f); }};

View File

@ -74,7 +74,7 @@ class MF_SeparateXYZ : public blender::fn::MultiFunction {
}
};
static void sh_node_sepxyz_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_sepxyz_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
static MF_SeparateXYZ separate_fn;
builder.set_matching_fn(separate_fn);
@ -113,7 +113,7 @@ static int gpu_shader_combxyz(GPUMaterial *mat,
return GPU_stack_link(mat, node, "combine_xyz", in, out);
}
static void sh_node_combxyz_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_combxyz_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
static blender::fn::CustomMF_SI_SI_SI_SO<float, float, float, blender::float3> fn{
"Combine Vector", [](float x, float y, float z) { return blender::float3(x, y, z); }};

View File

@ -157,7 +157,7 @@ class ColorBandFunction : public blender::fn::MultiFunction {
}
};
static void sh_node_valtorgb_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_valtorgb_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
bNode &bnode = builder.bnode();
const ColorBand *color_band = (const ColorBand *)bnode.storage;

View File

@ -39,7 +39,7 @@ static int gpu_shader_value(GPUMaterial *mat,
return GPU_stack_link(mat, node, "set_value", in, out, link);
}
static void sh_node_value_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_value_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
const bNodeSocket *bsocket = builder.dnode().output(0).bsocket();
const bNodeSocketValueFloat *value = (const bNodeSocketValueFloat *)bsocket->default_value;

View File

@ -161,7 +161,7 @@ static void node_shader_update_vector_math(bNodeTree *UNUSED(ntree), bNode *node
}
static const blender::fn::MultiFunction &get_multi_function(
blender::bke::NodeMFNetworkBuilder &builder)
blender::nodes::NodeMFNetworkBuilder &builder)
{
using blender::float3;
@ -271,7 +271,7 @@ static const blender::fn::MultiFunction &get_multi_function(
};
}
static void sh_node_vector_math_expand_in_mf_network(blender::bke::NodeMFNetworkBuilder &builder)
static void sh_node_vector_math_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder)
{
const blender::fn::MultiFunction &fn = get_multi_function(builder);
builder.set_matching_fn(fn);