|
@@ -87,3 +87,40 @@ class ForceGroup(DirectObject):
|
|
|
l.append(self.node.getForce(i))
|
|
l.append(self.node.getForce(i))
|
|
|
return l
|
|
return l
|
|
|
|
|
|
|
|
|
|
+ def printParams(self, file = sys.stdout, targ = 'self'):
|
|
|
|
|
+ """printParams(file, targ)"""
|
|
|
|
|
+ file.write('# Force parameters\n')
|
|
|
|
|
+ for i in range(self.node.getNumForces()):
|
|
|
|
|
+ f = self.node.getForce(i)
|
|
|
|
|
+ fname = 'force%d' % i
|
|
|
|
|
+ if isinstance(f, LinearForce):
|
|
|
|
|
+ amplitude = f.getAmplitude()
|
|
|
|
|
+ massDependent = f.getMassDependent()
|
|
|
|
|
+ if isinstance(f, LinearCylinderVortexForce):
|
|
|
|
|
+ file.write(fname + ' = LinearCylinderVortexForce(%.4f, %.4f, %.4f, %.4f, %d)\n' % (f.getRadius(), f.getLength(), f.getCoef(), amplitude, massDependent))
|
|
|
|
|
+ elif isinstance(f, LinearDistanceForce):
|
|
|
|
|
+ radius = f.getRadius()
|
|
|
|
|
+ falloffType = f.getFalloffType()
|
|
|
|
|
+ ftype = 'FTONEOVERR'
|
|
|
|
|
+ if (falloffType == LinearDistanceForce.LinearDistanceForce.FTONEOVERR):
|
|
|
|
|
+ ftype = 'FTONEOVERR'
|
|
|
|
|
+ elif (falloffType == LinearDistanceForce.LinearDistanceForce.FTONEOVERRSQUARED):
|
|
|
|
|
+ ftype = 'FTONEOVERRSQUARED'
|
|
|
|
|
+ elif (falloffType == LinearDistanceForce.LinearDistanceForce.FTONEOVERRCUBED):
|
|
|
|
|
+ ftype = 'FTONEOVERRCUBED'
|
|
|
|
|
+ forceCenter = f.getForceCenter()
|
|
|
|
|
+ if isinstance(f, LinearSinkForce):
|
|
|
|
|
+ file.write(fname + ' = LinearSinkForce(Vec3(%.4f, %.4f, %.4f), %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), %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):
|
|
|
|
|
+ file.write(fname + ' = LinearJitterForce(%.4f, %d)\n' % (amplitude, massDependent))
|
|
|
|
|
+ elif isinstance(f, LinearNoiseForce):
|
|
|
|
|
+ file.write(fname + ' = LinearNoiseForce(%.4f, %d)\n' % (amplitude, massDependent))
|
|
|
|
|
+ elif isinstance(f, LinearVectorForce):
|
|
|
|
|
+ vec = f.getVector()
|
|
|
|
|
+ file.write(fname + ' = LinearVectorForce(Vec3(%.4f, %.4f, %.4f), %.4f, %d)\n' % (vec[0], vec[1], vec[2], amplitude, massDependent))
|
|
|
|
|
+ file.write(fname + '.setActive(%d)\n' % f.getActive())
|
|
|
|
|
+ file.write(targ + '.addForce(%s)\n' % fname)
|