void PUDoPlacementParticleEventHandler::copyAttributesTo( PUEventHandler* eventHandler ) { PUEventHandler::copyAttributesTo(eventHandler); PUDoPlacementParticleEventHandler* doPlacementParticleEventHandler = static_cast<PUDoPlacementParticleEventHandler*>(eventHandler); doPlacementParticleEventHandler->setForceEmitterName(_forceEmitterName); doPlacementParticleEventHandler->setNumberOfParticles(_numberOfParticles); doPlacementParticleEventHandler->_alwaysUsePosition = _alwaysUsePosition; doPlacementParticleEventHandler->_inheritPosition = _inheritPosition; doPlacementParticleEventHandler->_inheritDirection = _inheritDirection; doPlacementParticleEventHandler->_inheritOrientation = _inheritOrientation; doPlacementParticleEventHandler->_inheritTimeToLive = _inheritTimeToLive; doPlacementParticleEventHandler->_inheritMass = _inheritMass; doPlacementParticleEventHandler->_inheritTextureCoordinate = _inheritTextureCoordinate; doPlacementParticleEventHandler->_inheritColour = _inheritColour; doPlacementParticleEventHandler->_inheritParticleWidth = _inheritParticleWidth; doPlacementParticleEventHandler->_inheritParticleHeight = _inheritParticleHeight; doPlacementParticleEventHandler->_inheritParticleDepth = _inheritParticleDepth; }
//------------------------------------------------------------------------- bool PUDoPlacementParticleEventHandlerTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node); PUEventHandler* evt = static_cast<PUEventHandler *>(prop->parent->context); PUDoPlacementParticleEventHandler* handler = static_cast<PUDoPlacementParticleEventHandler*>(evt); if (prop->name == token[TOKEN_DOPLACE_FORCE_EMITTER]) { // Property: force_emitter if (passValidateProperty(compiler, prop, token[TOKEN_DOPLACE_FORCE_EMITTER], VAL_STRING)) { std::string val; if(getString(*prop->values.front(), &val)) { handler->setForceEmitterName(val); return true; } } } else if (prop->name == token[TOKEN_DOPLACE_NUMBER_OF_PARTICLES]) { // Property: number_of_particles if (passValidateProperty(compiler, prop, token[TOKEN_DOPLACE_NUMBER_OF_PARTICLES], VAL_UINT)) { unsigned int val = 0; if(getUInt(*prop->values.front(), &val)) { handler->setNumberOfParticles(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_POSITION]) { // Property: inherit_position if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_POSITION], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritPosition(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_DIRECTION]) { // Property: inherit_direction if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_DIRECTION], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritDirection(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_ORIENTATION]) { // Property: inherit_orientation if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_ORIENTATION], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritOrientation(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_TIME_TO_LIVE]) { // Property: inherit_time_to_live if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_TIME_TO_LIVE], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritTimeToLive(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_MASS]) { // Property: inherit_mass if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_MASS], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritMass(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_TEXTURE_COORDINATE]) { // Property: inherit_texture_coord if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_TEXTURE_COORDINATE], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritTextureCoordinate(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_COLOUR]) { // Property: inherit_colour if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_COLOUR], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritColour(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_WIDTH]) { // Property: inherit_width if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_WIDTH], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritParticleWidth(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_HEIGHT]) { // Property: inherit_height if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_HEIGHT], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritParticleHeight(val); return true; } } } else if (prop->name == token[TOKEN_INHERIT_DEPTH]) { // Property: inherit_depth if (passValidateProperty(compiler, prop, token[TOKEN_INHERIT_DEPTH], VAL_BOOL)) { bool val; if(getBoolean(*prop->values.front(), &val)) { handler->setInheritParticleDepth(val); return true; } } } return false; }