[Bf-blender-cvs] [856049d771e] functions-experimental-refactor: merge bparticles node tree into functions node tree

Jacques Lucke noreply at git.blender.org
Thu Nov 7 11:44:20 CET 2019


Commit: 856049d771e2f510ad32b3f189549a1d483f88d9
Author: Jacques Lucke
Date:   Wed Nov 6 16:08:20 2019 +0100
Branches: functions-experimental-refactor
https://developer.blender.org/rB856049d771e2f510ad32b3f189549a1d483f88d9

merge bparticles node tree into functions node tree

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

M	release/scripts/startup/bl_operators/modifiers.py
M	release/scripts/startup/bl_ui/properties_data_modifier.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	release/scripts/startup/nodes/base.py
M	release/scripts/startup/nodes/bparticle_nodes/always_execute.py
M	release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
M	release/scripts/startup/nodes/bparticle_nodes/combine_influences.py
M	release/scripts/startup/nodes/bparticle_nodes/condition.py
M	release/scripts/startup/nodes/bparticle_nodes/events.py
M	release/scripts/startup/nodes/bparticle_nodes/explode_particle.py
M	release/scripts/startup/nodes/bparticle_nodes/forces.py
M	release/scripts/startup/nodes/bparticle_nodes/groups.py
M	release/scripts/startup/nodes/bparticle_nodes/initial_grid_emitter.py
M	release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
M	release/scripts/startup/nodes/bparticle_nodes/mesh_emitter.py
M	release/scripts/startup/nodes/bparticle_nodes/mockups.py
M	release/scripts/startup/nodes/bparticle_nodes/particle_inputs.py
M	release/scripts/startup/nodes/bparticle_nodes/particle_system.py
M	release/scripts/startup/nodes/bparticle_nodes/point_emitter.py
M	release/scripts/startup/nodes/bparticle_nodes/size_over_time.py
M	release/scripts/startup/nodes/bparticle_nodes/trails.py
D	release/scripts/startup/nodes/bparticles_tree.py
M	release/scripts/startup/nodes/declaration/bparticles.py
M	release/scripts/startup/nodes/function_tree.py
M	release/scripts/startup/nodes/menu.py
M	release/scripts/startup/nodes/node_operators.py
M	release/scripts/startup/nodes/search.py
M	release/scripts/startup/nodes/sockets.py
M	release/scripts/startup/nodes/sync.py
M	source/blender/makesdna/DNA_modifier_types.h
M	source/blender/makesrna/intern/rna_modifier.c
M	source/blender/modifiers/intern/MOD_bparticles.c
M	source/blender/simulations/bparticles/c_wrapper.cpp
M	source/blender/simulations/bparticles/node_frontend.cpp
M	source/blender/simulations/bparticles/particle_function_builder.cpp

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

diff --git a/release/scripts/startup/bl_operators/modifiers.py b/release/scripts/startup/bl_operators/modifiers.py
index 5b19d9e4a96..b039ada1c4a 100644
--- a/release/scripts/startup/bl_operators/modifiers.py
+++ b/release/scripts/startup/bl_operators/modifiers.py
@@ -58,33 +58,33 @@ class NewPointGeneratorFunction(bpy.types.Operator, ModifierOperator):
         mod.function_tree = tree
         return {'FINISHED'}
 
-class NewBParticlesTree(bpy.types.Operator, ModifierOperator):
-    bl_idname = "bp.new_bparticles_tree"
-    bl_label = "New BParticles Tree"
+class NewParticleSimulationTree(bpy.types.Operator, ModifierOperator):
+    bl_idname = "fn.new_particle_simulation_tree"
+    bl_label = "New Particle Simulation Tree"
 
     def execute(self, context):
         mod = self.get_modifier()
         if mod is None:
             return {'CANCELLED'}
 
-        tree = bpy.data.node_groups.new("Particle Simulation", "BParticlesTree")
+        tree = bpy.data.node_groups.new("Particle Simulation", "FunctionTree")
 
-        type_node = tree.nodes.new("bp_ParticleSystemNode")
+        type_node = tree.nodes.new("fn_ParticleSystemNode")
 
-        emitter_node = tree.nodes.new("bp_InitialGridEmitterNode")
+        emitter_node = tree.nodes.new("fn_InitialGridEmitterNode")
         emitter_node.location = (-250, 200)
 
-        gravity_node = tree.nodes.new("bp_TurbulenceForceNode")
+        gravity_node = tree.nodes.new("fn_TurbulenceForceNode")
         gravity_node.location = (-250, -100)
 
         tree.links.new(emitter_node.outputs[0], type_node.inputs[0])
         tree.links.new(gravity_node.outputs[0], type_node.inputs[0])
 
-        mod.bparticles_tree = tree
+        mod.node_tree = tree
         return {'FINISHED'}
 
 classes = (
     NewDeformationFunction,
     NewPointGeneratorFunction,
-    NewBParticlesTree,
+    NewParticleSimulationTree,
 )
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 41be9ff1c36..cd72196cd75 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1679,8 +1679,8 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
 
     def BPARTICLES(self, layout, ob, md):
         row = layout.row(align=True)
-        row.prop(md, "bparticles_tree")
-        props = row.operator("bp.new_bparticles_tree", text="", icon="ADD")
+        row.prop(md, "node_tree")
+        props = row.operator("fn.new_particle_simulation_tree", text="", icon="ADD")
         props.object_name = ob.name
         props.modifier_name = md.name
 
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index e5119ce46cf..a3aa324f0d0 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -2049,7 +2049,7 @@ class VIEW3D_MT_add(Menu):
 
         layout.separator()
 
-        layout.operator("bp.new_particle_system", text="Particle Simulation", icon='MOD_PARTICLES')
+        layout.operator("fn.new_particle_system", text="Particle Simulation", icon='MOD_PARTICLES')
 
         layout.separator()
 
diff --git a/release/scripts/startup/nodes/base.py b/release/scripts/startup/nodes/base.py
index e7d7491fdcf..4412edf99dc 100644
--- a/release/scripts/startup/nodes/base.py
+++ b/release/scripts/startup/nodes/base.py
@@ -220,24 +220,8 @@ class BaseSocket:
 class FunctionNode(BaseNode):
     pass
 
-class BParticlesNode(BaseNode):
-    def invoke_particle_type_creation(self, layout, function_name, text, *, icon='NONE'):
-        self.invoke_function(layout, "create_particle_type", text, icon=icon, settings=(function_name,))
-
-    def create_particle_type(self, function_name):
-        for node in self.tree.nodes:
-            node.select = False
-
-        new_node = self.tree.nodes.new("bp_ParticleSystemNode")
-        new_node.select = True
-        self.tree.nodes.active = new_node
-        new_node.location = self.location
-        new_node.location.x += 10
-        new_node.location.y += 10
-
-        callback = getattr(self, function_name)
-        callback(new_node)
-        bpy.ops.node.translate_attach('INVOKE_DEFAULT')
+class SimulationNode(BaseNode):
+    pass
 
 class DataSocket(BaseSocket):
     def draw_self(self, layout, node, text):
diff --git a/release/scripts/startup/nodes/bparticle_nodes/always_execute.py b/release/scripts/startup/nodes/bparticle_nodes/always_execute.py
index c4590fdf402..15f035d583e 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/always_execute.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/always_execute.py
@@ -1,11 +1,11 @@
 import bpy
 from bpy.props import *
-from .. base import BParticlesNode
+from .. base import SimulationNode
 from .. node_builder import NodeBuilder
 
 
-class AlwaysExecuteNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_AlwaysExecuteNode"
+class AlwaysExecuteNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_AlwaysExecuteNode"
     bl_label = "Always Execute"
 
     execute__prop: NodeBuilder.ExecuteInputProperty()
diff --git a/release/scripts/startup/nodes/bparticle_nodes/change_attribute.py b/release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
index 73d0a8894b2..820b4f1c324 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/change_attribute.py
@@ -1,11 +1,11 @@
 import bpy
 from bpy.props import *
-from .. base import BParticlesNode
+from .. base import SimulationNode
 from .. node_builder import NodeBuilder
 
 
-class ChangeParticleColorNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_ChangeParticleColorNode"
+class ChangeParticleColorNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_ChangeParticleColorNode"
     bl_label = "Change Color"
 
     def declaration(self, builder: NodeBuilder):
@@ -13,8 +13,8 @@ class ChangeParticleColorNode(bpy.types.Node, BParticlesNode):
         builder.execute_output("execute", "Execute")
 
 
-class ChangeParticleVelocityNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_ChangeParticleVelocityNode"
+class ChangeParticleVelocityNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_ChangeParticleVelocityNode"
     bl_label = "Change Velocity"
 
     mode: EnumProperty(
@@ -23,7 +23,7 @@ class ChangeParticleVelocityNode(bpy.types.Node, BParticlesNode):
             ('SET', "Set", "Set a specific velocity", 'NONE', 0),
             ('RANDOMIZE', "Randomize", "Apply some randomization to the velocity", 'NONE', 1),
         ],
-        update= BParticlesNode.sync_tree,
+        update= SimulationNode.sync_tree,
     )
 
     def declaration(self, builder: NodeBuilder):
@@ -38,8 +38,8 @@ class ChangeParticleVelocityNode(bpy.types.Node, BParticlesNode):
         layout.prop(self, "mode", text="")
 
 
-class ChangeParticleSizeNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_ChangeParticleSizeNode"
+class ChangeParticleSizeNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_ChangeParticleSizeNode"
     bl_label = "Change Size"
 
     def declaration(self, builder: NodeBuilder):
@@ -47,8 +47,8 @@ class ChangeParticleSizeNode(bpy.types.Node, BParticlesNode):
         builder.execute_output("execute", "Execute")
 
 
-class ChangeParticlePosition(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_ChangeParticlePositionNode"
+class ChangeParticlePosition(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_ChangeParticlePositionNode"
     bl_label = "Change Position"
 
     def declaration(self, builder: NodeBuilder):
diff --git a/release/scripts/startup/nodes/bparticle_nodes/combine_influences.py b/release/scripts/startup/nodes/bparticle_nodes/combine_influences.py
index 09dd9fb09b4..9cdc5ac1ddd 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/combine_influences.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/combine_influences.py
@@ -1,9 +1,9 @@
 import bpy
-from .. base import BParticlesNode
+from .. base import SimulationNode
 from .. node_builder import NodeBuilder
 
-class CombineInfluencesNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_CombineInfluencesNode"
+class CombineInfluencesNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_CombineInfluencesNode"
     bl_label = "Combine Influences"
 
     def declaration(self, builder: NodeBuilder):
diff --git a/release/scripts/startup/nodes/bparticle_nodes/condition.py b/release/scripts/startup/nodes/bparticle_nodes/condition.py
index 16a5f972d8b..09de1ea6823 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/condition.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/condition.py
@@ -1,10 +1,10 @@
 import bpy
 from bpy.props import *
-from .. base import BParticlesNode
+from .. base import SimulationNode
 from .. node_builder import NodeBuilder
 
-class ParticleConditionNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_ParticleConditionNode"
+class ParticleConditionNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_ParticleConditionNode"
     bl_label = "Particle Condition"
 
     execute_if_true__prop: NodeBuilder.ExecuteInputProperty()
diff --git a/release/scripts/startup/nodes/bparticle_nodes/events.py b/release/scripts/startup/nodes/bparticle_nodes/events.py
index 40dd0052255..581dbfdd34f 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/events.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/events.py
@@ -1,11 +1,11 @@
 import bpy
 from bpy.props import *
-from .. base import BParticlesNode
+from .. base import SimulationNode
 from .. node_builder import NodeBuilder
 
 
-class AgeReachedEventNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_AgeReachedEventNode"
+class AgeReachedEventNode(bpy.types.Node, SimulationNode):
+    bl_idname = "fn_AgeReachedEventNode"
     bl_label = "Age Reached Event"
 
     execute_on_event__prop: NodeBuilder.ExecuteInputProperty()
@@ -18,8 +18,8 @@ class AgeReachedEventNode(bpy.types.Node, BParticlesNode):
         builder.influences_output("event", "Event")
 
 
-class MeshCollisionEventNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_M

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list