//----------------------------------------------------------------------- //----------------------------------------------------------------------- //----------------------------------------------------------------------- void VortexAffectorWriter::write(ParticleScriptSerializer* serializer, const IElement* element) { // Cast the element to a VortexAffector const VortexAffector* affector = static_cast<const VortexAffector*>(element); // Write the header of the VortexAffector serializer->writeLine(token[TOKEN_AFFECTOR], affector->getAffectorType(), affector->getName(), 8); serializer->writeLine("{", 8); // Write base attributes ParticleAffectorWriter::write(serializer, element); // Write own attributes if (affector->getRotationVector() != VortexAffector::DEFAULT_ROTATION_VECTOR) serializer->writeLine( token[TOKEN_ROTATION_AXIS], StringConverter::toString(affector->getRotationVector()), 12); DynamicAttributeFactory dynamicAttributeFactory; if (dynamicAttributeFactory._getDefaultValue(affector->getRotationSpeed()) != VortexAffector::DEFAULT_ROTATION_SPEED) { serializer->setKeyword(token[TOKEN_ROTATION_SPEED]); serializer->setIndentation(12); dynamicAttributeFactory.write(serializer, affector->getRotationSpeed()); } // Write the close bracket serializer->writeLine("}", 8); }
//----------------------------------------------------------------------- //----------------------------------------------------------------------- //----------------------------------------------------------------------- void VortexExternWriter::write(ParticleScriptSerializer* serializer, const IElement* element) { // Cast the element to a VortexExtern const Extern* externObject = static_cast<const Extern*>(element); const VortexExtern* vortexExtern = static_cast<const VortexExtern*>(externObject); serializer->writeLine(token[TOKEN_EXTERN], externObject->getExternType(), externObject->getName(), 8); serializer->writeLine("{", 8); // Write base attributes ExternWriter::write(serializer, element); AttachableWriter::write(serializer, element); // Write own attributes if (vortexExtern->getRotationVector() != VortexAffector::DEFAULT_ROTATION_VECTOR) serializer->writeLine( token[TOKEN_ROTATION_AXIS], StringConverter::toString(vortexExtern->getRotationVector()), 12); DynamicAttributeFactory dynamicAttributeFactory; if (dynamicAttributeFactory._getDefaultValue(vortexExtern->getRotationSpeed()) != VortexAffector::DEFAULT_ROTATION_SPEED) { serializer->setKeyword(token[TOKEN_ROTATION_SPEED]); serializer->setIndentation(12); dynamicAttributeFactory.write(serializer, vortexExtern->getRotationSpeed()); } // Write the close bracket serializer->writeLine("}", 8); }
//----------------------------------------------------------------------- //----------------------------------------------------------------------- //----------------------------------------------------------------------- void JetAffectorWriter::write(ParticleScriptSerializer* serializer, const IElement* element) { // Cast the element to a JetAffector const JetAffector* affector = static_cast<const JetAffector*>(element); // Write the header of the JetAffector serializer->writeLine(token[TOKEN_AFFECTOR], affector->getAffectorType(), affector->getName(), 8); serializer->writeLine("{", 8); // Write base attributes ParticleAffectorWriter::write(serializer, element); // Write own attributes DynamicAttributeFactory dynamicAttributeFactory; if (dynamicAttributeFactory._getDefaultValue(affector->getDynAcceleration()) != JetAffector::DEFAULT_ACCELERATION) { serializer->setKeyword(token[TOKEN_ACCELERATION]); serializer->setIndentation(12); dynamicAttributeFactory.write(serializer, affector->getDynAcceleration()); } // Write the close bracket serializer->writeLine("}", 8); }