[Bf-blender-cvs] [a80ffa4bc5f] functions: cleanup usage of IndexMask

Jacques Lucke noreply at git.blender.org
Sun Dec 22 14:25:52 CET 2019


Commit: a80ffa4bc5f6f91f2545157dd5ba015145dea949
Author: Jacques Lucke
Date:   Sun Dec 22 12:37:42 2019 +0100
Branches: functions
https://developer.blender.org/rBa80ffa4bc5f6f91f2545157dd5ba015145dea949

cleanup usage of IndexMask

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

M	source/blender/simulations/bparticles/actions.cpp
M	source/blender/simulations/bparticles/event_interface.hpp
M	source/blender/simulations/bparticles/events.cpp
M	source/blender/simulations/bparticles/particle_action.cpp
M	source/blender/simulations/bparticles/particle_action.hpp

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

diff --git a/source/blender/simulations/bparticles/actions.cpp b/source/blender/simulations/bparticles/actions.cpp
index cc484f98128..3f74a447260 100644
--- a/source/blender/simulations/bparticles/actions.cpp
+++ b/source/blender/simulations/bparticles/actions.cpp
@@ -29,7 +29,7 @@ static void update_position_and_velocity_offsets(ParticleActionContext &context)
   auto position_offsets = attribute_offsets.try_get<float3>("Position");
   auto velocity_offsets = attribute_offsets.try_get<float3>("Velocity");
 
-  for (uint pindex : context.pindex_mask().indices()) {
+  for (uint pindex : context.mask()) {
     float3 velocity = velocities[pindex];
 
     if (position_offsets.has_value()) {
@@ -43,11 +43,11 @@ static void update_position_and_velocity_offsets(ParticleActionContext &context)
 
 void ConditionAction::execute(ParticleActionContext &context)
 {
-  ParticleFunctionEvaluator inputs{m_inputs_fn, context.pindex_mask(), context.attributes()};
+  ParticleFunctionEvaluator inputs{m_inputs_fn, context.mask(), context.attributes()};
   inputs.compute();
 
   Vector<uint> true_pindices, false_pindices;
-  for (uint pindex : context.pindex_mask().indices()) {
+  for (uint pindex : context.mask()) {
     if (inputs.get_single<bool>("Condition", 0, pindex)) {
       true_pindices.append(pindex);
     }
@@ -71,10 +71,10 @@ void SetAttributeAction::execute(ParticleActionContext &context)
 
   GenericMutableArrayRef attribute = *attribute_opt;
 
-  ParticleFunctionEvaluator inputs{m_inputs_fn, context.pindex_mask(), context.attributes()};
+  ParticleFunctionEvaluator inputs{m_inputs_fn, context.mask(), context.attributes()};
   inputs.compute();
 
-  for (uint pindex : context.pindex_mask().indices()) {
+  for (uint pindex : context.mask()) {
     const void *value = inputs.get_single("Value", 0, pindex);
     void *dst = attribute[pindex];
     m_attribute_type.copy_to_initialized(value, dst);
@@ -90,7 +90,7 @@ using FN::MFParamType;
 
 void SpawnParticlesAction::execute(ParticleActionContext &context)
 {
-  if (context.pindex_mask().size() == 0) {
+  if (context.mask().size() == 0) {
     return;
   }
 
@@ -100,9 +100,9 @@ void SpawnParticlesAction::execute(ParticleActionContext &context)
   }
   ArrayRef<float> current_times = current_time_context->current_times;
 
-  uint array_size = context.pindex_mask().min_array_size();
+  uint array_size = context.mask().min_array_size();
 
-  ParticleFunctionEvaluator inputs{m_spawn_function, context.pindex_mask(), context.attributes()};
+  ParticleFunctionEvaluator inputs{m_spawn_function, context.mask(), context.attributes()};
   inputs.compute();
 
   LargeScopedArray<int> particle_counts(array_size, -1);
@@ -112,28 +112,28 @@ void SpawnParticlesAction::execute(ParticleActionContext &context)
     MFParamType param_type = fn.param_type(param_index);
     if (param_type.is_vector_output()) {
       FN::GenericVectorArray &vector_array = inputs.computed_vector_array(param_index);
-      for (uint i : context.pindex_mask().indices()) {
+      for (uint i : context.mask()) {
         FN::GenericArrayRef array = vector_array[i];
         particle_counts[i] = std::max<int>(particle_counts[i], array.size());
       }
     }
   }
 
-  for (uint i : context.pindex_mask().indices()) {
+  for (uint i : context.mask()) {
     if (particle_counts[i] == -1) {
       particle_counts[i] = 1;
     }
   }
 
   uint total_spawn_amount = 0;
-  for (uint i : context.pindex_mask().indices()) {
+  for (uint i : context.mask()) {
     total_spawn_amount += particle_counts[i];
   }
 
   StringMap<GenericMutableArrayRef> attribute_arrays;
 
   Vector<float> new_birth_times;
-  for (uint i : context.pindex_mask().indices()) {
+  for (uint i : context.mask()) {
     new_birth_times.append_n_times(current_times[i], particle_counts[i]);
   }
   attribute_arrays.add_new("Birth Time", new_birth_times.as_mutable_ref());
@@ -151,7 +151,7 @@ void SpawnParticlesAction::execute(ParticleActionContext &context)
         GenericArrayRef computed_array = inputs.computed_array(param_index);
 
         uint current = 0;
-        for (uint i : context.pindex_mask().indices()) {
+        for (uint i : context.mask()) {
           uint amount = particle_counts[i];
           array.slice(current, amount).fill__uninitialized(computed_array[i]);
           current += amount;
@@ -167,7 +167,7 @@ void SpawnParticlesAction::execute(ParticleActionContext &context)
         FN::GenericVectorArray &computed_vector_array = inputs.computed_vector_array(param_index);
 
         uint current = 0;
-        for (uint pindex : context.pindex_mask().indices()) {
+        for (uint pindex : context.mask()) {
           uint amount = particle_counts[pindex];
           GenericMutableArrayRef array_slice = array.slice(current, amount);
           GenericArrayRef computed_array = computed_vector_array[pindex];
@@ -212,7 +212,7 @@ void SpawnParticlesAction::execute(ParticleActionContext &context)
   attribute_arrays.foreach_key_value_pair(
       [&](StringRef attribute_name, GenericMutableArrayRef array) {
         if (attribute_name != "Birth Time") {
-          array.destruct_indices(context.pindex_mask().indices());
+          array.destruct_indices(context.mask());
           MEM_freeN(array.buffer());
         }
       });
diff --git a/source/blender/simulations/bparticles/event_interface.hpp b/source/blender/simulations/bparticles/event_interface.hpp
index 1fd100dc1f7..de46f85bf94 100644
--- a/source/blender/simulations/bparticles/event_interface.hpp
+++ b/source/blender/simulations/bparticles/event_interface.hpp
@@ -14,7 +14,7 @@ using BLI::IndexMask;
  */
 class EventFilterInterface : public BlockStepDataAccess {
  private:
-  IndexMask m_index_mask;
+  IndexMask m_mask;
   ArrayRef<float> m_known_min_time_factors;
 
   Vector<uint> &m_filtered_pindices;
@@ -22,12 +22,12 @@ class EventFilterInterface : public BlockStepDataAccess {
 
  public:
   EventFilterInterface(BlockStepData &step_data,
-                       IndexMask index_mask,
+                       IndexMask mask,
                        ArrayRef<float> known_min_time_factors,
                        Vector<uint> &r_filtered_pindices,
                        Vector<float> &r_filtered_time_factors)
       : BlockStepDataAccess(step_data),
-        m_index_mask(index_mask),
+        m_mask(mask),
         m_known_min_time_factors(known_min_time_factors),
         m_filtered_pindices(r_filtered_pindices),
         m_filtered_time_factors(r_filtered_time_factors)
@@ -37,9 +37,9 @@ class EventFilterInterface : public BlockStepDataAccess {
   /**
    * Return the indices that should be checked.
    */
-  IndexMask index_mask()
+  IndexMask mask()
   {
-    return m_index_mask;
+    return m_mask;
   }
 
   /**
diff --git a/source/blender/simulations/bparticles/events.cpp b/source/blender/simulations/bparticles/events.cpp
index 1a4f366d8f2..4e53c1aed4f 100644
--- a/source/blender/simulations/bparticles/events.cpp
+++ b/source/blender/simulations/bparticles/events.cpp
@@ -14,14 +14,14 @@ void AgeReachedEvent::filter(EventFilterInterface &interface)
 {
   AttributesRef attributes = interface.attributes();
 
-  ParticleFunctionEvaluator inputs{m_inputs_fn, interface.index_mask(), interface.attributes()};
+  ParticleFunctionEvaluator inputs{m_inputs_fn, interface.mask(), interface.attributes()};
   inputs.compute();
 
   float end_time = interface.step_end_time();
   auto birth_times = attributes.get<float>("Birth Time");
   auto was_activated_before = attributes.get<bool>(m_is_triggered_attribute);
 
-  for (uint pindex : interface.index_mask().indices()) {
+  for (uint pindex : interface.mask()) {
     if (was_activated_before[pindex]) {
       continue;
     }
@@ -64,13 +64,13 @@ void CustomEvent::filter(EventFilterInterface &interface)
   FN::EventFilterEndTimeContext end_time_context = {interface.step_end_time()};
   FN::EventFilterDurationsContext durations_context = {interface.remaining_durations()};
 
-  ParticleFunctionEvaluator inputs{m_inputs_fn, interface.index_mask(), interface.attributes()};
+  ParticleFunctionEvaluator inputs{m_inputs_fn, interface.mask(), interface.attributes()};
   inputs.context_builder().add_global_context(end_time_context);
   inputs.context_builder().add_element_context(durations_context,
                                                FN::MFElementContextIndices::FromDirectMapping());
   inputs.compute();
 
-  for (uint pindex : interface.index_mask().indices()) {
+  for (uint pindex : interface.mask()) {
     bool condition = inputs.get_single<bool>("Condition", 0, pindex);
     if (condition) {
       float time_factor = inputs.get_single<float>("Time Factor", 1, pindex);
@@ -97,7 +97,7 @@ void MeshCollisionEvent::filter(EventFilterInterface &interface)
 
   uint current_update_index = interface.simulation_state().time().current_update_index();
 
-  for (uint pindex : interface.index_mask().indices()) {
+  for (uint pindex : interface.mask()) {
     if (last_collision_step[pindex] == current_update_index) {
       continue;
     }
diff --git a/source/blender/simulations/bparticles/particle_action.cpp b/source/blender/simulations/bparticles/particle_action.cpp
index f82a69df4d4..77388d08f75 100644
--- a/source/blender/simulations/bparticles/particle_action.cpp
+++ b/source/blender/simulations/bparticles/particle_action.cpp
@@ -82,11 +82,10 @@ void ParticleAction::execute_from_event(EventExecuteInterface &event_interface)
   this->execute(context);
 }
 
-void ParticleAction::execute_for_subset(IndexMask pindex_mask,
-                                        ParticleActionContext &parent_context)
+void ParticleAction::execute_for_subset(IndexMask mask, ParticleActionContext &parent_context)
 {
   ParticleActionContext context(parent_context.particle_allocator(),
-                                pindex_mask,
+                                mask,
                                 parent_context.attributes(),
                                 parent_context.custom_context_ids(),
                                 parent_context.custom_contexts());
diff --git a/source/blender/simulations/bparticles/particle_action.hpp b/source/blender/simulations/bparticles/particle_action.hpp
index

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list