[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