[Bf-blender-cvs] [e97a45ef8c5] functions: replace Kill Particle node with group

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


Commit: e97a45ef8c5cf18ad5cd6fd02281e76c34d357b7
Author: Jacques Lucke
Date:   Thu Dec 19 12:24:51 2019 +0100
Branches: functions
https://developer.blender.org/rBe97a45ef8c5cf18ad5cd6fd02281e76c34d357b7

replace Kill Particle node with group

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

D	release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
M	release/scripts/startup/nodes/menu.py
M	source/blender/functions/intern/inlined_tree_multi_function_network/builder.cc
M	source/blender/functions/intern/multi_functions/customizable.h
M	source/blender/simulations/bparticles/action_interface.hpp
M	source/blender/simulations/bparticles/actions.cpp
M	source/blender/simulations/bparticles/actions.hpp
M	source/blender/simulations/bparticles/node_frontend.cpp
M	source/blender/simulations/bparticles/simulate.cpp

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

diff --git a/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py b/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
deleted file mode 100644
index c92340aecde..00000000000
--- a/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import bpy
-from bpy.props import *
-from .. base import SimulationNode
-from .. node_builder import NodeBuilder
-
-class KillParticleNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_KillParticleNode"
-    bl_label = "Kill Particle"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.execute_output("execute", "Execute")
diff --git a/release/scripts/startup/nodes/menu.py b/release/scripts/startup/nodes/menu.py
index 7af3c08df4f..d022fa38536 100644
--- a/release/scripts/startup/nodes/menu.py
+++ b/release/scripts/startup/nodes/menu.py
@@ -78,7 +78,6 @@ class ActionNodesMenu(bpy.types.Menu):
         layout = self.layout
         layout.operator_context = 'INVOKE_DEFAULT'
 
-        insert_node(layout, "fn_KillParticleNode", "Kill Particle")
         insert_node(layout, "fn_ParticleConditionNode", "Condition")
 
 
diff --git a/source/blender/functions/intern/inlined_tree_multi_function_network/builder.cc b/source/blender/functions/intern/inlined_tree_multi_function_network/builder.cc
index 04683215b1b..2341a757e88 100644
--- a/source/blender/functions/intern/inlined_tree_multi_function_network/builder.cc
+++ b/source/blender/functions/intern/inlined_tree_multi_function_network/builder.cc
@@ -201,7 +201,7 @@ const MultiFunction &VNodeMFNetworkBuilder::get_vectorized_function(
 
 std::unique_ptr<InlinedTreeMFNetwork> InlinedTreeMFNetworkBuilder::build()
 {
-  m_builder->to_dot__clipboard();
+  // m_builder->to_dot__clipboard();
 
   auto network = BLI::make_unique<MFNetwork>(std::move(m_builder));
 
diff --git a/source/blender/functions/intern/multi_functions/customizable.h b/source/blender/functions/intern/multi_functions/customizable.h
index 0f652beac64..1376a0d957b 100644
--- a/source/blender/functions/intern/multi_functions/customizable.h
+++ b/source/blender/functions/intern/multi_functions/customizable.h
@@ -40,6 +40,11 @@ template<> inline std::string MF_ConstantValue<int>::output_name_from_value(cons
   return std::to_string(value);
 }
 
+template<> inline std::string MF_ConstantValue<bool>::output_name_from_value(const bool &value)
+{
+  return (value) ? "true" : "false";
+}
+
 template<>
 inline std::string MF_ConstantValue<std::string>::output_name_from_value(const std::string &value)
 {
diff --git a/source/blender/simulations/bparticles/action_interface.hpp b/source/blender/simulations/bparticles/action_interface.hpp
index f807f05d1d9..9f19be38f22 100644
--- a/source/blender/simulations/bparticles/action_interface.hpp
+++ b/source/blender/simulations/bparticles/action_interface.hpp
@@ -216,14 +216,6 @@ inline ArrayRef<float> ActionInterface::current_times()
   return m_current_times;
 }
 
-inline void ActionInterface::kill(ArrayRef<uint> pindices)
-{
-  auto kill_states = m_attributes.get<bool>("Kill State");
-  for (uint pindex : pindices) {
-    kill_states[pindex] = 1;
-  }
-}
-
 inline ParticleAllocator &ActionInterface::particle_allocator()
 {
   return m_particle_allocator;
diff --git a/source/blender/simulations/bparticles/actions.cpp b/source/blender/simulations/bparticles/actions.cpp
index ce3f685b04d..7448a9246a3 100644
--- a/source/blender/simulations/bparticles/actions.cpp
+++ b/source/blender/simulations/bparticles/actions.cpp
@@ -34,11 +34,6 @@ static void update_position_and_velocity_offsets(ActionInterface &interface)
   }
 }
 
-void KillAction::execute(ActionInterface &interface)
-{
-  interface.kill(interface.pindices());
-}
-
 void ConditionAction::execute(ActionInterface &interface)
 {
   auto inputs = ParticleFunctionResult::Compute(
diff --git a/source/blender/simulations/bparticles/actions.hpp b/source/blender/simulations/bparticles/actions.hpp
index 7feaad487ed..f247a0c9655 100644
--- a/source/blender/simulations/bparticles/actions.hpp
+++ b/source/blender/simulations/bparticles/actions.hpp
@@ -19,10 +19,6 @@ class ActionSequence : public Action {
   void execute(ActionInterface &interface) override;
 };
 
-class KillAction : public Action {
-  void execute(ActionInterface &interface) override;
-};
-
 class ConditionAction : public Action {
  private:
   ParticleFunction *m_inputs_fn;
diff --git a/source/blender/simulations/bparticles/node_frontend.cpp b/source/blender/simulations/bparticles/node_frontend.cpp
index 1cb208c1e94..d0c19d5dd42 100644
--- a/source/blender/simulations/bparticles/node_frontend.cpp
+++ b/source/blender/simulations/bparticles/node_frontend.cpp
@@ -517,11 +517,6 @@ Action *InlinedTreeData::build_action(InfluencesCollector &collector,
   return builder.built_action();
 }
 
-static void ACTION_kill(XSocketActionBuilder &builder)
-{
-  builder.set_constructed<KillAction>();
-}
-
 static void ACTION_spawn(XSocketActionBuilder &builder)
 {
   const XNode &xnode = builder.xsocket().node();
@@ -639,7 +634,6 @@ static void ACTION_multi_execute(XSocketActionBuilder &builder)
 BLI_LAZY_INIT(StringMap<ActionParserCallback>, get_action_parsers)
 {
   StringMap<ActionParserCallback> map;
-  map.add_new("fn_KillParticleNode", ACTION_kill);
   map.add_new("fn_SpawnParticlesNode", ACTION_spawn);
   map.add_new("fn_ParticleConditionNode", ACTION_condition);
   map.add_new("fn_AddToGroupNode", ACTION_add_to_group);
@@ -1125,7 +1119,7 @@ static void collect_influences(InlinedTreeData &inlined_tree_data,
     r_system_names.append(name);
 
     AttributesInfoBuilder *attributes = new AttributesInfoBuilder();
-    attributes->add<bool>("Kill State", 0);
+    attributes->add<bool>("Dead", false);
     attributes->add<int32_t>("ID", 0);
     attributes->add<float>("Birth Time", 0);
     attributes->add<float3>("Position", float3(0, 0, 0));
@@ -1163,6 +1157,7 @@ class NodeTreeStepSimulator : public StepSimulator {
  public:
   NodeTreeStepSimulator(bNodeTree *btree) : m_inlined_tree(btree, m_inlined_trees)
   {
+    // m_inlined_tree.to_dot__clipboard();
   }
 
   void simulate(SimulationState &simulation_state) override
diff --git a/source/blender/simulations/bparticles/simulate.cpp b/source/blender/simulations/bparticles/simulate.cpp
index 766518f98dc..61e72e58793 100644
--- a/source/blender/simulations/bparticles/simulate.cpp
+++ b/source/blender/simulations/bparticles/simulate.cpp
@@ -236,7 +236,7 @@ BLI_NOINLINE static void simulate_to_next_event(BlockStepData &step_data,
 
   find_unfinished_particles(pindices_with_event,
                             time_factors_to_next_event,
-                            step_data.attributes.get<bool>("Kill State"),
+                            step_data.attributes.get<bool>("Dead"),
                             r_unfinished_pindices);
 }
 
@@ -358,7 +358,7 @@ BLI_NOINLINE static void simulate_block(SimulationState &simulation_state,
 
 BLI_NOINLINE static void delete_tagged_particles_and_reorder(AttributesBlock &block)
 {
-  auto kill_states = block.as_ref().get<bool>("Kill State");
+  auto kill_states = block.as_ref().get<bool>("Dead");
   LargeScopedVector<uint> indices_to_delete;
 
   for (uint i : kill_states.index_iterator()) {



More information about the Bf-blender-cvs mailing list