//------------------------------------------------------------------------- bool PUParticle3DJetAffectorTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node); PUParticle3DAffector* af = static_cast<PUParticle3DAffector*>(prop->parent->context); PUParticle3DJetAffector* affector = static_cast<PUParticle3DJetAffector*>(af); if (prop->name == token[TOKEN_ACCELERATION]) { // Property: acceleration if (passValidateProperty(compiler, prop, token[TOKEN_ACCELERATION], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setDynAcceleration(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_JET_ACCELERATION]) { // Property: jet_aff_accel (deprecated and replaced by 'acceleration') if (passValidateProperty(compiler, prop, token[TOKEN_JET_ACCELERATION], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setDynAcceleration(dynamicAttributeFixed); return true; } } } return false; }
//------------------------------------------------------------------------- bool PUParticle3DTextureRotatorTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node); PUParticle3DAffector* af = static_cast<PUParticle3DAffector*>(prop->parent->context); PUParticle3DTextureRotator* affector = static_cast<PUParticle3DTextureRotator*>(af); if (prop->name == token[TOKEN_USE_OWN_ROTATION]) { // Property: use_own_rotation if (passValidateProperty(compiler, prop, token[TOKEN_USE_OWN_ROTATION], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { affector->setUseOwnRotationSpeed(val); return true; } } } else if (prop->name == token[TOKEN_TEXROT_USE_OWN_ROTATION]) { // Property: tex_rot_use_own_rotation (deprecated and replaced by 'use_own_rotation') if (passValidateProperty(compiler, prop, token[TOKEN_TEXROT_USE_OWN_ROTATION], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { affector->setUseOwnRotationSpeed(val); return true; } } } else if (prop->name == token[TOKEN_ROTATION_SPEED]) { // Property: rotation_speed if (passValidateProperty(compiler, prop, token[TOKEN_ROTATION_SPEED], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setRotationSpeed(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_TEXROT_ROTATION_SPEED]) { // Property: tex_rot_speed (deprecated and replaced by 'rotation_speed') if (passValidateProperty(compiler, prop, token[TOKEN_TEXROT_ROTATION_SPEED], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setRotationSpeed(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_ROTATION]) { // Property: rotation if (passValidateProperty(compiler, prop, token[TOKEN_ROTATION], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setRotation(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_TEXROT_ROTATION]) { // Property: tex_rot_rotation (deprecated and replaced by 'rotation') if (passValidateProperty(compiler, prop, token[TOKEN_TEXROT_ROTATION], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setRotation(dynamicAttributeFixed); return true; } } } return false; }
//------------------------------------------------------------------------- bool PUParticle3DVortexAffectorTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node); PUParticle3DAffector* af = static_cast<PUParticle3DAffector*>(prop->parent->context); PUParticle3DVortexAffector* affector = static_cast<PUParticle3DVortexAffector*>(af); if (prop->name == token[TOKEN_ROTATION_AXIS]) { // Property: rotation_axis if (passValidateProperty(compiler, prop, token[TOKEN_ROTATION_AXIS], VAL_VECTOR3)) { Vec3 val; if(getVector3(prop->values.begin(), prop->values.end(), &val)) { affector->setRotationVector(val); return true; } } } else if (prop->name == token[TOKEN_VORTEX_ROTATION_VECTOR]) { // Property: vortex_aff_vector (deprecated and replaced by 'rotation_axis') if (passValidateProperty(compiler, prop, token[TOKEN_VORTEX_ROTATION_VECTOR], VAL_VECTOR3)) { Vec3 val; if(getVector3(prop->values.begin(), prop->values.end(), &val)) { affector->setRotationVector(val); return true; } } } else if (prop->name == token[TOKEN_ROTATION_SPEED]) { // Property: rotation_speed if (passValidateProperty(compiler, prop, token[TOKEN_ROTATION_SPEED], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setRotationSpeed(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_VORTEX_ROTATION_SPEED]) { // Property: vortex_aff_speed (deprecated and replaced by 'rotation_speed') if (passValidateProperty(compiler, prop, token[TOKEN_VORTEX_ROTATION_SPEED], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setRotationSpeed(dynamicAttributeFixed); return true; } } } return false; }
//------------------------------------------------------------------------- bool PUScaleAffectorTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node); PUAffector* af = static_cast<PUAffector*>(prop->parent->context); PUScaleAffector* affector = static_cast<PUScaleAffector*>(af); if (prop->name == token[TOKEN_SCALE_XYZ_SCALE]) { // Property: xyz_scale if (passValidateProperty(compiler, prop, token[TOKEN_SCALE_XYZ_SCALE], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setDynScaleXYZ(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_SCALE_X_SCALE]) { // Property: x_scale if (passValidateProperty(compiler, prop, token[TOKEN_SCALE_X_SCALE], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setDynScaleX(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_SCALE_Y_SCALE]) { // Property: y_scale if (passValidateProperty(compiler, prop, token[TOKEN_SCALE_Y_SCALE], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setDynScaleY(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_SCALE_Z_SCALE]) { // Property: z_scale if (passValidateProperty(compiler, prop, token[TOKEN_SCALE_Z_SCALE], VAL_REAL)) { float val = 0.0f; if(getFloat(*prop->values.front(), &val)) { PUDynamicAttributeFixed* dynamicAttributeFixed = new (std::nothrow) PUDynamicAttributeFixed(); dynamicAttributeFixed->setValue(val); affector->setDynScaleZ(dynamicAttributeFixed); return true; } } } else if (prop->name == token[TOKEN_SINCE_START_SYSTEM]) { // Property: since_start_system if (passValidateProperty(compiler, prop, token[TOKEN_SINCE_START_SYSTEM], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { affector->setSinceStartSystem(val); return true; } } } return false; }