bool PUParticle3DJetAffectorTranslator::translateChildObject( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUObjectAbstractNode* child = reinterpret_cast<PUObjectAbstractNode*>(node); PUParticle3DAffector* af = static_cast<PUParticle3DAffector*>(child->parent->context); PUParticle3DJetAffector* affector = static_cast<PUParticle3DJetAffector*>(af); PUParticle3DDynamicAttributeTranslator dynamicAttributeTranslator; if (child->cls == token[TOKEN_ACCELERATION]) { // Property: acceleration dynamicAttributeTranslator.translate(compiler, node); PUDynamicAttribute* dynamicAttribute = static_cast<PUDynamicAttribute*>(child->context); affector->setDynAcceleration(dynamicAttribute); return true; } else if (child->cls == token[TOKEN_JET_ACCELERATION]) { // Property: jet_aff_accel (deprecated and replaced by 'acceleration') dynamicAttributeTranslator.translate(compiler, node); PUDynamicAttribute* dynamicAttribute = static_cast<PUDynamicAttribute*>(child->context); affector->setDynAcceleration(dynamicAttribute); return true; } return false; }
bool PUParticle3DVortexAffectorTranslator::translateChildObject( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUObjectAbstractNode* child = reinterpret_cast<PUObjectAbstractNode*>(node); PUParticle3DAffector* af = static_cast<PUParticle3DAffector*>(child->parent->context); PUParticle3DVortexAffector* affector = static_cast<PUParticle3DVortexAffector*>(af); PUParticle3DDynamicAttributeTranslator dynamicAttributeTranslator; if (child->cls == token[TOKEN_ROTATION_SPEED]) { // Property: rotation_speed dynamicAttributeTranslator.translate(compiler, node); PUDynamicAttribute* dynamicAttribute = static_cast<PUDynamicAttribute*>(child->context); affector->setRotationSpeed(dynamicAttribute); return true; } else if (child->cls == token[TOKEN_VORTEX_ROTATION_SPEED]) { // Property: vortex_aff_speed (deprecated and replaced by 'rotation_speed') dynamicAttributeTranslator.translate(compiler, node); PUDynamicAttribute* dynamicAttribute = static_cast<PUDynamicAttribute*>(child->context); affector->setRotationSpeed(dynamicAttribute); return true; } return false; }