[Bf-blender-cvs] [d908edbc8a6] functions: cleanup

Jacques Lucke noreply at git.blender.org
Thu Jul 18 18:19:19 CEST 2019


Commit: d908edbc8a6ea22b60b93d413c7bb95a46a62546
Author: Jacques Lucke
Date:   Thu Jul 18 13:47:13 2019 +0200
Branches: functions
https://developer.blender.org/rBd908edbc8a6ea22b60b93d413c7bb95a46a62546

cleanup

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

M	source/blender/simulations/bparticles/simulate.cpp

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

diff --git a/source/blender/simulations/bparticles/simulate.cpp b/source/blender/simulations/bparticles/simulate.cpp
index e189089aa0a..3e8137020de 100644
--- a/source/blender/simulations/bparticles/simulate.cpp
+++ b/source/blender/simulations/bparticles/simulate.cpp
@@ -281,28 +281,29 @@ BLI_NOINLINE static void add_float3_arrays(ArrayRef<float3> base, ArrayRef<float
   }
 }
 
-BLI_NOINLINE static void apply_remaining_offsets(BlockStepData &step_data, ParticleSet particles)
+BLI_NOINLINE static void apply_remaining_offsets(BlockStepData &step_data, ArrayRef<uint> pindices)
 {
   auto listeners = step_data.particle_type.forwarding_listeners();
   if (listeners.size() > 0) {
     ArrayAllocator::Array<float> time_factors(step_data.array_allocator);
-    for (uint pindex : particles.pindices()) {
+    for (uint pindex : pindices) {
       time_factors[pindex] = 1.0f;
     }
 
-    ForwardingListenerInterface interface(step_data, particles.pindices(), time_factors);
+    ForwardingListenerInterface interface(step_data, pindices, time_factors);
     for (ForwardingListener *listener : step_data.particle_type.forwarding_listeners()) {
       listener->listen(interface);
     }
   }
 
-  auto atribute_offsets = step_data.attribute_offsets;
+  auto attribute_offsets = step_data.attribute_offsets;
+  ParticleSet particles(step_data.block, pindices);
 
-  for (uint attribute_index : atribute_offsets.info().float3_attributes()) {
-    StringRef name = atribute_offsets.info().name_of(attribute_index);
+  for (uint attribute_index : attribute_offsets.info().float3_attributes()) {
+    StringRef name = attribute_offsets.info().name_of(attribute_index);
 
     auto values = particles.attributes().get_float3(name);
-    auto offsets = atribute_offsets.get_float3(attribute_index);
+    auto offsets = attribute_offsets.get_float3(attribute_index);
 
     if (particles.indices_are_trivial()) {
       add_float3_arrays(values.take_front(particles.size()), offsets.take_front(particles.size()));
@@ -343,8 +344,7 @@ BLI_NOINLINE static void simulate_block(ArrayAllocator &array_allocator,
                              end_time};
 
   if (particle_type.events().size() == 0) {
-    ParticleSet all_particles_in_block(block, block.active_range().as_array_ref());
-    apply_remaining_offsets(step_data, all_particles_in_block);
+    apply_remaining_offsets(step_data, block.active_range().as_array_ref());
   }
   else {
     auto indices_array = array_allocator.allocate_scoped<uint>();
@@ -354,8 +354,7 @@ BLI_NOINLINE static void simulate_block(ArrayAllocator &array_allocator,
 
     /* Not sure yet, if this really should be done. */
     if (unfinished_pindices.size() > 0) {
-      ParticleSet remaining_particles(block, unfinished_pindices);
-      apply_remaining_offsets(step_data, remaining_particles);
+      apply_remaining_offsets(step_data, unfinished_pindices);
     }
   }



More information about the Bf-blender-cvs mailing list