[Bf-blender-cvs] [cfb18bb6c34] functions: Pass particle influences into the right functions

Jacques Lucke noreply at git.blender.org
Thu Jun 20 15:51:10 CEST 2019


Commit: cfb18bb6c347723a17c8ce551e223beeed80e9b7
Author: Jacques Lucke
Date:   Thu Jun 20 12:21:30 2019 +0200
Branches: functions
https://developer.blender.org/rBcfb18bb6c347723a17c8ce551e223beeed80e9b7

Pass particle influences into the right functions

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

M	source/blender/simulations/bparticles/c_wrapper.cpp
M	source/blender/simulations/bparticles/core.hpp
M	source/blender/simulations/bparticles/simulate.cpp

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

diff --git a/source/blender/simulations/bparticles/c_wrapper.cpp b/source/blender/simulations/bparticles/c_wrapper.cpp
index b6e9177a1fd..76137db6ff2 100644
--- a/source/blender/simulations/bparticles/c_wrapper.cpp
+++ b/source/blender/simulations/bparticles/c_wrapper.cpp
@@ -51,7 +51,7 @@ void BParticles_state_free(BParticlesState state)
   delete unwrap(state);
 }
 
-class ModifierStepParticleInfluencers : public ParticleInfluencers {
+class ModifierStepParticleInfluences : public ParticleInfluences {
  public:
   SmallVector<Force *> m_forces;
   SmallVector<Event *> m_events;
@@ -75,7 +75,7 @@ class ModifierStepDescription : public StepDescription {
  public:
   float m_duration;
   SmallVector<Emitter *> m_emitters;
-  ModifierStepParticleInfluencers m_influencers;
+  ModifierStepParticleInfluences m_influences;
 
   float step_duration() override
   {
@@ -87,9 +87,9 @@ class ModifierStepDescription : public StepDescription {
     return m_emitters;
   }
 
-  ParticleInfluencers &influencers() override
+  ParticleInfluences &influences() override
   {
-    return m_influencers;
+    return m_influences;
   }
 };
 
@@ -101,7 +101,7 @@ void BParticles_simulate_modifier(NodeParticlesModifierData *UNUSED(npmd),
   ModifierStepDescription description;
   description.m_duration = 1.0f / 24.0f;
   description.m_emitters.append(EMITTER_point({1, 1, 1}).release());
-  description.m_influencers.m_forces.append(FORCE_directional({0, 0, -2}).release());
+  description.m_influences.m_forces.append(FORCE_directional({0, 0, -2}).release());
   simulate_step(state, description);
 }
 
diff --git a/source/blender/simulations/bparticles/core.hpp b/source/blender/simulations/bparticles/core.hpp
index 60534bb5378..3107149e78b 100644
--- a/source/blender/simulations/bparticles/core.hpp
+++ b/source/blender/simulations/bparticles/core.hpp
@@ -127,7 +127,7 @@ class Emitter {
   virtual void emit(EmitterHelper helper) = 0;
 };
 
-class ParticleInfluencers {
+class ParticleInfluences {
   virtual ArrayRef<Force *> forces() = 0;
   virtual ArrayRef<Event *> events() = 0;
   virtual ArrayRef<Action *> action_per_event() = 0;
@@ -137,7 +137,7 @@ class StepDescription {
  public:
   virtual float step_duration() = 0;
   virtual ArrayRef<Emitter *> emitters() = 0;
-  virtual ParticleInfluencers &influencers() = 0;
+  virtual ParticleInfluences &influences() = 0;
 };
 
 class ParticlesState {
diff --git a/source/blender/simulations/bparticles/simulate.cpp b/source/blender/simulations/bparticles/simulate.cpp
index 2971261e121..19f64e450a1 100644
--- a/source/blender/simulations/bparticles/simulate.cpp
+++ b/source/blender/simulations/bparticles/simulate.cpp
@@ -22,7 +22,8 @@ static ArrayRef<uint> static_number_range_ref()
 
 static void step_individual_particles(AttributeArrays attributes,
                                       ArrayRef<uint> particle_indices,
-                                      ArrayRef<float> durations)
+                                      ArrayRef<float> durations,
+                                      ParticleInfluences &UNUSED(influences))
 {
   auto positions = attributes.get_float3("Position");
 
@@ -37,6 +38,7 @@ static void step_individual_particles(AttributeArrays attributes,
 
 static void emit_new_particles_from_emitter(ParticlesContainer &container,
                                             Emitter &emitter,
+                                            ParticleInfluences &influences,
                                             TimeSpan time_span)
 {
   SmallVector<EmitterTarget> targets;
@@ -72,16 +74,18 @@ static void emit_new_particles_from_emitter(ParticlesContainer &container,
     block->active_amount() += target.emitted_amount();
     step_individual_particles(emitted_attributes,
                               Range<uint>(0, emitted_attributes.size()).to_small_vector(),
-                              initial_step_durations);
+                              initial_step_durations,
+                              influences);
   }
 }
 
 static void emit_new_particles_from_emitters(ParticlesContainer &container,
                                              ArrayRef<Emitter *> emitters,
+                                             ParticleInfluences &influences,
                                              TimeSpan time_span)
 {
   for (Emitter *emitter : emitters) {
-    emit_new_particles_from_emitter(container, *emitter, time_span);
+    emit_new_particles_from_emitter(container, *emitter, influences, time_span);
   }
 }
 
@@ -105,10 +109,12 @@ void simulate_step(ParticlesState &state, StepDescription &description)
   for (ParticlesBlock *block : already_existing_blocks) {
     step_individual_particles(block->slice_active(),
                               static_number_range_ref().take_front(block->active_amount()),
-                              durations.take_front(block->active_amount()));
+                              durations.take_front(block->active_amount()),
+                              description.influences());
   }
 
-  emit_new_particles_from_emitters(particles, description.emitters(), time_span);
+  emit_new_particles_from_emitters(
+      particles, description.emitters(), description.influences(), time_span);
 }
 
 }  // namespace BParticles



More information about the Bf-blender-cvs mailing list