[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