[Bf-blender-cvs] [e733615650e] functions: remove actions that can be build as node groups

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


Commit: e733615650ebc4d840043e911b8b0c3b111ae0dc
Author: Jacques Lucke
Date:   Thu Dec 19 10:52:12 2019 +0100
Branches: functions
https://developer.blender.org/rBe733615650ebc4d840043e911b8b0c3b111ae0dc

remove actions that can be build as node groups

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

D	release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
M	release/scripts/startup/nodes/menu.py
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/change_attribute.py b/release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
deleted file mode 100644
index 820b4f1c324..00000000000
--- a/release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import bpy
-from bpy.props import *
-from .. base import SimulationNode
-from .. node_builder import NodeBuilder
-
-
-class ChangeParticleColorNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_ChangeParticleColorNode"
-    bl_label = "Change Color"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("color", "Color", "Color")
-        builder.execute_output("execute", "Execute")
-
-
-class ChangeParticleVelocityNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_ChangeParticleVelocityNode"
-    bl_label = "Change Velocity"
-
-    mode: EnumProperty(
-        name="Mode",
-        items=[
-            ('SET', "Set", "Set a specific velocity", 'NONE', 0),
-            ('RANDOMIZE', "Randomize", "Apply some randomization to the velocity", 'NONE', 1),
-        ],
-        update= SimulationNode.sync_tree,
-    )
-
-    def declaration(self, builder: NodeBuilder):
-        if self.mode == 'SET':
-            builder.fixed_input("velocity", "Velocity", "Vector")
-        elif self.mode == 'RANDOMIZE':
-            builder.fixed_input("randomness", "Randomness", "Float", default=0.5)
-
-        builder.execute_output("execute", "Execute")
-
-    def draw(self, layout):
-        layout.prop(self, "mode", text="")
-
-
-class ChangeParticleSizeNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_ChangeParticleSizeNode"
-    bl_label = "Change Size"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("size", "Size", "Float", default=0.01)
-        builder.execute_output("execute", "Execute")
-
-
-class ChangeParticlePosition(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_ChangeParticlePositionNode"
-    bl_label = "Change Position"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("position", "Position", "Vector")
-        builder.execute_output("execute", "Execute")
diff --git a/release/scripts/startup/nodes/menu.py b/release/scripts/startup/nodes/menu.py
index 19fc6895b86..f5a9eeee22d 100644
--- a/release/scripts/startup/nodes/menu.py
+++ b/release/scripts/startup/nodes/menu.py
@@ -79,11 +79,6 @@ class ActionNodesMenu(bpy.types.Menu):
         layout = self.layout
         layout.operator_context = 'INVOKE_DEFAULT'
 
-        insert_node(layout, "fn_ChangeParticleColorNode", "Change Color")
-        insert_node(layout, "fn_ChangeParticleVelocityNode", "Change Velocity")
-        insert_node(layout, "fn_ChangeParticleSizeNode", "Change Size")
-        insert_node(layout, "fn_ChangeParticlePositionNode", "Change Position")
-        layout.separator()
         insert_node(layout, "fn_KillParticleNode", "Kill Particle")
         insert_node(layout, "fn_ParticleConditionNode", "Condition")
 
diff --git a/source/blender/simulations/bparticles/actions.cpp b/source/blender/simulations/bparticles/actions.cpp
index 0556de1cc69..ce3f685b04d 100644
--- a/source/blender/simulations/bparticles/actions.cpp
+++ b/source/blender/simulations/bparticles/actions.cpp
@@ -13,18 +13,6 @@ void ActionSequence::execute(ActionInterface &interface)
   }
 }
 
-static float random_number()
-{
-  static uint number = 0;
-  number++;
-  return BLI_hash_int_01(number) * 2.0f - 1.0f;
-}
-
-static float3 random_direction()
-{
-  return float3(random_number(), random_number(), random_number());
-}
-
 static void update_position_and_velocity_offsets(ActionInterface &interface)
 {
   AttributesRef attributes = interface.attributes();
@@ -46,76 +34,6 @@ static void update_position_and_velocity_offsets(ActionInterface &interface)
   }
 }
 
-void SetVelocityAction::execute(ActionInterface &interface)
-{
-  auto velocities = interface.attributes().get<float3>("Velocity");
-
-  auto inputs = ParticleFunctionResult::Compute(
-      *m_inputs_fn, interface.pindices(), interface.attributes());
-
-  for (uint pindex : interface.pindices()) {
-    float3 velocity = inputs.get_single<float3>("Velocity", 0, pindex);
-    velocities[pindex] = velocity;
-  }
-
-  update_position_and_velocity_offsets(interface);
-}
-
-void RandomizeVelocityAction::execute(ActionInterface &interface)
-{
-  auto velocities = interface.attributes().get<float3>("Velocity");
-
-  auto inputs = ParticleFunctionResult::Compute(
-      *m_inputs_fn, interface.pindices(), interface.attributes());
-
-  for (uint pindex : interface.pindices()) {
-    float randomness = inputs.get_single<float>("Randomness", 0, pindex);
-    float3 old_velocity = velocities[pindex];
-    float old_speed = old_velocity.length();
-
-    float3 velocity_offset = random_direction().normalized() * old_speed * randomness;
-    velocities[pindex] += velocity_offset;
-  }
-
-  update_position_and_velocity_offsets(interface);
-}
-
-void ChangeColorAction::execute(ActionInterface &interface)
-{
-  auto colors = interface.attributes().get<rgba_f>("Color");
-
-  auto inputs = ParticleFunctionResult::Compute(
-      *m_inputs_fn, interface.pindices(), interface.attributes());
-  for (uint pindex : interface.pindices()) {
-    rgba_f color = inputs.get_single<rgba_f>("Color", 0, pindex);
-    colors[pindex] = color;
-  }
-}
-
-void ChangeSizeAction::execute(ActionInterface &interface)
-{
-  auto sizes = interface.attributes().get<float>("Size");
-
-  auto inputs = ParticleFunctionResult::Compute(
-      *m_inputs_fn, interface.pindices(), interface.attributes());
-  for (uint pindex : interface.pindices()) {
-    float size = inputs.get_single<float>("Size", 0, pindex);
-    sizes[pindex] = size;
-  }
-}
-
-void ChangePositionAction::execute(ActionInterface &interface)
-{
-  auto positions = interface.attributes().get<float3>("Position");
-
-  auto inputs = ParticleFunctionResult::Compute(
-      *m_inputs_fn, interface.pindices(), interface.attributes());
-  for (uint pindex : interface.pindices()) {
-    float3 position = inputs.get_single<float3>("Position", 0, pindex);
-    positions[pindex] = position;
-  }
-}
-
 void KillAction::execute(ActionInterface &interface)
 {
   interface.kill(interface.pindices());
@@ -180,6 +98,10 @@ void SetAttributeAction::execute(ActionInterface &interface)
     void *dst = attribute[pindex];
     m_attribute_type.copy_to_initialized(value, dst);
   }
+
+  if (m_attribute_name == "Velocity") {
+    update_position_and_velocity_offsets(interface);
+  }
 }
 
 using FN::MFDataType;
diff --git a/source/blender/simulations/bparticles/actions.hpp b/source/blender/simulations/bparticles/actions.hpp
index f91a43f1fa8..7feaad487ed 100644
--- a/source/blender/simulations/bparticles/actions.hpp
+++ b/source/blender/simulations/bparticles/actions.hpp
@@ -23,66 +23,6 @@ class KillAction : public Action {
   void execute(ActionInterface &interface) override;
 };
 
-class SetVelocityAction : public Action {
- private:
-  ParticleFunction *m_inputs_fn;
-
- public:
-  SetVelocityAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
-  {
-  }
-
-  void execute(ActionInterface &interface) override;
-};
-
-class RandomizeVelocityAction : public Action {
- private:
-  ParticleFunction *m_inputs_fn;
-
- public:
-  RandomizeVelocityAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
-  {
-  }
-
-  void execute(ActionInterface &interface) override;
-};
-
-class ChangeColorAction : public Action {
- private:
-  ParticleFunction *m_inputs_fn;
-
- public:
-  ChangeColorAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
-  {
-  }
-
-  void execute(ActionInterface &interface) override;
-};
-
-class ChangeSizeAction : public Action {
- private:
-  ParticleFunction *m_inputs_fn;
-
- public:
-  ChangeSizeAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
-  {
-  }
-
-  void execute(ActionInterface &interface) override;
-};
-
-class ChangePositionAction : public Action {
- private:
-  ParticleFunction *m_inputs_fn;
-
- public:
-  ChangePositionAction(ParticleFunction *inputs_fn) : m_inputs_fn(inputs_fn)
-  {
-  }
-
-  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 e9245fc56db..e4fd6438d5a 100644
--- a/source/blender/simulations/bparticles/node_frontend.cpp
+++ b/source/blender/simulations/bparticles/node_frontend.cpp
@@ -518,27 +518,6 @@ static void ACTION_kill(XSocketActionBuilder &builder)
   builder.set_constructed<KillAction>();
 }
 
-static void ACTION_change_velocity(XSocketActionBuilder &builder)
-{
-  ParticleFunction *inputs_fn = builder.particle_function_for_all_inputs();
-  if (inputs_fn == nullptr) {
-    return;
-  }
-
-  int mode = RNA_enum_get(builder.node_rna(), "mode");
-  switch (mode) {
-    case 0:
-      builder.set_constructed<SetVelocityAction>(inputs_fn);
-      break;
-    case 1:
-      builder.set_constructed<RandomizeVelocityAction>(inputs_fn);
-      break;
-    default:
-      BLI_assert(false);
-      break;
-  }
-}
-
 static void ACTION_spawn(XSocketActionBuilder &builder)
 {
   const XNode &xnode = builder.xsocket().node();
@@ -596,36 +575,6 @@ static void ACTION_condition(XSocketActionBuilder &builder)
   builder.set_constructed<ConditionAction>(inputs_fn, action_true, action_false);
 }
 
-static void ACTION_change_color(XSocketActionBuilder &builder)
-{
-  ParticleFunction *inputs_fn = builder.particle_function_for_all_inputs();
-  if (inputs_fn == nullptr) {
-    return;
-  }
-
-  builder.set_constructed<ChangeColorAction>(inputs_fn);
-}
-
-static void ACTION_change_size(XSocketActionBuilder &builder)
-{
-  ParticleFunction *inputs_fn = builder.particle_function_for_all_inputs();
-  if (inputs_fn == nullptr) {
-    return;
-  }
-
-  builder.set_constructed<ChangeSizeAction>(inputs_fn);
-}
-
-static void ACTION_change_position(XSocketActionBuilder &builder)
-{
-  ParticleFunction *inputs_fn = builder.particle_function_for_all_inputs();
-  if (inputs_

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list