22 #include <vlutil/vlSmartPointers.h>
23 #include <boost/shared_ptr.hpp>
25 #include <boost/archive/xml_iarchive.hpp>
26 #include <boost/archive/xml_oarchive.hpp>
27 #include <boost/serialization/access.hpp>
28 #include <boost/serialization/nvp.hpp>
29 #include <boost/serialization/list.hpp>
30 #include <boost/serialization/map.hpp>
31 #include <boost/serialization/vector.hpp>
32 #include <boost/serialization/string.hpp>
42 class DtTacticalGraphicOverlay;
43 struct DtVrlinkSimulatedBaseState;
44 struct DtVrlinkSimulatedEntityState;
51 class DtVrfObjectFacadeInterface;
52 class DtEnvironmentalFacadeCollection;
53 class DtEntityFacadeCollection;
54 struct DtVrlinkSimulatedEnvironmentProcess;
74 virtual bool isCreating()
const;
77 virtual void tacticalGraphicsVertexSelected(
81 virtual void tacticalGraphicsVertexDeselected(
85 virtual void slot_onCurrentSelectionChanged(
101 const std::vector<DtVector>& localPoints,
104 int modelSet = -1,
bool keepName =
false);
118 const std::string& layer =
"",
int modelSet = -1,
bool keepName =
false);
143 virtual bool isMemberOfLayer(
makVrv::DtUniqueID id,
const std::string& layername)
const;
149 virtual void deleteAll();
152 virtual void deleteAllFromLayer(
const std::string& layername);
158 virtual void update(
makVrv::DtElementID id,
const std::string* name = 0,
const std::vector<DtVector>& points = std::vector<DtVector>(),
159 int* force = 0,
const std::string* overlay = 0,
const std::string* userData = 0,
double* newHeading = 0,
int* color = 0,
int* appearance = 0,
160 const std::string* label = 0);
167 virtual void create(
const DtEntityType& t,
int force);
170 virtual bool allSelectionIsLocal()
const;
173 virtual void setCanCreateLocalObjects(
bool);
176 virtual bool canCreateLocalObjects()
const;
179 virtual void save(
const std::string&);
182 virtual bool load(
const std::string&,
bool removeAll =
true);
185 virtual int numberOfLocalObjects()
const;
189 virtual void slot_elementAttributeChangeRequested(
192 virtual void handleElementAttributeChanged(
206 virtual void finalizeObjectCreation(
const DtEntityType&, std::string name,
int,
const std::vector<DtVector>&,
double,
bool,
bool);
207 virtual void slot_stoppedObjectCreation();
209 virtual std::string generateUniqueName(
const std::string& base,
bool addNumberToBegin =
false)
const;
230 friend class boost::serialization::access;
235 template<
class Archive>
236 void serialize(Archive & ar,
const unsigned int version)
238 if (Archive::is_loading::value)
240 read(*(boost::archive::xml_iarchive*)&ar);
244 write(*(boost::archive::xml_oarchive*)&ar);
248 virtual void write(boost::archive::xml_oarchive& out);
249 virtual void read(boost::archive::xml_iarchive& in);
257 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
261 typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*>
LocalStateData;
283 friend class boost::serialization::access;
288 template<
class Archive>
289 void serialize(Archive & ar,
const unsigned int version)
291 double x = myRep[0], y = myRep[1], z = myRep[2];
293 ar & BOOST_SERIALIZATION_NVP(x);
294 ar & BOOST_SERIALIZATION_NVP(y);
295 ar & BOOST_SERIALIZATION_NVP(z);
297 if (Archive::is_loading::value)
325 friend class boost::serialization::access;
330 template<
class Archive>
331 void serialize(Archive & ar,
const unsigned int version)
333 ar & BOOST_SERIALIZATION_NVP(myPsi);
334 ar & BOOST_SERIALIZATION_NVP(myTheta);
335 ar & BOOST_SERIALIZATION_NVP(myPhi);
337 if (Archive::is_loading::value && mySource)
347 template <
typename _Type,
typename _SrcType>
357 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
358 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
360 while (srcIter != src.end())
374 template<
class Archive>
375 void serialize(Archive & ar,
const unsigned int version)
377 ar & BOOST_SERIALIZATION_NVP(
myValues);
379 if (Archive::is_loading::value &&
mySource)
384 typename std::vector<_Type>::const_iterator src =
myValues.begin();
385 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
406 makVrv::DtVrlinkSimulatedEntityState(orig)
411 friend class boost::serialization::access;
416 template<
class Archive>
417 void serialize(Archive & ar,
const unsigned int version)
419 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
420 ar & BOOST_SERIALIZATION_NVP(myEntityId);
421 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
422 ar & BOOST_SERIALIZATION_NVP(myEntityType);
423 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
424 ar & BOOST_SERIALIZATION_NVP(myForce);
433 ar & BOOST_SERIALIZATION_NVP(loc);
434 ar & BOOST_SERIALIZATION_NVP(vel);
435 ar & BOOST_SERIALIZATION_NVP(relVel);
436 ar & BOOST_SERIALIZATION_NVP(acc);
437 ar & BOOST_SERIALIZATION_NVP(ori);
438 ar & BOOST_SERIALIZATION_NVP(rotVel);
440 ar & BOOST_SERIALIZATION_NVP(myAppearance);
441 ar & BOOST_SERIALIZATION_NVP(myCapabilities);
442 ar & BOOST_SERIALIZATION_NVP(myDIGuyAppearance);
443 ar & BOOST_SERIALIZATION_NVP(myDIGuyCharacter);
444 ar & BOOST_SERIALIZATION_NVP(myGuise);
445 ar & BOOST_SERIALIZATION_NVP(myDRAlgorithm);
459 friend class boost::serialization::access;
464 template<
class Archive>
465 void serialize(Archive & ar,
const unsigned int version)
467 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
468 ar & BOOST_SERIALIZATION_NVP(myEntityId);
469 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
470 ar & BOOST_SERIALIZATION_NVP(myEntityType);
471 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
472 ar & BOOST_SERIALIZATION_NVP(myForce);
476 ar & BOOST_SERIALIZATION_NVP(pts);
478 ar & BOOST_SERIALIZATION_NVP(myUserData);
479 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
480 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
481 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
482 ar & BOOST_SERIALIZATION_NVP(myColor);
483 ar & BOOST_SERIALIZATION_NVP(myLabel);
484 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
485 ar & BOOST_SERIALIZATION_NVP(myProjected);
486 ar & BOOST_SERIALIZATION_NVP(myAttributes);
487 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);