24 #include <vlutil/vlSmartPointers.h>
25 #include <boost/shared_ptr.hpp>
27 #include <boost/archive/xml_iarchive.hpp>
28 #include <boost/archive/xml_oarchive.hpp>
29 #include <boost/serialization/access.hpp>
30 #include <boost/serialization/nvp.hpp>
31 #include <boost/serialization/list.hpp>
32 #include <boost/serialization/map.hpp>
33 #include <boost/serialization/vector.hpp>
34 #include <boost/serialization/string.hpp>
36 #include <matrix/vlVector.h>
43 class DtTacticalGraphicOverlay;
44 struct DtVrlinkSimulatedBaseState;
45 struct DtVrlinkSimulatedEntityState;
52 class DtVrfObjectFacadeInterface;
53 class DtEnvironmentalFacadeCollection;
54 class DtEntityFacadeCollection;
55 struct DtVrlinkSimulatedEnvironmentProcess;
84 virtual bool isCreating()
const;
87 virtual void tacticalGraphicsVertexSelected(
91 virtual void tacticalGraphicsVertexDeselected(
95 virtual void slot_onCurrentSelectionChanged(
103 virtual std::vector<makVrv::DtUniqueID> uniqueIdsForTypesThatMatch(
const DtEntityType&)
const;
121 const std::vector<DtVector>& localPoints,
124 int modelSet = -1,
bool keepName =
false,
int dictionaryToUse = -1);
131 int dictionaryToUse = -1);
143 int modelSet = -1,
bool keepName =
false,
int dictionaryToUse = -1);
168 virtual bool isEditable(
makVrv::DtUniqueID id,
const std::string& keywords =
"")
const;
171 virtual bool isMemberOfLayer(
makVrv::DtUniqueID id,
const std::string& layername)
const;
177 virtual void deleteAll(std::vector<DtEntityType> except = std::vector<DtEntityType>());
180 virtual void deleteAllFromLayer(
const std::string& layername);
189 name(0), force(0), overlay(0), userData(0), extendedData(0), extendedLabels(0), newHeading(0), newPitch(0),
190 color(0), appearance(0), label(0), physicalLineHeight(0), physicalLineWidth(0)
192 isGeocentric =
false;
196 name(&omd.objectName), force(&omd.force), overlay(&omd.overlay), userData(&omd.userData),
197 extendedData(&omd.extendedData), extendedLabels(&omd.extendedLabels), newHeading(&omd.heading),
198 newPitch(&omd.pitch), color(0), appearance(0), label(0), physicalLineHeight(0), physicalLineWidth(0)
200 isGeocentric =
false;
203 const std::string* name;
227 virtual void create(
const DtEntityType& t,
int force);
230 virtual bool allSelectionIsLocal()
const;
233 virtual void setCanCreateLocalObjects(
bool);
236 virtual bool canCreateLocalObjects()
const;
239 virtual void save(
const std::string&);
242 virtual std::string toStringBuffer();
245 virtual bool fromStringBuffer(
const std::string&,
bool removeAll =
true);
248 virtual bool load(
const std::string&,
bool removeAll =
true);
251 virtual int numberOfLocalObjects()
const;
257 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>(),
makVrv::DtUniqueID* hitId = 0)
const;
264 bool useHighestLOD =
false,
bool ignoreDynamicOcean =
false,
ClampFlag useHighestPolygon = Closest,
271 bool useHighestLOD =
false,
bool ignoreDynamicOcean =
false,
ClampFlag useHighestPolygon = Closest,
makVrv::DtUniqueID* hitId = 0)
const;
273 virtual std::string generateUniqueName(
const std::string& base,
bool addNumberToBegin =
false)
const;
276 virtual void ignoreFromArchive(
const DtEntityType&);
277 virtual void removeIgnoreFromArchive(
const DtEntityType&);
281 virtual void slot_objectVisibilityChanged(
makVrv::DtUniqueID id,
bool isShown,
int context );
295 virtual void slot_stoppedObjectCreation();
301 virtual void clearingTerrain();
311 boost::signals2::signal<void (DtVrfObjectFacadeInterface*, makVrv::DtVrlinkSimulatedBaseState*)>
signal_objectCreated;
329 friend class boost::serialization::access;
334 template<
class Archive>
335 void serialize(Archive & ar,
const unsigned int version)
337 if (Archive::is_loading::value)
339 read(*(boost::archive::xml_iarchive*)&ar);
343 write(*(boost::archive::xml_oarchive*)&ar);
347 virtual void write(boost::archive::xml_oarchive& out);
348 virtual void read(boost::archive::xml_iarchive& in);
356 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
360 typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*>
LocalStateData;
370 : myProps(makVrv::DtIntersector::IntersectProperties(0))
371 , myUseHighestLOD(false)
372 , myIgnoreDynamicOcean(false)
373 , myUseHighestPolygon(Closest)
379 bool useHighestLOD,
bool ignoreDynamicOcean,
ClampFlag useHighestPolygon,
const std::vector<makVrv::DtUniqueID>& ignore)
382 , myUseHighestLOD(useHighestLOD)
383 , myIgnoreDynamicOcean(ignoreDynamicOcean)
384 , myUseHighestPolygon(useHighestPolygon)
445 friend class boost::serialization::access;
450 template<
class Archive>
451 void serialize(Archive & ar,
const unsigned int version)
453 double x = myRep[0], y = myRep[1], z = myRep[2];
455 ar & BOOST_SERIALIZATION_NVP(x);
456 ar & BOOST_SERIALIZATION_NVP(y);
457 ar & BOOST_SERIALIZATION_NVP(z);
459 if (Archive::is_loading::value)
487 friend class boost::serialization::access;
492 template<
class Archive>
493 void serialize(Archive & ar,
const unsigned int version)
495 ar & BOOST_SERIALIZATION_NVP(myPsi);
496 ar & BOOST_SERIALIZATION_NVP(myTheta);
497 ar & BOOST_SERIALIZATION_NVP(myPhi);
499 if (Archive::is_loading::value && mySource)
509 template <
typename _Type,
typename _SrcType>
519 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
520 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
522 while (srcIter != src.end())
536 template<
class Archive>
537 void serialize(Archive & ar,
const unsigned int version)
539 ar & BOOST_SERIALIZATION_NVP(
myValues);
541 if (Archive::is_loading::value &&
mySource)
546 typename std::vector<_Type>::const_iterator src =
myValues.begin();
547 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
568 makVrv::DtVrlinkSimulatedEntityState(orig)
573 friend class boost::serialization::access;
578 template<
class Archive>
579 void serialize(Archive & ar,
const unsigned int version)
581 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
582 ar & BOOST_SERIALIZATION_NVP(myEntityId);
583 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
584 ar & BOOST_SERIALIZATION_NVP(myEntityType);
585 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
586 ar & BOOST_SERIALIZATION_NVP(myForce);
595 ar & BOOST_SERIALIZATION_NVP(loc);
596 ar & BOOST_SERIALIZATION_NVP(vel);
597 ar & BOOST_SERIALIZATION_NVP(relVel);
598 ar & BOOST_SERIALIZATION_NVP(acc);
599 ar & BOOST_SERIALIZATION_NVP(ori);
600 ar & BOOST_SERIALIZATION_NVP(rotVel);
602 ar & BOOST_SERIALIZATION_NVP(myAppearance);
603 ar & BOOST_SERIALIZATION_NVP(myCapabilities);
604 ar & BOOST_SERIALIZATION_NVP(myDIGuyAppearance);
605 ar & BOOST_SERIALIZATION_NVP(myDIGuyCharacterType);
606 ar & BOOST_SERIALIZATION_NVP(myGuise);
607 ar & BOOST_SERIALIZATION_NVP(myDRAlgorithm);
621 friend class boost::serialization::access;
626 template<
class Archive>
627 void serialize(Archive & ar,
const unsigned int version)
629 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
630 ar & BOOST_SERIALIZATION_NVP(myEntityId);
631 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
632 ar & BOOST_SERIALIZATION_NVP(myEntityType);
633 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
634 ar & BOOST_SERIALIZATION_NVP(myForce);
638 ar & BOOST_SERIALIZATION_NVP(pts);
640 ar & BOOST_SERIALIZATION_NVP(myUserData);
641 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
642 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
643 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
644 ar & BOOST_SERIALIZATION_NVP(myColor);
645 ar & BOOST_SERIALIZATION_NVP(myLabel);
646 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
647 ar & BOOST_SERIALIZATION_NVP(myProjected);
648 ar & BOOST_SERIALIZATION_NVP(myAttributes);
649 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);
653 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineHeight);
654 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineWidth);
IntersectProperties
The IntersectProperties enum is a flag set that indicates the.
Definition: DtIntersector.h:135
DtTaitBryan * mySource
Definition: localObjectManager.h:506
LocalStateData myData
Definition: localObjectManager.h:361
Definition: environmentalFacadeCollection.h:66
This is the protocol independent state of an entity.
Definition: DtEntityState.h:30
std::vector< DtEntityType > myIgnoreFromArchive
Definition: localObjectManager.h:365
Virtual base class.
Definition: DtVirtualBaseClass.h:19
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: localObjectManager.h:451
Definition: environmentalCreationData.h:27
std::map< makVrv::DtUniqueID, DtVrfObjectFacadeInterface * > LocalObjects
Collection of local Facades.
Definition: localObjectManager.h:356
makVrv::DtDe & myDe
Definition: localObjectManager.h:351
const float * physicalLineHeight
Definition: localObjectManager.h:215
void operator=(const DtVector &rhs)
Definition: localObjectManager.h:439
const std::map< std::string, std::string > * extendedData
Definition: localObjectManager.h:208
Definition: localObjectManager.h:476
boost::signals2::signal< void(bool)> signal_creating
Definition: localObjectManager.h:308
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_objectAboutToBeDeleted
Sent when a local object is about to be deleted.
Definition: localObjectManager.h:314
bool isGeocentric
Definition: localObjectManager.h:217
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_objectDeleted
Signal sent after the object has been fully removed.
Definition: localObjectManager.h:320
const std::string * label
Definition: localObjectManager.h:214
bool myCanCreateLocalObjects
Definition: localObjectManager.h:363
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, makVrv::DtVrlinkSimulatedBaseState *)> signal_objectCreated
Sent when a local object is created.
Definition: localObjectManager.h:311
makVrv::DtSignalConnectionManager myConnections
Definition: localObjectManager.h:358
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: localObjectManager.h:627
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtSerializableTaitBryan(DtTaitBryan &src)
Definition: localObjectManager.h:480
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
Definition: entityCreationData.h:27
Call to update state data of specified object and update it so local object will also be changed...
Definition: localObjectManager.h:186
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: localObjectManager.h:493
const double * newHeading
Definition: localObjectManager.h:210
const int * force
Definition: localObjectManager.h:205
DtVrlinkSimulatedEntityStateContainer()
Definition: localObjectManager.h:565
const std::map< int, DtString > * extendedLabels
Definition: localObjectManager.h:209
Definition: localObjectManager.h:510
LocalObjects myObjects
Definition: localObjectManager.h:357
LocalObjectUpdateStructure()
Definition: localObjectManager.h:188
boost::signals2::signal< void()> signal_terrainClearing
Signals for when the terrainis clearing/cleared.
Definition: localObjectManager.h:323
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: localObjectManager.h:579
DtSerializableStdVector()
Definition: localObjectManager.h:513
DtVrlinkSimulatedEntityStateContainer(const makVrv::DtVrlinkSimulatedEntityState &orig)
Definition: localObjectManager.h:567
std::map< makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState * > LocalStateData
Definition: localObjectManager.h:360
Contains makVrv::DtVirtualBaseClass class.
Definition: DtEntityState.h:60
Contains makVrv:DtIntersector, makVrv:DtIntersectorLineSegment, and makVrv:DtIntersectorResult classe...
DtSerializableVector(DtVector &src)
Definition: localObjectManager.h:433
Definition: vrfObjectFacadeInterface.h:47
const std::string * userData
Definition: localObjectManager.h:207
friend class boost::serialization::access
Definition: localObjectManager.h:531
Definition: localObjectManager.h:72
Holds information about the overlays managed by the Tactical Graphic Overlay Manager.
Definition: DtTacticalGraphicOverlay.h:25
Definition: DtIntersector.h:139
Definition: localObjectManager.h:563
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtEntityState class.
DtVrlinkSimulatedEnvironmentProcessContainer(const DtVrlinkSimulatedEnvironmentProcess &orig)
Definition: localObjectManager.h:615
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: localObjectManager.h:537
std::vector< _SrcType > * mySource
Definition: localObjectManager.h:559
const double * newPitch
Definition: localObjectManager.h:211
DtVector * mySource
Definition: localObjectManager.h:473
DtSerializableVector()
Definition: localObjectManager.h:432
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
const std::string * overlay
Definition: localObjectManager.h:206
std::vector< _Type > myValues
Definition: localObjectManager.h:560
DtVrlinkSimulatedEnvironmentProcessContainer()
Definition: localObjectManager.h:613
DtSerializableStdVector(std::vector< _SrcType > &src)
Definition: localObjectManager.h:514
Definition: entityFacadeCollection.h:65
Definition: vrfObjectManipulationHandlerBaseClass.h:485
Base class to provide boost signal/slot management.
LastCheckedGroundInformation myLastCheckedGroundInformation
Definition: localObjectManager.h:426
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: localObjectManager.h:335
Definition: localObjectManager.h:429
Definition: vrlinkSimulatedEnvironmentProcess.h:110
Definition: localObjectManager.h:611
const int * appearance
Definition: localObjectManager.h:213
Definition: localObjectManager.h:71
Contains makVrv::DtElementAttributes class.
bool myIsCreating
Definition: localObjectManager.h:353
LocalObjectUpdateStructure(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData &omd)
Definition: localObjectManager.h:195
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
The DtLocalObjectManager is the interface to be used when creating objects that are not to be publish...
Definition: localObjectManager.h:65
const float * physicalLineWidth
Definition: localObjectManager.h:216
boost::signals2::signal< void(bool)> signal_loading
Signal sent when loading the overlay file. True is before read, false after.
Definition: localObjectManager.h:317
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::vector< DtVector > points
Definition: localObjectManager.h:204
boost::signals2::signal< void()> signal_terrainCleared
Definition: localObjectManager.h:324
ClampFlag
Definition: localObjectManager.h:68
const int * color
Definition: localObjectManager.h:212
DtSerializableTaitBryan()
Definition: localObjectManager.h:479