From 90dd7a343a407bc86e71b3e9b84e1b1d889de473 Mon Sep 17 00:00:00 2001 From: Mike Goslin Date: Fri, 26 Jan 2001 00:19:41 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/showbase/Particles.py | 194 +++++++++++++++---------------- 1 file changed, 92 insertions(+), 102 deletions(-) diff --git a/direct/src/showbase/Particles.py b/direct/src/showbase/Particles.py index 5ec4a855fa..c808995e25 100644 --- a/direct/src/showbase/Particles.py +++ b/direct/src/showbase/Particles.py @@ -194,195 +194,185 @@ class Particles(ParticleSystem.ParticleSystem): fname = Filename(filename) fname.resolveFilename(getParticlePath()) fname.resolveFilename(getModelPath()) - f = open(fname.toOsSpecific(), 'r') - rawData = f.readlines() - f.close() - styleData = [] - for line in rawData: - l = string.strip(line) - if l: - styleData.append(l) - return styleData + execfile(fname.toOsSpecific()) def printParams(self, file = sys.stdout): """printParams(self, file)""" file.write('# Particles parameters\n') - file.write('import Particles\n') - file.write('p = Particles()\n') - file.write('p.setFactory(\"' + self.factoryType + '\")\n') - file.write('p.setRenderer(\"' + self.rendererType + '\")\n') - file.write('p.setEmitter(\"' + self.emitterType + '\")\n') + file.write('self.setFactory(\"' + self.factoryType + '\")\n') + file.write('self.setRenderer(\"' + self.rendererType + '\")\n') + file.write('self.setEmitter(\"' + self.emitterType + '\")\n') file.write('# Factory parameters\n') - file.write('p.factory.setLifespanBase(%.4f)\n' % self.factory.getLifespanBase()) - file.write('p.factory.setLifespanSpread(%.4f)\n' % self.factory.getLifespanSpread()) - file.write('p.factory.setMassBase(%.4f)\n' % self.factory.getMassBase()) - file.write('p.factory.setMassSpread(%.4f)\n' % self.factory.getMassSpread()) - file.write('p.factory.setTerminalVelocityBase(%.4f)\n' % self.factory.getTerminalVelocityBase()) - file.write('p.factory.setTerminalVelocitySpread(%.4f)\n' % self.factory.getTerminalVelocitySpread()) + file.write('self.factory.setLifespanBase(%.4f)\n' % self.factory.getLifespanBase()) + file.write('self.factory.setLifespanSpread(%.4f)\n' % self.factory.getLifespanSpread()) + file.write('self.factory.setMassBase(%.4f)\n' % self.factory.getMassBase()) + file.write('self.factory.setMassSpread(%.4f)\n' % self.factory.getMassSpread()) + file.write('self.factory.setTerminalVelocityBase(%.4f)\n' % self.factory.getTerminalVelocityBase()) + file.write('self.factory.setTerminalVelocitySpread(%.4f)\n' % self.factory.getTerminalVelocitySpread()) if (self.factoryType == "PointParticleFactory"): file.write('# Point factory parameters\n') elif (self.factoryType == "ZSpinParticleFactory"): file.write('# Z Spin factory parameters\n') - file.write('p.factory.setInitialAngle(%.4f)\n' % self.factory.getInitialAngle()) - file.write('p.factory.setFinalAngle(%.4f)\n' % self.factory.getFinalAngle()) - file.write('p.factory.setInitialAngleSpread(%.4f)\n' % self.factory.getInitialAngleSpread()) - file.write('p.factory.setFinalAngleSpread(%.4f)\n' % self.factory.getFinalAngleSpread()) + file.write('self.factory.setInitialAngle(%.4f)\n' % self.factory.getInitialAngle()) + file.write('self.factory.setFinalAngle(%.4f)\n' % self.factory.getFinalAngle()) + file.write('self.factory.setInitialAngleSpread(%.4f)\n' % self.factory.getInitialAngleSpread()) + file.write('self.factory.setFinalAngleSpread(%.4f)\n' % self.factory.getFinalAngleSpread()) elif (self.factoryType == "OrientedParticleFactory"): file.write('# Oriented factory parameters\n') - file.write('p.factory.setInitialOrientation(%.4f)\n' % self.factory.getInitialOrientation()) - file.write('p.factory.setFinalOrientation(%.4f)\n' % self.factory.getFinalOrientation()) + file.write('self.factory.setInitialOrientation(%.4f)\n' % self.factory.getInitialOrientation()) + file.write('self.factory.setFinalOrientation(%.4f)\n' % self.factory.getFinalOrientation()) file.write('# Renderer parameters\n') alphaMode = self.renderer.getAlphaMode() - aMode = "PR_NOT_INITIALIZED_YET" + aMode = "PRALPHANONE" if (alphaMode == BaseParticleRenderer.BaseParticleRenderer.PRALPHANONE): - aMode = "PR_ALPHA_NONE" + aMode = "PRALPHANONE" elif (alphaMode == BaseParticleRenderer.BaseParticleRenderer.PRALPHAOUT): - aMode = "PR_ALPHA_OUT" + aMode = "PRALPHAOUT" elif (alphaMode == BaseParticleRenderer.BaseParticleRenderer.PRALPHAIN): - aMode = "PR_ALPHA_IN" + aMode = "PRALPHAIN" elif (alphaMode == BaseParticleRenderer.BaseParticleRenderer.PRALPHAUSER): - aMode = "PR_ALPHA_USER" - file.write('p.renderer.setAlphaMode(BaseParticleRenderer.BaseParticleRenderer.' + aMode + ')\n') - file.write('p.renderer.setUserAlpha(%.2f)\n' % self.renderer.getUserAlpha()) + aMode = "PRALPHAUSER" + file.write('self.renderer.setAlphaMode(BaseParticleRenderer.BaseParticleRenderer.' + aMode + ')\n') + file.write('self.renderer.setUserAlpha(%.2f)\n' % self.renderer.getUserAlpha()) if (self.rendererType == "Point"): file.write('# Point parameters\n') - file.write('p.renderer.setPointSize(%.2f)\n' % self.renderer.getPointSize()) + file.write('self.renderer.setPointSize(%.2f)\n' % self.renderer.getPointSize()) sColor = self.renderer.getStartColor() - file.write(('p.renderer.setStartColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write(('self.renderer.setStartColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) sColor = self.renderer.getEndColor() - file.write(('p.renderer.setEndColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write(('self.renderer.setEndColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) blendType = self.renderer.getBlendType() - bType = "unknown" + bType = "PPONECOLOR" if (blendType == PointParticleRenderer.PointParticleRenderer.PPONECOLOR): - bType = "PP_ONE_COLOR" + bType = "PPONECOLOR" elif (blendType == PointParticleRenderer.PointParticleRenderer.PPBLENDLIFE): - bType = "PP_BLEND_LIFE" + bType = "PPBLENDLIFE" elif (blendType == PointParticleRenderer.PointParticleRenderer.PPBLENDVEL): - bType = "PP_BLEND_VEL" - file.write('p.renderer.setBlendType(PointParticleRenderer.PointParticleRenderer.' + bType + ')\n') + bType = "PPBLENDVEL" + file.write('self.renderer.setBlendType(PointParticleRenderer.PointParticleRenderer.' + bType + ')\n') blendMethod = self.renderer.getBlendMethod() - bMethod = "PP_NO_BLEND" + bMethod = "PPNOBLEND" if (blendMethod == BaseParticleRenderer.BaseParticleRenderer.PPNOBLEND): - bMethod = "PP_NO_BLEND" + bMethod = "PPNOBLEND" elif (blendMethod == BaseParticleRenderer.BaseParticleRenderer.PPBLENDLINEAR): - bMethod = "PP_BLEND_LINEAR" + bMethod = "PPBLENDLINEAR" elif (blendMethod == BaseParticleRenderer.BaseParticleRenderer.PPBLENDCUBIC): - bMethod = "PP_BLEND_CUBIC" - file.write('p.renderer.setBlendMethod(BaseParticleRenderer.BaseParticleRenderer.' + bMethod + ')\n') + bMethod = "PPBLENDCUBIC" + file.write('self.renderer.setBlendMethod(BaseParticleRenderer.BaseParticleRenderer.' + bMethod + ')\n') elif (self.rendererType == "LineParticleRenderer"): file.write('# Line parameters\n') sColor = self.renderer.getHeadColor() - file.write(('p.renderer.setHeadColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write(('self.renderer.setHeadColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) sColor = self.renderer.getTailColor() - file.write(('p.renderer.setTailColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write(('self.renderer.setTailColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) elif (self.rendererType == "GeomParticleRenderer"): file.write('# Geom parameters\n') node = self.renderer.getGeomNode() - file.write('p.renderer.setGeomNode(' + node.getName() + ')\n') + file.write('self.renderer.setGeomNode(' + node.getName() + ')\n') elif (self.rendererType == "SparkleParticleRenderer"): file.write('# Sparkle parameters\n') sColor = self.renderer.getCenterColor() - file.write(('p.renderer.setCenterColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write(('self.renderer.setCenterColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) sColor = self.renderer.getEdgeColor() - file.write(('p.renderer.setEdgeColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) - file.write('p.renderer.setBirthRadius(%.4f)\n' % self.renderer.getBirthRadius()) - file.write('p.renderer.setDeathRadius(%.4f)\n' % self.renderer.getDeathRadius()) + file.write(('self.renderer.setEdgeColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write('self.renderer.setBirthRadius(%.4f)\n' % self.renderer.getBirthRadius()) + file.write('self.renderer.setDeathRadius(%.4f)\n' % self.renderer.getDeathRadius()) lifeScale = self.renderer.getLifeScale() - lScale = "SP_NO_SCALE" + lScale = "SPNOSCALE" if (lifeScale == SparkleParticleRenderer.SparkleParticleRenderer.SPSCALE): - lScale = "SP_SCALE" - file.write('p.renderer.setLifeScale(SparkleParticleRenderer.SparkleParticleRenderer.' + lScale + ')\n') + lScale = "SPSCALE" + file.write('self.renderer.setLifeScale(SparkleParticleRenderer.SparkleParticleRenderer.' + lScale + ')\n') elif (self.rendererType == "SpriteParticleRenderer"): file.write('# Sprite parameters\n') tex = self.renderer.getTexture() - file.write('p.renderer.setTexture(loader.loadTexture(\'' + tex.getName() + '\'))\n') + file.write('self.renderer.setTexture(loader.loadTexture(\'' + tex.getName() + '\'))\n') sColor = self.renderer.getColor() - file.write(('p.renderer.setColor(Colorf(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) - file.write('p.renderer.setXScaleFlag(%d)\n' % self.renderer.getXScaleFlag()) - file.write('p.renderer.setYScaleFlag(%d)\n' % self.renderer.getYScaleFlag()) - file.write('p.renderer.setAnimAngleFlag(%d)\n' % self.renderer.getAnimAngleFlag()) - file.write('p.renderer.setInitialXScale(%.4f)\n' % self.renderer.getInitialXScale()) - file.write('p.renderer.setFinalXScale(%.4f)\n' % self.renderer.getFinalXScale()) - file.write('p.renderer.setInitialYScale(%.4f)\n' % self.renderer.getInitialYScale()) - file.write('p.renderer.setFinalYScale(%.4f)\n' % self.renderer.getFinalYScale()) - file.write('p.renderer.setNonanimatedTheta(%.4f)\n' % self.renderer.getNonanimatedTheta()) + file.write(('self.renderer.setColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) + file.write('self.renderer.setXScaleFlag(%d)\n' % self.renderer.getXScaleFlag()) + file.write('self.renderer.setYScaleFlag(%d)\n' % self.renderer.getYScaleFlag()) + file.write('self.renderer.setAnimAngleFlag(%d)\n' % self.renderer.getAnimAngleFlag()) + file.write('self.renderer.setInitialXScale(%.4f)\n' % self.renderer.getInitialXScale()) + file.write('self.renderer.setFinalXScale(%.4f)\n' % self.renderer.getFinalXScale()) + file.write('self.renderer.setInitialYScale(%.4f)\n' % self.renderer.getInitialYScale()) + file.write('self.renderer.setFinalYScale(%.4f)\n' % self.renderer.getFinalYScale()) + file.write('self.renderer.setNonanimatedTheta(%.4f)\n' % self.renderer.getNonanimatedTheta()) blendMethod = self.renderer.getAlphaBlendMethod() - bMethod = "PP_NO_BLEND" + bMethod = "PPNOBLEND" if (blendMethod == BaseParticleRenderer.BaseParticleRenderer.PPNOBLEND): - bMethod = "PP_NO_BLEND" + bMethod = "PPNOBLEND" elif (blendMethod == BaseParticleRenderer.BaseParticleRenderer.PPBLENDLINEAR): - bMethod = "PP_BLEND_LINEAR" + bMethod = "PPBLENDLINEAR" elif (blendMethod == BaseParticleRenderer.BaseParticleRenderer.PPBLENDCUBIC): - bMethod = "PP_BLEND_CUBIC" - file.write('p.renderer.setAlphaBlendMethod(BaseParticleRenderer.BaseParticleRenderer.' + bMethod + ')\n') - file.write('p.renderer.setAlphaDisable(%d)\n' % self.renderer.getAlphaDisable()) + bMethod = "PPBLENDCUBIC" + file.write('self.renderer.setAlphaBlendMethod(BaseParticleRenderer.BaseParticleRenderer.' + bMethod + ')\n') + file.write('self.renderer.setAlphaDisable(%d)\n' % self.renderer.getAlphaDisable()) file.write('# Emitter parameters\n') emissionType = self.emitter.getEmissionType() - eType = "unknown" + eType = "ETEXPLICIT" if (emissionType == BaseParticleEmitter.BaseParticleEmitter.ETEXPLICIT): - eType = "ET_EXPLICIT" + eType = "ETEXPLICIT" elif (emissionType == BaseParticleEmitter.BaseParticleEmitter.ETRADIATE): - eType = "ET_RADIATE" + eType = "ETRADIATE" elif (emissionType == BaseParticleEmitter.BaseParticleEmitter.ETCUSTOM): - eType = "ET_CUSTOM" - file.write('p.emitter.setEmissionType(BaseParticleEmitter.BaseParticleEmitter.' + eType + ')\n') - file.write('p.emitter.setAmplitude(%.4f)\n' % self.emitter.getAmplitude()) - file.write('p.emitter.setAmplitudeSpread(%.4f)\n' % self.emitter.getAmplitudeSpread()) + eType = "ETCUSTOM" + file.write('self.emitter.setEmissionType(BaseParticleEmitter.BaseParticleEmitter.' + eType + ')\n') + file.write('self.emitter.setAmplitude(%.4f)\n' % self.emitter.getAmplitude()) + file.write('self.emitter.setAmplitudeSpread(%.4f)\n' % self.emitter.getAmplitudeSpread()) oForce = self.emitter.getOffsetForce() - file.write(('p.emitter.setOffsetForce(Vec3(%.4f, %.4f, %.4f))\n' % (oForce[0], oForce[1], oForce[2]))) + file.write(('self.emitter.setOffsetForce(Vec3(%.4f, %.4f, %.4f))\n' % (oForce[0], oForce[1], oForce[2]))) oForce = self.emitter.getExplicitLaunchVector() - file.write(('p.emitter.setExplicitLaunchVector(Vec3(%.4f, %.4f, %.4f))\n' % (oForce[0], oForce[1], oForce[2]))) + file.write(('self.emitter.setExplicitLaunchVector(Vec3(%.4f, %.4f, %.4f))\n' % (oForce[0], oForce[1], oForce[2]))) orig = self.emitter.getRadiateOrigin() - file.write(('p.emitter.setRadiateOrigin(Point3(%.4f, %.4f, %.4f))\n' % (orig[0], orig[1], orig[2]))) + file.write(('self.emitter.setRadiateOrigin(Point3(%.4f, %.4f, %.4f))\n' % (orig[0], orig[1], orig[2]))) if (self.emitterType == "BoxEmitter"): file.write('# Box parameters\n') bound = self.emitter.getMinBound() - file.write(('p.emitter.setMinBound(Point3(%.4f, %.4f, %.4f))\n' % (bound[0], bound[1], bound[2]))) + file.write(('self.emitter.setMinBound(Point3(%.4f, %.4f, %.4f))\n' % (bound[0], bound[1], bound[2]))) bound = self.emitter.getMaxBound() - file.write(('p.emitter.setMaxBound(Point3(%.4f, %.4f, %.4f))\n' % (bound[0], bound[1], bound[2]))) + file.write(('self.emitter.setMaxBound(Point3(%.4f, %.4f, %.4f))\n' % (bound[0], bound[1], bound[2]))) elif (self.emitterType == "DiscEmitter"): file.write('# Disc parameters\n') - file.write('p.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) - if (eType == "ET_CUSTOM"): - file.write('p.emitter.setOuterAngle(%.4f)\n' % self.emitter.getOuterAngle()) - file.write('p.emitter.setInnerAngle(%.4f)\n' % self.emitter.getInnerAngle()) - file.write('p.emitter.setOuterMagnitude(%.4f)\n' % self.emitter.getOuterMagnitude()) - file.write('p.emitter.setInnerMagnitude(%.4f)\n' % self.emitter.getInnerMagnitude()) - file.write('p.emitter.setCubicLerping(%d)\n' % self.emitter.getCubicLerping()) + file.write('self.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) + if (eType == "ETCUSTOM"): + file.write('self.emitter.setOuterAngle(%.4f)\n' % self.emitter.getOuterAngle()) + file.write('self.emitter.setInnerAngle(%.4f)\n' % self.emitter.getInnerAngle()) + file.write('self.emitter.setOuterMagnitude(%.4f)\n' % self.emitter.getOuterMagnitude()) + file.write('self.emitter.setInnerMagnitude(%.4f)\n' % self.emitter.getInnerMagnitude()) + file.write('self.emitter.setCubicLerping(%d)\n' % self.emitter.getCubicLerping()) elif (self.emitterType == "LineEmitter"): file.write('# Line parameters\n') point = self.emitter.getEndpoint1() - file.write(('p.emitter.setEndpoint1(Point3(%.4f, %.4f, %.4f))\n' % (point[0], point[1], point[2]))) + file.write(('self.emitter.setEndpoint1(Point3(%.4f, %.4f, %.4f))\n' % (point[0], point[1], point[2]))) point = self.emitter.getEndpoint2() - file.write(('p.emitter.setEndpoint2(Point3(%.4f, %.4f, %.4f))\n' % (point[0], point[1], point[2]))) + file.write(('self.emitter.setEndpoint2(Point3(%.4f, %.4f, %.4f))\n' % (point[0], point[1], point[2]))) elif (self.emitterType == "PointEmitter"): file.write('# Point parameters\n') point = self.emitter.getLocation() - file.write(('p.emitter.setLocation(Point3(%.4f, %.4f, %.4f))\n' % (point[0], point[1], point[2]))) + file.write(('self.emitter.setLocation(Point3(%.4f, %.4f, %.4f))\n' % (point[0], point[1], point[2]))) elif (self.emitterType == "RectangleEmitter"): file.write('# Rectangle parameters\n') bound = self.emitter.getMinBound() - file.write(('p.emitter.setMinBound(Point2(%.4f, %.4f))\n' % (point[0], point[1]))) + file.write(('self.emitter.setMinBound(Point2(%.4f, %.4f))\n' % (point[0], point[1]))) bound = self.emitter.getMaxBound() - file.write(('p.emitter.setMaxBound(Point2(%.4f, %.4f))\n' % (point[0], point[1]))) + file.write(('self.emitter.setMaxBound(Point2(%.4f, %.4f))\n' % (point[0], point[1]))) elif (self.emitterType == "RingEmitter"): file.write('# Ring parameters\n') - file.write('p.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) - if (eType == "ET_CUSTOM"): - file.write('p.emitter.setAngle(%.4f)\n' % self.emitter.getAngle()) + file.write('self.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) + if (eType == "ETCUSTOM"): + file.write('self.emitter.setAngle(%.4f)\n' % self.emitter.getAngle()) elif (self.emitterType == "SphereSurfaceEmitter"): file.write('# Sphere Surface parameters\n') - file.write('p.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) + file.write('self.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) elif (self.emitterType == "SphereVolumeEmitter"): file.write('# Sphere Volume parameters\n') - file.write('p.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) + file.write('self.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) elif (self.emitterType == "TangentRingEmitter"): file.write('# Tangent Ring parameters\n') - file.write('p.emitter.setRadius(%.4f)\n' % self.emitter.getRadius()) + file.write('self.emitter.setRadius(%.4f)\n' % self.emitter.getRadius())