[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