[Bf-blender-cvs] [e38e761ba62] functions: remove more redundant code

Jacques Lucke noreply at git.blender.org
Mon Jul 29 17:57:57 CEST 2019


Commit: e38e761ba62fa27011d43821ed61b21e0475c480
Author: Jacques Lucke
Date:   Mon Jul 29 17:17:38 2019 +0200
Branches: functions
https://developer.blender.org/rBe38e761ba62fa27011d43821ed61b21e0475c480

remove more redundant code

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

M	source/blender/simulations/bparticles/emitters.cpp
M	source/blender/simulations/bparticles/particle_set.cpp
M	source/blender/simulations/bparticles/particle_set.hpp

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

diff --git a/source/blender/simulations/bparticles/emitters.cpp b/source/blender/simulations/bparticles/emitters.cpp
index b709cd75d10..965dee569f0 100644
--- a/source/blender/simulations/bparticles/emitters.cpp
+++ b/source/blender/simulations/bparticles/emitters.cpp
@@ -175,15 +175,15 @@ void CustomFunctionEmitter::emit(EmitterInterface &interface)
 
     if (type == float_list_type) {
       auto list = fn_out.relocate_out<SharedFloatList>(i);
-      new_particles.set_repeated_float(attribute_index, *list.ptr());
+      new_particles.set_repeated<float>(attribute_index, *list.ptr());
     }
     else if (type == float3_list_type) {
       auto list = fn_out.relocate_out<SharedFloat3List>(i);
-      new_particles.set_repeated_float3(attribute_index, *list.ptr());
+      new_particles.set_repeated<float3>(attribute_index, *list.ptr());
     }
     else if (type == int32_list_type) {
       auto list = fn_out.relocate_out<SharedInt32List>(i);
-      new_particles.set_repeated_integer(attribute_index, *list.ptr());
+      new_particles.set_repeated<int32_t>(attribute_index, *list.ptr());
     }
     else if (type == float_type) {
       new_particles.fill_float(attribute_index, fn_out.get<float>(i));
diff --git a/source/blender/simulations/bparticles/particle_set.cpp b/source/blender/simulations/bparticles/particle_set.cpp
index c788cc1fea4..0c5a3c3571b 100644
--- a/source/blender/simulations/bparticles/particle_set.cpp
+++ b/source/blender/simulations/bparticles/particle_set.cpp
@@ -80,52 +80,6 @@ void ParticleSets::fill_elements(uint index, void *value)
   }
 }
 
-void ParticleSets::set_repeated_byte(uint index, ArrayRef<uint8_t> data)
-{
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Byte);
-  this->set_repeated_elements(
-      index, (void *)data.begin(), data.size(), m_attributes_info.default_value_ptr(index));
-}
-void ParticleSets::set_repeated_integer(uint index, ArrayRef<int32_t> data)
-{
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Integer);
-  this->set_repeated_elements(
-      index, (void *)data.begin(), data.size(), m_attributes_info.default_value_ptr(index));
-}
-void ParticleSets::set_repeated_float(uint index, ArrayRef<float> data)
-{
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Float);
-  this->set_repeated_elements(
-      index, (void *)data.begin(), data.size(), m_attributes_info.default_value_ptr(index));
-}
-void ParticleSets::set_repeated_float3(uint index, ArrayRef<float3> data)
-{
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Float3);
-  this->set_repeated_elements(
-      index, (void *)data.begin(), data.size(), m_attributes_info.default_value_ptr(index));
-}
-
-void ParticleSets::set_repeated_byte(StringRef name, ArrayRef<uint8_t> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_repeated_byte(index, data);
-}
-void ParticleSets::set_repeated_integer(StringRef name, ArrayRef<int32_t> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_repeated_integer(index, data);
-}
-void ParticleSets::set_repeated_float(StringRef name, ArrayRef<float> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_repeated_float(index, data);
-}
-void ParticleSets::set_repeated_float3(StringRef name, ArrayRef<float3> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_repeated_float3(index, data);
-}
-
 void ParticleSets::fill_byte(uint index, uint8_t value)
 {
   this->fill_elements(index, (void *)&value);
diff --git a/source/blender/simulations/bparticles/particle_set.hpp b/source/blender/simulations/bparticles/particle_set.hpp
index 250005d06dd..4130ddda5a6 100644
--- a/source/blender/simulations/bparticles/particle_set.hpp
+++ b/source/blender/simulations/bparticles/particle_set.hpp
@@ -76,14 +76,18 @@ class ParticleSets {
     this->set<T>(index, data);
   }
 
-  void set_repeated_byte(uint index, ArrayRef<uint8_t> data);
-  void set_repeated_byte(StringRef name, ArrayRef<uint8_t> data);
-  void set_repeated_integer(uint index, ArrayRef<int32_t> data);
-  void set_repeated_integer(StringRef name, ArrayRef<int32_t> data);
-  void set_repeated_float(uint index, ArrayRef<float> data);
-  void set_repeated_float(StringRef name, ArrayRef<float> data);
-  void set_repeated_float3(uint index, ArrayRef<float3> data);
-  void set_repeated_float3(StringRef name, ArrayRef<float3> data);
+  template<typename T> void set_repeated(uint index, ArrayRef<T> data)
+  {
+    BLI_assert(m_attributes_info.type_of(index) == attribute_type_by_type<T>::value);
+    this->set_repeated_elements(
+        index, (void *)data.begin(), data.size(), m_attributes_info.default_value_ptr(index));
+  }
+
+  template<typename T> void set_repeated(StringRef name, ArrayRef<T> data)
+  {
+    uint index = m_attributes_info.attribute_index(name);
+    this->set_repeated<T>(index, data);
+  }
 
   void fill_byte(uint index, uint8_t value);
   void fill_byte(StringRef name, uint8_t value);



More information about the Bf-blender-cvs mailing list