Browse Source

added getPoolSizeRanges(), a utility function to estimate the ideal particle system size

Josh Wilson 19 years ago
parent
commit
f1a5b2058d
1 changed files with 16 additions and 0 deletions
  1. 16 0
      direct/src/particles/Particles.py

+ 16 - 0
direct/src/particles/Particles.py

@@ -546,3 +546,19 @@ class Particles(ParticleSystem):
             file.write('# Tangent Ring parameters\n')
             file.write('# Tangent Ring parameters\n')
             file.write(targ + '.emitter.setRadius(%.4f)\n' % self.emitter.getRadius())
             file.write(targ + '.emitter.setRadius(%.4f)\n' % self.emitter.getRadius())
             file.write(targ + '.emitter.setRadiusSpread(%.4f)\n' % self.emitter.getRadiusSpread())
             file.write(targ + '.emitter.setRadiusSpread(%.4f)\n' % self.emitter.getRadiusSpread())
+            
+    def getPoolSizeRanges(self):
+        litterRange = [max(1,self.getLitterSize()-self.getLitterSpread()),
+                       self.getLitterSize(),
+                       self.getLitterSize()+self.getLitterSpread()]
+        lifespanRange = [self.factory.getLifespanBase()-self.factory.getLifespanSpread(),
+                         self.factory.getLifespanBase(),
+                         self.factory.getLifespanBase()+self.factory.getLifespanSpread()]
+        birthRateRange = [self.getBirthRate()] * 3
+
+        print litterRange
+        print lifespanRange
+        print birthRateRange
+        
+        return dict(zip(('min','median','max'),[l*s/b for l,s,b in zip(litterRange,lifespanRange,birthRateRange)]))
+