[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