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

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


Commit: b645fa8d12bf9649a6eabca08b840b06c8b9b744
Author: Jacques Lucke
Date:   Mon Jul 29 17:13:42 2019 +0200
Branches: functions
https://developer.blender.org/rBb645fa8d12bf9649a6eabca08b840b06c8b9b744

remove more redundant code

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

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

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

diff --git a/source/blender/simulations/bparticles/actions.cpp b/source/blender/simulations/bparticles/actions.cpp
index f16bf71be22..1df09a9ec70 100644
--- a/source/blender/simulations/bparticles/actions.cpp
+++ b/source/blender/simulations/bparticles/actions.cpp
@@ -76,10 +76,10 @@ void ExplodeAction::execute(ActionInterface &interface)
 
   auto new_particles = interface.particle_allocator().request(m_new_particle_name,
                                                               new_birth_times.size());
-  new_particles.set_float3("Position", new_positions);
-  new_particles.set_float3("Velocity", new_velocities);
+  new_particles.set<float3>("Position", new_positions);
+  new_particles.set<float3>("Velocity", new_velocities);
   new_particles.fill_float("Size", 0.1f);
-  new_particles.set_float("Birth Time", new_birth_times);
+  new_particles.set<float>("Birth Time", new_birth_times);
 
   m_post_action->execute(interface);
 }
diff --git a/source/blender/simulations/bparticles/emitters.cpp b/source/blender/simulations/bparticles/emitters.cpp
index ca90d67e644..b709cd75d10 100644
--- a/source/blender/simulations/bparticles/emitters.cpp
+++ b/source/blender/simulations/bparticles/emitters.cpp
@@ -40,10 +40,10 @@ void PointEmitter::emit(EmitterInterface &interface)
 
   auto new_particles = interface.particle_allocator().request(m_particle_type_name,
                                                               new_positions.size());
-  new_particles.set_float3("Position", new_positions);
-  new_particles.set_float3("Velocity", new_velocities);
-  new_particles.set_float("Size", new_sizes);
-  new_particles.set_float("Birth Time", birth_times);
+  new_particles.set<float3>("Position", new_positions);
+  new_particles.set<float3>("Velocity", new_velocities);
+  new_particles.set<float>("Size", new_sizes);
+  new_particles.set<float>("Birth Time", birth_times);
 }
 
 static float3 random_point_in_triangle(float3 a, float3 b, float3 c)
@@ -121,10 +121,10 @@ void SurfaceEmitter::emit(EmitterInterface &interface)
 
   auto new_particles = interface.particle_allocator().request(m_particle_type_name,
                                                               positions.size());
-  new_particles.set_float3("Position", positions);
-  new_particles.set_float3("Velocity", velocities);
-  new_particles.set_float("Size", sizes);
-  new_particles.set_float("Birth Time", birth_times);
+  new_particles.set<float3>("Position", positions);
+  new_particles.set<float3>("Velocity", velocities);
+  new_particles.set<float>("Size", sizes);
+  new_particles.set<float>("Birth Time", birth_times);
 
   m_action->execute_from_emitter(new_particles, interface);
 }
@@ -216,7 +216,7 @@ void InitialGridEmitter::emit(EmitterInterface &interface)
 
   auto new_particles = interface.particle_allocator().request(m_particle_type_name,
                                                               new_positions.size());
-  new_particles.set_float3("Position", new_positions);
+  new_particles.set<float3>("Position", new_positions);
   new_particles.fill_float("Birth Time", interface.time_span().start());
   new_particles.fill_float("Size", m_size);
 }
diff --git a/source/blender/simulations/bparticles/offset_handlers.cpp b/source/blender/simulations/bparticles/offset_handlers.cpp
index 00d3153a212..8a5ceceb099 100644
--- a/source/blender/simulations/bparticles/offset_handlers.cpp
+++ b/source/blender/simulations/bparticles/offset_handlers.cpp
@@ -34,8 +34,8 @@ void CreateTrailHandler::execute(OffsetHandlerInterface &interface)
 
   auto new_particles = interface.particle_allocator().request(m_particle_type_name,
                                                               new_positions.size());
-  new_particles.set_float3("Position", new_positions);
-  new_particles.set_float("Birth Time", new_birth_times);
+  new_particles.set<float3>("Position", new_positions);
+  new_particles.set<float>("Birth Time", new_birth_times);
 }
 
 }  // namespace BParticles
diff --git a/source/blender/simulations/bparticles/particle_set.cpp b/source/blender/simulations/bparticles/particle_set.cpp
index cae9841ec20..c788cc1fea4 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_byte(uint index, ArrayRef<uint8_t> data)
-{
-  BLI_assert(data.size() == m_size);
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Byte);
-  this->set_elements(index, (void *)data.begin());
-}
-void ParticleSets::set_integer(uint index, ArrayRef<int32_t> data)
-{
-  BLI_assert(data.size() == m_size);
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Integer);
-  this->set_elements(index, (void *)data.begin());
-}
-void ParticleSets::set_float(uint index, ArrayRef<float> data)
-{
-  BLI_assert(data.size() == m_size);
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Float);
-  this->set_elements(index, (void *)data.begin());
-}
-void ParticleSets::set_float3(uint index, ArrayRef<float3> data)
-{
-  BLI_assert(data.size() == m_size);
-  BLI_assert(m_attributes_info.type_of(index) == AttributeType::Float3);
-  this->set_elements(index, (void *)data.begin());
-}
-
-void ParticleSets::set_byte(StringRef name, ArrayRef<uint8_t> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_byte(index, data);
-}
-void ParticleSets::set_integer(StringRef name, ArrayRef<int32_t> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_integer(index, data);
-}
-void ParticleSets::set_float(StringRef name, ArrayRef<float> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_float(index, data);
-}
-void ParticleSets::set_float3(StringRef name, ArrayRef<float3> data)
-{
-  uint index = m_attributes_info.attribute_index(name);
-  this->set_float3(index, data);
-}
-
 void ParticleSets::set_repeated_byte(uint index, ArrayRef<uint8_t> data)
 {
   BLI_assert(m_attributes_info.type_of(index) == AttributeType::Byte);
diff --git a/source/blender/simulations/bparticles/particle_set.hpp b/source/blender/simulations/bparticles/particle_set.hpp
index d92be887166..250005d06dd 100644
--- a/source/blender/simulations/bparticles/particle_set.hpp
+++ b/source/blender/simulations/bparticles/particle_set.hpp
@@ -63,14 +63,18 @@ class ParticleSets {
 
   ArrayRef<ParticleSet> sets();
 
-  void set_byte(uint index, ArrayRef<uint8_t> data);
-  void set_byte(StringRef name, ArrayRef<uint8_t> data);
-  void set_integer(uint index, ArrayRef<int32_t> data);
-  void set_integer(StringRef name, ArrayRef<int32_t> data);
-  void set_float(uint index, ArrayRef<float> data);
-  void set_float(StringRef name, ArrayRef<float> data);
-  void set_float3(uint index, ArrayRef<float3> data);
-  void set_float3(StringRef name, ArrayRef<float3> data);
+  template<typename T> void set(uint index, ArrayRef<T> data)
+  {
+    BLI_assert(data.size() == m_size);
+    BLI_assert(m_attributes_info.type_of(index) == attribute_type_by_type<T>::value);
+    this->set_elements(index, (void *)data.begin());
+  }
+
+  template<typename T> void set(StringRef name, ArrayRef<T> data)
+  {
+    uint index = m_attributes_info.attribute_index(name);
+    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);



More information about the Bf-blender-cvs mailing list