13 #include <vrvUtil/DtVirtualBaseClass.h>
14 #include <vrvCore/DtSelectionManager.h>
15 #include <vrvCore/DtElementAttributes.h>
16 #include <vrvCore/DtEntityState.h>
17 #include <vrvCore/DtStateView.h>
18 #include <vrvUtil/DtSignalConnectionManager.h>
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>
34 #include <vrvUtil/extendedTypeEncoding.h>
42 class DtTacticalGraphicOverlay;
51 class DtVrfObjectFacadeInterface;
52 class DtEnvironmentalFacadeCollection;
53 class DtEntityFacadeCollection;
54 struct DtVrlinkSimulatedEnvironmentProcess;
75 virtual bool isCreating()
const;
78 virtual void tacticalGraphicsVertexSelected(
79 const makVrv::DtUniqueID& selected,
const makVrv::DtUniqueID& parentElementID);
82 virtual void tacticalGraphicsVertexDeselected(
83 const makVrv::DtUniqueID& deselected,
const makVrv::DtUniqueID& parent);
86 virtual void slot_onCurrentSelectionChanged(
87 const makVrv::DtSelectionManager::IdSet& selected,
88 const makVrv::DtSelectionManager::IdSet& deselected);
102 const std::vector<DtVector>& localPoints,
105 int modelSet = -1,
bool keepName =
false);
119 const std::string& layer =
"",
int modelSet = -1,
bool keepName =
false);
122 virtual const makVrv::DtTacticalGraphicOverlay* createOnLayer(
const std::string& layerName =
"");
125 virtual void completeStateUpdate(makVrv::DtUniqueID
id);
128 virtual void setVisible(makVrv::DtUniqueID
id,
bool hide);
131 virtual bool isLocal(makVrv::DtUniqueID
id)
const;
133 virtual void updateState(makVrv::DtUniqueID
id);
137 virtual void setEditable(makVrv::DtUniqueID
id,
bool);
141 virtual bool isEditable(makVrv::DtUniqueID
id)
const;
144 virtual bool isMemberOfLayer(makVrv::DtUniqueID
id,
const std::string& layername)
const;
147 virtual void deleteLocal(makVrv::DtUniqueID
id);
150 virtual void deleteAll();
153 virtual void deleteAllFromLayer(
const std::string& layername);
159 virtual void update(makVrv::DtElementID
id,
const std::string* name = 0,
const std::vector<DtVector>& points = std::vector<DtVector>(),
160 int* force = 0,
const std::string* overlay = 0,
const std::string* userData = 0,
double* newHeading = 0,
int* color = 0,
int* appearance = 0,
161 const std::string* label = 0,
bool forceUpdate =
true);
164 virtual DtVector getVertexPosition(makVrv::DtElementID parent, makVrv::DtUniqueID vertexId)
const;
168 virtual void create(
const DtEntityType& t,
int force);
171 virtual bool allSelectionIsLocal()
const;
174 virtual void setCanCreateLocalObjects(
bool);
177 virtual bool canCreateLocalObjects()
const;
180 virtual void save(
const std::string&);
183 virtual bool load(
const std::string&,
bool removeAll =
true);
186 virtual int numberOfLocalObjects()
const;
190 virtual void slot_elementAttributeChangeRequested(
191 makVrv::DtUniqueID
id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
193 virtual void handleElementAttributeChanged(
194 makVrv::DtUniqueID
id,
const makVrv::DtElementAttribute* attr);
197 virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
200 virtual void completeStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
bool forceIfHidden =
false);
207 virtual void finalizeObjectCreation(
const DtEntityType&, std::string name,
int,
const std::vector<DtVector>&,
double,
bool,
bool);
208 virtual void slot_stoppedObjectCreation();
210 virtual std::string generateUniqueName(
const std::string& base,
bool addNumberToBegin =
false)
const;
231 friend class boost::serialization::access;
236 template<
class Archive>
237 void serialize(Archive & ar,
const unsigned int version)
239 if (Archive::is_loading::value)
241 read(*(boost::archive::xml_iarchive*)&ar);
245 write(*(boost::archive::xml_oarchive*)&ar);
249 virtual void write(boost::archive::xml_oarchive& out);
250 virtual void read(boost::archive::xml_iarchive& in);
258 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
262 typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*>
LocalStateData;
284 friend class boost::serialization::access;
289 template<
class Archive>
290 void serialize(Archive & ar,
const unsigned int version)
292 double x = myRep[0], y = myRep[1], z = myRep[2];
294 ar & BOOST_SERIALIZATION_NVP(x);
295 ar & BOOST_SERIALIZATION_NVP(y);
296 ar & BOOST_SERIALIZATION_NVP(z);
298 if (Archive::is_loading::value)
326 friend class boost::serialization::access;
331 template<
class Archive>
332 void serialize(Archive & ar,
const unsigned int version)
334 ar & BOOST_SERIALIZATION_NVP(myPsi);
335 ar & BOOST_SERIALIZATION_NVP(myTheta);
336 ar & BOOST_SERIALIZATION_NVP(myPhi);
338 if (Archive::is_loading::value && mySource)
348 template <
typename _Type,
typename _SrcType>
358 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
359 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
361 while (srcIter != src.end())
375 template<
class Archive>
376 void serialize(Archive & ar,
const unsigned int version)
378 ar & BOOST_SERIALIZATION_NVP(
myValues);
380 if (Archive::is_loading::value &&
mySource)
385 typename std::vector<_Type>::const_iterator src =
myValues.begin();
386 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
412 friend class boost::serialization::access;
417 template<
class Archive>
418 void serialize(Archive & ar,
const unsigned int version)
420 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
421 ar & BOOST_SERIALIZATION_NVP(myEntityId);
422 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
423 ar & BOOST_SERIALIZATION_NVP(myEntityType);
424 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
425 ar & BOOST_SERIALIZATION_NVP(myForce);
434 ar & BOOST_SERIALIZATION_NVP(loc);
435 ar & BOOST_SERIALIZATION_NVP(vel);
436 ar & BOOST_SERIALIZATION_NVP(relVel);
437 ar & BOOST_SERIALIZATION_NVP(acc);
438 ar & BOOST_SERIALIZATION_NVP(ori);
439 ar & BOOST_SERIALIZATION_NVP(rotVel);
441 ar & BOOST_SERIALIZATION_NVP(myAppearance);
442 ar & BOOST_SERIALIZATION_NVP(myCapabilities);
443 ar & BOOST_SERIALIZATION_NVP(myDIGuyAppearance);
444 ar & BOOST_SERIALIZATION_NVP(myDIGuyCharacter);
445 ar & BOOST_SERIALIZATION_NVP(myGuise);
446 ar & BOOST_SERIALIZATION_NVP(myDRAlgorithm);
460 friend class boost::serialization::access;
465 template<
class Archive>
466 void serialize(Archive & ar,
const unsigned int version)
468 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
469 ar & BOOST_SERIALIZATION_NVP(myEntityId);
470 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
471 ar & BOOST_SERIALIZATION_NVP(myEntityType);
472 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
473 ar & BOOST_SERIALIZATION_NVP(myForce);
477 ar & BOOST_SERIALIZATION_NVP(pts);
479 ar & BOOST_SERIALIZATION_NVP(myUserData);
480 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
481 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
482 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
483 ar & BOOST_SERIALIZATION_NVP(myColor);
484 ar & BOOST_SERIALIZATION_NVP(myLabel);
485 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
486 ar & BOOST_SERIALIZATION_NVP(myProjected);
487 ar & BOOST_SERIALIZATION_NVP(myAttributes);
488 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);