Browse Source

*** empty log message ***

Mark Mine 25 years ago
parent
commit
5e382927ae

+ 3 - 3
direct/src/particles/ForceGroup.py

@@ -107,9 +107,9 @@ class ForceGroup(DirectObject):
 		    	ftype = 'FTONEOVERRCUBED'
 		    forceCenter = f.getForceCenter()
 		    if isinstance(f, LinearSinkForce):
-			file.write(fname + ' = LinearSinkForce(Vec3(%.4f, %.4f, %.4f), LinearDistanceForce.%s, %.4f, %.4f, %d)\n' % (forceCenter[0], forceCenter[1], forceCenter[2], ftype, radius, amplitude, massDependent))
+			file.write(fname + ' = LinearSinkForce(Point3(%.4f, %.4f, %.4f), LinearDistanceForce.%s, %.4f, %.4f, %d)\n' % (forceCenter[0], forceCenter[1], forceCenter[2], ftype, radius, amplitude, massDependent))
 		    elif isinstance(f, LinearSourceForce):
-			file.write(fname + ' = LinearSourceForce(Vec3(%.4f, %.4f, %.4f), LinearDistanceForce.%s, %.4f, %.4f, %d)\n' % (forceCenter[0], forceCenter[1], forceCenter[2], ftype, radius, amplitude, massDependent))
+			file.write(fname + ' = LinearSourceForce(Point3(%.4f, %.4f, %.4f), LinearDistanceForce.%s, %.4f, %.4f, %d)\n' % (forceCenter[0], forceCenter[1], forceCenter[2], ftype, radius, amplitude, massDependent))
 		elif isinstance(f, LinearFrictionForce):
 		    file.write(fname + ' = LinearFrictionForce(%.4f, %.4f, %d)\n' % (f.getCoef(), amplitude, massDependent))
 		elif isinstance(f, LinearJitterForce):
@@ -117,7 +117,7 @@ class ForceGroup(DirectObject):
 		elif isinstance(f, LinearNoiseForce):
 		    file.write(fname + ' = LinearNoiseForce(%.4f, %d)\n' % (amplitude, massDependent))
 		elif isinstance(f, LinearVectorForce):
-		    vec = f.getVector()
+		    vec = f.getLocalVector()
 		    file.write(fname + ' = LinearVectorForce(Vec3(%.4f, %.4f, %.4f), %.4f, %d)\n' % (vec[0], vec[1], vec[2], amplitude, massDependent))
 	    elif isinstance(f, AngularForce):
 		if isinstance(f, AngularVectorForce):

+ 10 - 0
direct/src/particles/ParticleEffect.py

@@ -133,6 +133,16 @@ class ParticleEffect(NodePath):
 	f.write('self.particlesDict = {}\n')
 	f.write('self.forceGroupDict = {}\n')
 
+        pos = self.getPos()
+        hpr = self.getHpr()
+        scale = self.getScale()
+        f.write('self.setPos(%0.3f, %0.3f, %0.3f)\n' %
+                (pos[0], pos[1], pos[2]))
+        f.write('self.setHpr(%0.3f, %0.3f, %0.3f)\n' %
+                (hpr[0], hpr[1], hpr[2]))
+        f.write('self.setScale(%0.3f, %0.3f, %0.3f)\n' %
+                (scale[0], scale[1], scale[2]))
+
         # Save all the particles to file
 	num = 0
 	for p in self.particlesDict.values():

+ 17 - 1
direct/src/particles/Particles.py

@@ -200,8 +200,24 @@ class Particles(ParticleSystem.ParticleSystem):
 	file.write(targ + '.setRenderer(\"' + self.rendererType + '\")\n')
 	file.write(targ + '.setEmitter(\"' + self.emitterType + '\")\n')
 
+        # System parameters
+        file.write(targ + ('.setPoolSize(%d)\n' %
+                           int(self.getPoolSize())))
+        file.write(targ + ('.setBirthRate(%.4f)\n' %
+                           self.getBirthRate()))
+        file.write(targ + ('.setLitterSize(%d)\n' %
+                           int(self.getLitterSize())))
+        file.write(targ + ('.setLitterSpread(%d)\n' %
+                           self.getLitterSpread()))
+        file.write(targ + ('.setSystemLifespan(%.4f)\n' %
+                           self.getSystemLifespan()))
+        file.write(targ + ('.setLocalVelocityFlag(%d)\n' %
+                           self.getLocalVelocityFlag()))
+        file.write(targ + ('.setSystemGrowsOlderFlag(%d)\n' %
+                           self.getSystemGrowsOlderFlag()))
 	file.write('# Factory parameters\n')
-	file.write(targ + '.factory.setLifespanBase(%.4f)\n' % self.factory.getLifespanBase())
+	file.write(targ + ('.factory.setLifespanBase(%.4f)\n' %
+                           self.factory.getLifespanBase()))
 	file.write(targ + '.factory.setLifespanSpread(%.4f)\n' % self.factory.getLifespanSpread())
 	file.write(targ + '.factory.setMassBase(%.4f)\n' % self.factory.getMassBase())
 	file.write(targ + '.factory.setMassSpread(%.4f)\n' % self.factory.getMassSpread())

+ 7 - 1
direct/src/tkpanels/ParticlePanel.py

@@ -975,6 +975,12 @@ class ParticlePanel(AppShell):
             title = 'Load Particle Effect',
             parent = self.parent)
         if particleFilename:
+            # Delete existing particles and forces
+            pe = self.particleEffect
+            for p in pe.getParticlesList():
+                pe.removeParticles(p)
+            for fg in pe.getForceGroupList():
+                pe.removeForceGroup(fg)
             self.particleEffect.loadConfig(Filename(particleFilename))
             self.selectEffectNamed(self.particleEffect.getName())
 
@@ -1718,7 +1724,7 @@ class ParticlePanel(AppShell):
         forceName = 'Vector Force-' + `count`
         frame = self.createForceFrame(forcePage, forceName, force)
         self.createLinearForceWidgets(frame, pageName, forceName, force)
-        vec = force.getVector()
+        vec = force.getLocalVector()
         self.createVector3Entry(frame, pageName, forceName,
                                 'Set force direction and magnitude',
                                 command = setVec,