29 #include "mtl/envXMLWriter.h"
41 #include <boost/function.hpp>
75 if (!rwBVol->isOffset())
79 else if (rwBVol->latticeOffset().x() == 0.0
80 && rwBVol->latticeOffset().y() == 0.0
81 &&
DtALMOST(rwBVol->latticeOffset().z(), -rwBVol->halfHeight(), 0.001))
112 DtListItem* item = rwList->first();
113 for ( ; item; item = item->next())
117 DtEnvValueSP childObject = env->addObject(xmlType.c_str(), envValue);
118 getConverter().convert(env, rwChildObject, childObject);
142 sprintf(app,
"%#8X", embSlot->
appearance().appearance());
148 getConverter().convert(env, &vector, embarkedPosition);
154 embHeading->setValue(DtRad2Deg(embSlot->
orientation().psi()));
172 DtListItem* item = loadPoint->
points().first();
173 for ( ; item; item = item->next())
176 getConverter().convert(env, static_cast<DtRwVector*>(item->data()), point);
184 env->addAttribute(
vrfXml::Yaw, taitBryan->psi(), envValue);
185 env->addAttribute(
vrfXml::Pitch, taitBryan->theta(), envValue);
186 env->addAttribute(
vrfXml::Roll, taitBryan->phi(), envValue);
206 DtRwListToEnvValue(env, rwObject, envValue);
223 envValue->setValue(entityType->string());
237 DtWarn <<
"Unknown bounding geometry type " << bgType->
value() << std::endl;
256 typedef boost::function<void (DtEnvironmentSP, const DtReaderWriter*, const DtEnvValueSP)>
ConversionFunction;
265 registerConverter(
DtRwIntType, &DtBasicTypeToEnvValue);
266 registerConverter(
DtRwRealType, &DtBasicTypeToEnvValue);
294 DtWarn <<
"DtXmlRWFactory::convert null rw object" << std::endl;
299 DtWarn <<
"DtXmlRWFactory::convert null env value" << std::endl;
303 if (myXmlConverters.find(rwObject->
readerWriterType()) != myXmlConverters.end())
309 DtWarn <<
"DtXmlRWFactory: No Converter for type " << rwObject->
readerWriterType() << std::endl;
315 myXmlConverters[type] = conversionFunction;