23 #include <vlutil/vlSmartPointers.h>
24 #include <boost/shared_ptr.hpp>
26 #include <boost/archive/xml_iarchive.hpp>
27 #include <boost/archive/xml_oarchive.hpp>
28 #include <boost/serialization/access.hpp>
29 #include <boost/serialization/nvp.hpp>
30 #include <boost/serialization/list.hpp>
31 #include <boost/serialization/map.hpp>
32 #include <boost/serialization/vector.hpp>
33 #include <boost/serialization/string.hpp>
43 class DtTacticalGraphicOverlay;
44 struct DtVrlinkSimulatedBaseState;
45 struct DtVrlinkSimulatedEntityState;
52 class DtVrfObjectFacadeInterface;
53 class DtEnvironmentalFacadeCollection;
54 class DtEntityFacadeCollection;
55 struct DtVrlinkSimulatedEnvironmentProcess;
76 virtual bool isCreating()
const;
79 virtual void tacticalGraphicsVertexSelected(
83 virtual void tacticalGraphicsVertexDeselected(
87 virtual void slot_onCurrentSelectionChanged(
103 const std::vector<DtVector>& localPoints,
106 int modelSet = -1,
bool keepName =
false);
120 int modelSet = -1,
bool keepName =
false);
145 virtual bool isMemberOfLayer(
makVrv::DtUniqueID id,
const std::string& layername)
const;
151 virtual void deleteAll();
154 virtual void deleteAllFromLayer(
const std::string& layername);
160 virtual void update(
makVrv::DtElementID id,
const std::string* name = 0,
const std::vector<DtVector>& points = std::vector<DtVector>(),
161 int* force = 0,
const std::string* overlay = 0,
const std::string* userData = 0,
162 const std::map<std::string, std::string>* extendedData = 0,
const std::map<int, DtString>* extendedLabels = 0,
163 double* newHeading = 0,
int* color = 0,
int* appearance = 0,
const std::string* label = 0,
bool forceUpdate =
true);
170 virtual void create(
const DtEntityType& t,
int force);
173 virtual bool allSelectionIsLocal()
const;
176 virtual void setCanCreateLocalObjects(
bool);
179 virtual bool canCreateLocalObjects()
const;
182 virtual void save(
const std::string&);
185 virtual bool load(
const std::string&,
bool removeAll =
true);
188 virtual int numberOfLocalObjects()
const;
193 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>())
const;
199 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>(),
200 bool useHighestLOD =
true,
bool ignoreDynamicOcean =
false,
bool useHighestPolygon =
true)
const;
204 virtual DtGeodeticCoord clampToGround(
const DtGeodeticCoord&,
205 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>(),
206 bool useHighestLOD =
true,
bool ignoreDynamicOcean =
false)
const;
210 virtual void slot_elementAttributeChangeRequested(
213 virtual void handleElementAttributeChanged(
228 virtual void slot_stoppedObjectCreation();
230 virtual std::string generateUniqueName(
const std::string& base,
bool addNumberToBegin =
false)
const;
251 friend class boost::serialization::access;
256 template<
class Archive>
257 void serialize(Archive & ar,
const unsigned int version)
259 if (Archive::is_loading::value)
261 read(*(boost::archive::xml_iarchive*)&ar);
265 write(*(boost::archive::xml_oarchive*)&ar);
269 virtual void write(boost::archive::xml_oarchive& out);
270 virtual void read(boost::archive::xml_iarchive& in);
278 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
282 typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*>
LocalStateData;
304 friend class boost::serialization::access;
309 template<
class Archive>
310 void serialize(Archive & ar,
const unsigned int version)
312 double x = myRep[0], y = myRep[1], z = myRep[2];
314 ar & BOOST_SERIALIZATION_NVP(x);
315 ar & BOOST_SERIALIZATION_NVP(y);
316 ar & BOOST_SERIALIZATION_NVP(z);
318 if (Archive::is_loading::value)
346 friend class boost::serialization::access;
351 template<
class Archive>
352 void serialize(Archive & ar,
const unsigned int version)
354 ar & BOOST_SERIALIZATION_NVP(myPsi);
355 ar & BOOST_SERIALIZATION_NVP(myTheta);
356 ar & BOOST_SERIALIZATION_NVP(myPhi);
358 if (Archive::is_loading::value && mySource)
368 template <
typename _Type,
typename _SrcType>
378 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
379 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
381 while (srcIter != src.end())
395 template<
class Archive>
396 void serialize(Archive & ar,
const unsigned int version)
398 ar & BOOST_SERIALIZATION_NVP(
myValues);
400 if (Archive::is_loading::value &&
mySource)
405 typename std::vector<_Type>::const_iterator src =
myValues.begin();
406 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
427 makVrv::DtVrlinkSimulatedEntityState(orig)
432 friend class boost::serialization::access;
437 template<
class Archive>
438 void serialize(Archive & ar,
const unsigned int version)
440 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
441 ar & BOOST_SERIALIZATION_NVP(myEntityId);
442 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
443 ar & BOOST_SERIALIZATION_NVP(myEntityType);
444 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
445 ar & BOOST_SERIALIZATION_NVP(myForce);
454 ar & BOOST_SERIALIZATION_NVP(loc);
455 ar & BOOST_SERIALIZATION_NVP(vel);
456 ar & BOOST_SERIALIZATION_NVP(relVel);
457 ar & BOOST_SERIALIZATION_NVP(acc);
458 ar & BOOST_SERIALIZATION_NVP(ori);
459 ar & BOOST_SERIALIZATION_NVP(rotVel);
461 ar & BOOST_SERIALIZATION_NVP(myAppearance);
462 ar & BOOST_SERIALIZATION_NVP(myCapabilities);
463 ar & BOOST_SERIALIZATION_NVP(myDIGuyAppearance);
464 ar & BOOST_SERIALIZATION_NVP(myDIGuyCharacterType);
465 ar & BOOST_SERIALIZATION_NVP(myGuise);
466 ar & BOOST_SERIALIZATION_NVP(myDRAlgorithm);
480 friend class boost::serialization::access;
485 template<
class Archive>
486 void serialize(Archive & ar,
const unsigned int version)
488 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
489 ar & BOOST_SERIALIZATION_NVP(myEntityId);
490 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
491 ar & BOOST_SERIALIZATION_NVP(myEntityType);
492 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
493 ar & BOOST_SERIALIZATION_NVP(myForce);
497 ar & BOOST_SERIALIZATION_NVP(pts);
499 ar & BOOST_SERIALIZATION_NVP(myUserData);
500 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
501 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
502 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
503 ar & BOOST_SERIALIZATION_NVP(myColor);
504 ar & BOOST_SERIALIZATION_NVP(myLabel);
505 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
506 ar & BOOST_SERIALIZATION_NVP(myProjected);
507 ar & BOOST_SERIALIZATION_NVP(myAttributes);
508 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);