[Bf-blender-cvs] [2c0c758d72e] functions: make StepDescription class non-virtual
Jacques Lucke
noreply at git.blender.org
Thu Jul 18 18:19:37 CEST 2019
Commit: 2c0c758d72ee007abc6f4926b7f1c37f0fd84cc3
Author: Jacques Lucke
Date: Thu Jul 18 15:30:48 2019 +0200
Branches: functions
https://developer.blender.org/rB2c0c758d72ee007abc6f4926b7f1c37f0fd84cc3
make StepDescription class non-virtual
===================================================================
M source/blender/simulations/bparticles/core.cpp
M source/blender/simulations/bparticles/core.hpp
M source/blender/simulations/bparticles/step_description.hpp
===================================================================
diff --git a/source/blender/simulations/bparticles/core.cpp b/source/blender/simulations/bparticles/core.cpp
index a81e7707aaa..c4881f0d2f8 100644
--- a/source/blender/simulations/bparticles/core.cpp
+++ b/source/blender/simulations/bparticles/core.cpp
@@ -36,6 +36,12 @@ ParticleType::~ParticleType()
StepDescription::~StepDescription()
{
+ for (auto *type : m_types.values()) {
+ delete type;
+ }
+ for (Emitter *emitter : m_emitters) {
+ delete emitter;
+ }
}
ParticlesState::~ParticlesState()
diff --git a/source/blender/simulations/bparticles/core.hpp b/source/blender/simulations/bparticles/core.hpp
index 06c15089742..03d7de2d273 100644
--- a/source/blender/simulations/bparticles/core.hpp
+++ b/source/blender/simulations/bparticles/core.hpp
@@ -164,19 +164,26 @@ class ParticleType {
*/
class StepDescription {
public:
- virtual ~StepDescription();
+ float m_duration;
+ StringMap<ParticleType *> m_types;
+ SmallVector<Emitter *> m_emitters;
- /**
- * Return how many seconds the this time step takes.
- */
- virtual float step_duration() = 0;
+ ~StepDescription();
- /**
- * Return the emitters that might emit particles in this time step.
- */
- virtual ArrayRef<Emitter *> emitters() = 0;
+ float step_duration()
+ {
+ return m_duration;
+ }
- virtual StringMap<ParticleType *> &particle_types() = 0;
+ ArrayRef<Emitter *> emitters()
+ {
+ return m_emitters;
+ }
+
+ StringMap<ParticleType *> &particle_types()
+ {
+ return m_types;
+ }
};
/* Classes used by the interface
diff --git a/source/blender/simulations/bparticles/step_description.hpp b/source/blender/simulations/bparticles/step_description.hpp
index 2f1f169a2af..b23f6929cbf 100644
--- a/source/blender/simulations/bparticles/step_description.hpp
+++ b/source/blender/simulations/bparticles/step_description.hpp
@@ -4,38 +4,6 @@
namespace BParticles {
-class ModifierStepDescription : public StepDescription {
- public:
- float m_duration;
- StringMap<ParticleType *> m_types;
- SmallVector<Emitter *> m_emitters;
-
- ~ModifierStepDescription()
- {
- for (auto *type : m_types.values()) {
- delete type;
- }
- for (Emitter *emitter : m_emitters) {
- delete emitter;
- }
- }
-
- float step_duration() override
- {
- return m_duration;
- }
-
- ArrayRef<Emitter *> emitters() override
- {
- return m_emitters;
- }
-
- StringMap<ParticleType *> &particle_types() override
- {
- return m_types;
- }
-};
-
class ParticleTypeBuilder {
private:
Integrator *m_integrator;
@@ -110,7 +78,7 @@ class StepDescriptionBuilder {
std::unique_ptr<StepDescription> build(float duration)
{
- ModifierStepDescription *step_description = new ModifierStepDescription();
+ StepDescription *step_description = new StepDescription();
step_description->m_duration = duration;
step_description->m_emitters = m_emitters;
for (auto item : m_type_builders.items()) {
More information about the Bf-blender-cvs
mailing list