[Bf-blender-cvs] [6cc8f3cd712] functions: remove builtin group nodes

Jacques Lucke noreply at git.blender.org
Thu Dec 19 13:21:54 CET 2019


Commit: 6cc8f3cd712741f71b50a8ef270e319dca106c0d
Author: Jacques Lucke
Date:   Thu Dec 19 13:11:33 2019 +0100
Branches: functions
https://developer.blender.org/rB6cc8f3cd712741f71b50a8ef270e319dca106c0d

remove builtin group nodes

===================================================================

D	release/scripts/startup/nodes/bparticle_nodes/groups.py
M	source/blender/functions/intern/inlined_tree_multi_function_network/mappings_nodes.cc
M	source/blender/functions/intern/multi_functions/particles.cc
M	source/blender/functions/intern/multi_functions/particles.h
M	source/blender/simulations/bparticles/actions.cpp
M	source/blender/simulations/bparticles/actions.hpp
M	source/blender/simulations/bparticles/node_frontend.cpp

===================================================================

diff --git a/release/scripts/startup/nodes/bparticle_nodes/groups.py b/release/scripts/startup/nodes/bparticle_nodes/groups.py
deleted file mode 100644
index 231bbdcf3a4..00000000000
--- a/release/scripts/startup/nodes/bparticle_nodes/groups.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import bpy
-from bpy.props import *
-from .. base import SimulationNode
-from .. node_builder import NodeBuilder
-
-
-class AddToGroupNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_AddToGroupNode"
-    bl_label = "Add to Group"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("group_name", "Group", "Text")
-        builder.execute_output("execute", "Execute")
-
-
-class RemoveFromGroupNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_RemoveFromGroupNode"
-    bl_label = "Remove from Group"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("group_name", "Group", "Text")
-        builder.execute_output("execute", "Execute")
-
-
-class IsInGroupNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_IsInGroupNode"
-    bl_label = "Is in Group"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("group_name", "Group", "Text")
-        builder.fixed_output("is_in_group", "Is in Group", "Boolean")
diff --git a/source/blender/functions/intern/inlined_tree_multi_function_network/mappings_nodes.cc b/source/blender/functions/intern/inlined_tree_multi_function_network/mappings_nodes.cc
index b8ccae57040..9e0392556f1 100644
--- a/source/blender/functions/intern/inlined_tree_multi_function_network/mappings_nodes.cc
+++ b/source/blender/functions/intern/inlined_tree_multi_function_network/mappings_nodes.cc
@@ -97,11 +97,6 @@ static void INSERT_get_image_color_on_surface(VNodeMFNetworkBuilder &builder)
       {"use_list__surface_hook", "use_list__image"});
 }
 
-static void INSERT_particle_is_in_group(VNodeMFNetworkBuilder &builder)
-{
-  builder.set_constructed_matching_fn<MF_ParticleIsInGroup>();
-}
-
 static void INSERT_switch(VNodeMFNetworkBuilder &builder)
 {
   MFDataType type = builder.data_type_from_property("data_type");
@@ -545,7 +540,6 @@ void add_inlined_tree_node_mapping_info(VTreeMultiFunctionMappings &mappings)
   mappings.xnode_inserters.add_new("fn_GetWeightOnSurfaceNode", INSERT_get_weight_on_surface);
   mappings.xnode_inserters.add_new("fn_GetImageColorOnSurfaceNode",
                                    INSERT_get_image_color_on_surface);
-  mappings.xnode_inserters.add_new("fn_IsInGroupNode", INSERT_particle_is_in_group);
   mappings.xnode_inserters.add_new("fn_TextLengthNode", INSERT_text_length);
   mappings.xnode_inserters.add_new("fn_VertexInfoNode", INSERT_vertex_info);
   mappings.xnode_inserters.add_new("fn_FloatRangeNode", INSERT_float_range);
diff --git a/source/blender/functions/intern/multi_functions/particles.cc b/source/blender/functions/intern/multi_functions/particles.cc
index 08b3a374407..7439c8f0b24 100644
--- a/source/blender/functions/intern/multi_functions/particles.cc
+++ b/source/blender/functions/intern/multi_functions/particles.cc
@@ -45,42 +45,6 @@ void MF_ParticleAttribute::call(IndexMask mask, MFParams params, MFContext conte
       });
 }
 
-MF_ParticleIsInGroup::MF_ParticleIsInGroup()
-{
-  MFSignatureBuilder signature = this->get_builder("Particle is in Group");
-  signature.use_element_context<ParticleAttributesContext>();
-  signature.single_input<std::string>("Group Name");
-  signature.single_output<bool>("Is in Group");
-}
-
-void MF_ParticleIsInGroup::call(IndexMask mask, MFParams params, MFContext context) const
-{
-  VirtualListRef<std::string> group_names = params.readonly_single_input<std::string>(
-      0, "Group Name");
-  MutableArrayRef<bool> r_is_in_group = params.uninitialized_single_output<bool>(1, "Is in Group");
-
-  auto context_data = context.try_find_per_element<ParticleAttributesContext>();
-  if (!context_data.has_value()) {
-    r_is_in_group.fill_indices(mask.indices(), false);
-    return;
-  }
-
-  AttributesRef attributes = context_data->data->attributes;
-
-  for (uint i : mask.indices()) {
-    const std::string group_name = "private/group/" + group_names[i];
-    Optional<MutableArrayRef<bool>> is_in_group_attr = attributes.try_get<bool>(group_name);
-    if (!is_in_group_attr.has_value()) {
-      r_is_in_group[i] = false;
-      continue;
-    }
-
-    uint index = context_data->indices[i];
-    bool is_in_group = is_in_group_attr.value()[index];
-    r_is_in_group[i] = is_in_group;
-  }
-}
-
 MF_EmitterTimeInfo::MF_EmitterTimeInfo()
 {
   MFSignatureBuilder signature = this->get_builder("Emitter Time Info");
diff --git a/source/blender/functions/intern/multi_functions/particles.h b/source/blender/functions/intern/multi_functions/particles.h
index aa1f85d646f..3f92030f140 100644
--- a/source/blender/functions/intern/multi_functions/particles.h
+++ b/source/blender/functions/intern/multi_functions/particles.h
@@ -13,12 +13,6 @@ class MF_ParticleAttribute final : public MultiFunction {
   void call(IndexMask mask, MFParams params, MFContext context) const override;
 };
 
-class MF_ParticleIsInGroup final : public MultiFunction {
- public:
-  MF_ParticleIsInGroup();
-  void call(IndexMask mask, MFParams params, MFContext context) const override;
-};
-
 class MF_EmitterTimeInfo final : public MultiFunction {
  public:
   MF_EmitterTimeInfo();
diff --git a/source/blender/simulations/bparticles/actions.cpp b/source/blender/simulations/bparticles/actions.cpp
index 7448a9246a3..6a97dc7bc53 100644
--- a/source/blender/simulations/bparticles/actions.cpp
+++ b/source/blender/simulations/bparticles/actions.cpp
@@ -53,27 +53,6 @@ void ConditionAction::execute(ActionInterface &interface)
   m_false_action.execute_for_subset(false_pindices, interface);
 }
 
-void AddToGroupAction::execute(ActionInterface &interface)
-{
-  auto is_in_group = interface.attributes().get<bool>(m_group_name);
-  for (uint pindex : interface.pindices()) {
-    is_in_group[pindex] = true;
-  }
-}
-
-void RemoveFromGroupAction::execute(ActionInterface &interface)
-{
-  auto is_in_group_optional = interface.attributes().try_get<bool>(m_group_name);
-  if (!is_in_group_optional.has_value()) {
-    return;
-  }
-
-  MutableArrayRef<bool> is_in_group = *is_in_group_optional;
-  for (uint pindex : interface.pindices()) {
-    is_in_group[pindex] = false;
-  }
-}
-
 void SetAttributeAction::execute(ActionInterface &interface)
 {
   Optional<GenericMutableArrayRef> attribute_opt = interface.attributes().try_get(
diff --git a/source/blender/simulations/bparticles/actions.hpp b/source/blender/simulations/bparticles/actions.hpp
index f247a0c9655..e930f3f85e7 100644
--- a/source/blender/simulations/bparticles/actions.hpp
+++ b/source/blender/simulations/bparticles/actions.hpp
@@ -34,30 +34,6 @@ class ConditionAction : public Action {
   void execute(ActionInterface &interface) override;
 };
 
-class AddToGroupAction : public Action {
- private:
-  std::string m_group_name;
-
- public:
-  AddToGroupAction(std::string group_name) : m_group_name(std::move(group_name))
-  {
-  }
-
-  void execute(ActionInterface &interface) override;
-};
-
-class RemoveFromGroupAction : public Action {
- private:
-  std::string m_group_name;
-
- public:
-  RemoveFromGroupAction(std::string group_name) : m_group_name(std::move(group_name))
-  {
-  }
-
-  void execute(ActionInterface &interface) override;
-};
-
 class SetAttributeAction : public Action {
  private:
   std::string m_attribute_name;
diff --git a/source/blender/simulations/bparticles/node_frontend.cpp b/source/blender/simulations/bparticles/node_frontend.cpp
index d0c19d5dd42..b755f9e1147 100644
--- a/source/blender/simulations/bparticles/node_frontend.cpp
+++ b/source/blender/simulations/bparticles/node_frontend.cpp
@@ -574,33 +574,6 @@ static void ACTION_condition(XSocketActionBuilder &builder)
   builder.set_constructed<ConditionAction>(inputs_fn, action_true, action_false);
 }
 
-static void ACTION_add_to_group(XSocketActionBuilder &builder)
-{
-  auto inputs = builder.compute_all_data_inputs();
-  if (!inputs.has_value()) {
-    return;
-  }
-
-  std::string group_name = "private/group/" + inputs->relocate_out<std::string>(0, "Group");
-  bool attribute_added = builder.try_add_attribute_to_affected_particles<bool>(group_name, false);
-  if (!attribute_added) {
-    return;
-  }
-
-  builder.set_constructed<AddToGroupAction>(group_name);
-}
-
-static void ACTION_remove_from_group(XSocketActionBuilder &builder)
-{
-  auto inputs = builder.compute_all_data_inputs();
-  if (!inputs.has_value()) {
-    return;
-  }
-
-  std::string group_name = inputs->relocate_out<std::string>(0, "Group");
-  builder.set_constructed<RemoveFromGroupAction>(group_name);
-}
-
 static void ACTION_set_attribute(XSocketActionBuilder &builder)
 {
   Optional<NamedGenericTupleRef> values = builder.compute_inputs({0});
@@ -636,8 +609,6 @@ BLI_LAZY_INIT(StringMap<ActionParserCallback>, get_action_parsers)
   StringMap<ActionParserCallback> map;
   map.add_new("fn_SpawnParticlesNode", ACTION_spawn);
   map.add_new("fn_ParticleConditionNode", ACTION_condition);
-  map.add_new("fn_AddToGroupNode", ACTION_add_to_group);
-  map.add_new("fn_RemoveFromGroupNode", ACTION_remove_from_group);
   map.add_new("fn_SetParticleAttributeNode", ACTION_set_attribute);
   map.add_new("fn_MultiExecuteNode", ACTION_multi_execute);
   return map;



More information about the Bf-blender-cvs mailing list