19 #include <vlpi/patchIdentifier.h>
21 #include <vlutil/vlSmartPointers.h>
23 #include <boost/archive/xml_iarchive.hpp>
24 #include <boost/archive/xml_oarchive.hpp>
25 #include <boost/serialization/access.hpp>
26 #include <boost/serialization/nvp.hpp>
27 #include <boost/serialization/list.hpp>
28 #include <boost/serialization/map.hpp>
29 #include <boost/serialization/vector.hpp>
30 #include <boost/serialization/string.hpp>
32 #include <matrix/vlVector.h>
39 class DtTacticalGraphicOverlay;
40 struct DtVrlinkSimulatedBaseState;
48 class DtVrfObjectFacadeInterface;
49 class DtEnvironmentalFacadeCollection;
50 class DtEntityFacadeCollection;
65 ((DtVector&)*
this) = rhs;
70 friend class boost::serialization::access;
75 template<
class Archive>
76 void serialize(Archive & ar,
const unsigned int version)
78 double x = myRep[0], y = myRep[1], z = myRep[2];
80 ar & BOOST_SERIALIZATION_NVP(x);
81 ar & BOOST_SERIALIZATION_NVP(y);
82 ar & BOOST_SERIALIZATION_NVP(z);
84 if (Archive::is_loading::value)
112 friend class boost::serialization::access;
117 template<
class Archive>
118 void serialize(Archive & ar,
const unsigned int version)
120 ar & BOOST_SERIALIZATION_NVP(myPsi);
121 ar & BOOST_SERIALIZATION_NVP(myTheta);
122 ar & BOOST_SERIALIZATION_NVP(myPhi);
124 if (Archive::is_loading::value && mySource)
134 template <
typename _Type,
typename _SrcType>
144 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
145 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
147 while (srcIter != src.end())
161 template<
class Archive>
162 void serialize(Archive & ar,
const unsigned int version)
164 ar & BOOST_SERIALIZATION_NVP(
myValues);
166 if (Archive::is_loading::value &&
mySource)
171 typename std::vector<_Type>::const_iterator src =
myValues.begin();
172 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
195 : DtPatchIdentifier( src )
202 friend class boost::serialization::access;
207 template<
class Archive>
208 void serialize( Archive& ar,
const unsigned int version )
210 ar & BOOST_SERIALIZATION_NVP( myCountryCode );
211 ar & BOOST_SERIALIZATION_NVP( myServiceCode );
212 ar & BOOST_SERIALIZATION_NVP( myPatchId );
214 if ( Archive::is_loading::value && mySource )
232 friend class boost::serialization::access;
237 template<
class Archive>
238 void serialize( Archive & ar,
const unsigned int version )
240 ar & BOOST_SERIALIZATION_NVP( myGlobalId );
241 ar & BOOST_SERIALIZATION_NVP( myEntityId );
242 ar & BOOST_SERIALIZATION_NVP( myMarkingText );
243 ar & BOOST_SERIALIZATION_NVP( myEntityType );
244 ar & BOOST_SERIALIZATION_NVP( myAttachedToId );
245 ar & BOOST_SERIALIZATION_NVP( myForce );
254 ar & BOOST_SERIALIZATION_NVP( loc );
255 ar & BOOST_SERIALIZATION_NVP( vel );
256 ar & BOOST_SERIALIZATION_NVP( relVel );
257 ar & BOOST_SERIALIZATION_NVP( acc );
258 ar & BOOST_SERIALIZATION_NVP( ori );
259 ar & BOOST_SERIALIZATION_NVP( rotVel );
261 ar & BOOST_SERIALIZATION_NVP( myAppearance );
262 ar & BOOST_SERIALIZATION_NVP( myCapabilities );
264 ar & BOOST_SERIALIZATION_NVP( myDIGuyAppearance );
265 ar & BOOST_SERIALIZATION_NVP( myDIGuyCharacterType );
271 ar & BOOST_SERIALIZATION_NVP( primary );
272 ar & BOOST_SERIALIZATION_NVP( secondary );
273 ar & BOOST_SERIALIZATION_NVP( rank );
275 ar & BOOST_SERIALIZATION_NVP( myDIGuyCharacterName );
277 ar & BOOST_SERIALIZATION_NVP( myGuise );
278 ar & BOOST_SERIALIZATION_NVP( myDRAlgorithm );
296 int myAppearance = 0;
297 int myCapabilities = 0;
308 int myDRAlgorithm = 0;
317 friend class boost::serialization::access;
322 template<
class Archive>
323 void serialize(Archive & ar,
const unsigned int version)
325 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
326 ar & BOOST_SERIALIZATION_NVP(myEntityId);
327 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
328 ar & BOOST_SERIALIZATION_NVP(myEntityType);
329 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
330 ar & BOOST_SERIALIZATION_NVP(myForce);
334 ar & BOOST_SERIALIZATION_NVP(pts);
336 ar & BOOST_SERIALIZATION_NVP(myUserData);
337 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
338 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
339 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
340 ar & BOOST_SERIALIZATION_NVP(myColor);
341 ar & BOOST_SERIALIZATION_NVP(myLabel);
342 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
343 ar & BOOST_SERIALIZATION_NVP(myProjected);
344 ar & BOOST_SERIALIZATION_NVP(myAttributes);
345 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);
349 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineHeight);
350 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineWidth);
355 ar & BOOST_SERIALIZATION_NVP(myExtendedData);
373 bool myClosedFigure =
false;
374 bool myProjected =
false;
375 int myAttributes = 0;
377 double myPhysicalLineHeight = 1.;
378 double myPhysicalLineWidth = 1.;
412 virtual bool isCreating()
const;
423 virtual void tacticalGraphicsVertexSelected(
427 virtual void tacticalGraphicsVertexDeselected(
431 virtual void slot_onCurrentSelectionChanged(
439 virtual std::vector<makVrv::DtUniqueID> uniqueIdsForTypesThatMatch(
const DtEntityType&)
const;
457 const std::vector<DtVector>& localPoints,
467 int dictionaryToUse = -1);
503 virtual bool isEditable(
makVrv::DtUniqueID id,
const std::string& keywords =
"")
const;
506 virtual bool isMemberOfLayer(
makVrv::DtUniqueID id,
const std::string& layername)
const;
512 virtual void deleteAll(std::vector<DtEntityType> except = std::vector<DtEntityType>());
515 virtual void deleteAllFromLayer(
const std::string& layername);
529 , extendedLabels( 0 )
535 , physicalLineHeight( 0 )
536 , physicalLineWidth( 0 )
538 isGeocentric =
false;
542 : name( &omd.objectName )
543 , force( &omd.force )
544 , overlay( &omd.overlay )
545 , userData( &omd.userData )
546 , extendedData( &omd.extendedData )
547 , extendedLabels( &omd.extendedLabels )
548 , newHeading( &omd.heading )
549 , newPitch( &omd.pitch )
553 , physicalLineHeight( 0 )
554 , physicalLineWidth( 0 )
556 isGeocentric =
false;
583 virtual void create(
const DtEntityType& t,
int force);
586 virtual bool allSelectionIsLocal()
const;
589 virtual void setCanCreateLocalObjects(
bool);
592 virtual bool canCreateLocalObjects()
const;
595 virtual void save(
const std::string&);
598 virtual std::string toStringBuffer();
601 virtual bool fromStringBuffer(
const std::string&,
bool removeAll =
true);
604 virtual bool load(
const std::string&,
bool removeAll =
true);
607 virtual int numberOfLocalObjects()
const;
613 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>(),
makVrv::DtUniqueID* hitId = 0)
const;
620 bool useHighestLOD =
false,
bool ignoreDynamicOcean =
false,
ClampFlag useHighestPolygon = Closest,
627 bool useHighestLOD =
false,
bool ignoreDynamicOcean =
false,
ClampFlag useHighestPolygon = Closest,
makVrv::DtUniqueID* hitId = 0)
const;
629 virtual std::string generateUniqueName(
const std::string& base,
bool addNumberToBegin =
false)
const;
632 virtual void ignoreFromArchive(
const DtEntityType&);
633 virtual void removeIgnoreFromArchive(
const DtEntityType&);
635 const std::map<DtUUID, DtGuiLocalObject*>& localObjects()
const;
641 virtual void slot_objectVisibilityChanged(
makVrv::DtUniqueID id,
bool isShown,
int context );
648 virtual void slot_stoppedObjectCreation();
654 virtual void clearingTerrain();
689 friend class boost::serialization::access;
694 template<
class Archive>
695 void serialize(Archive & ar,
const unsigned int version)
697 if (Archive::is_loading::value)
699 read(*(boost::archive::xml_iarchive*)&ar);
703 write(*(boost::archive::xml_oarchive*)&ar);
707 virtual void write(boost::archive::xml_oarchive& out);
708 virtual void read(boost::archive::xml_iarchive& in);
716 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
720 typedef std::map<makVrv::DtUniqueID, std::shared_ptr<DtGuiLocalObject>>
LocalStateData;
730 : myProps(makVrv::DtIntersector::IntersectProperties(0))
731 , myUseHighestLOD(false)
732 , myIgnoreDynamicOcean(false)
733 , myUseHighestPolygon(Closest)
739 bool useHighestLOD,
bool ignoreDynamicOcean,
ClampFlag useHighestPolygon,
const std::vector<makVrv::DtUniqueID>& ignore)
742 , myUseHighestLOD(useHighestLOD)
743 , myIgnoreDynamicOcean(ignoreDynamicOcean)
744 , myUseHighestPolygon(useHighestPolygon)
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, const DtGuiSimObject &)> signal_objectCreated
Sent when a local object is created.
Definition: guiLocalObjectManager.h:671
makVrv::DtDe & myDe
Definition: guiLocalObjectManager.h:711
UUID is a unique ID wrapper class.
Definition: uuid.h:59
std::string myEntityId
Definition: guiLocalObjectManager.h:361
IntersectProperties
The IntersectProperties enum is a flag set that indicates the types of nodes to be considered for int...
Definition: DtIntersector.h:31
DtTaitBryan * mySource
Definition: guiLocalObjectManager.h:131
DtVector myRotationalVelocity
Definition: guiLocalObjectManager.h:294
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:76
DtVector myAcceleration
Definition: guiLocalObjectManager.h:292
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
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: guiLocalObjectManager.h:76
Definition: environmentalCreationData.h:27
const double * newHeading
Definition: guiLocalObjectManager.h:566
boost::signals2::signal< void(bool)> signal_loading
Signal sent when loading the overlay file. True is before read, false after.
Definition: guiLocalObjectManager.h:677
const std::map< int, DtString > * extendedLabels
Definition: guiLocalObjectManager.h:565
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_objectDeleted
Signal sent after the object has been fully removed.
Definition: guiLocalObjectManager.h:680
void operator=(const DtVector &rhs)
Definition: guiLocalObjectManager.h:63
std::string myEntityType
Definition: guiLocalObjectManager.h:363
DtVector myVelocity
Definition: guiLocalObjectManager.h:290
LocalObjectUpdateStructure()
Definition: guiLocalObjectManager.h:523
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: guiLocalObjectManager.h:695
std::string myGlobalId
Definition: guiLocalObjectManager.h:360
Definition: guiLocalObjectManager.h:101
DtVector myRelativeVelocity
Definition: guiLocalObjectManager.h:291
std::string myLabel
Definition: guiLocalObjectManager.h:372
Definition: guiLocalObjectManager.h:399
DtPatchIdentifier myDIGuyPrimaryUnitPatch
Definition: guiLocalObjectManager.h:302
std::string myMarkingText
Definition: guiLocalObjectManager.h:284
Contains makVrv:DtSelectionManager class.
boost::signals2::signal< void(DtGuiLocalObject *)> signal_localObjectAboutToBeRemoved
Signals for local object manager.
Definition: guiLocalObjectManager.h:662
std::string myOverlayParent
Definition: guiLocalObjectManager.h:376
const float * physicalLineHeight
Definition: guiLocalObjectManager.h:571
boost::signals2::signal< void()> signal_terrainCleared
Signals for local object manager.
Definition: guiLocalObjectManager.h:684
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: guiLocalObjectManager.h:323
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtSerializableTaitBryan(DtTaitBryan &src)
Definition: guiLocalObjectManager.h:105
std::string myDIGuyCharacterType
Definition: guiLocalObjectManager.h:300
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
bool isGeocentric
Definition: guiLocalObjectManager.h:573
Definition: entityCreationData.h:27
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: guiLocalObjectManager.h:118
DtVrlinkSimulatedEntityStateContainer()
Definition: guiLocalObjectManager.h:228
DtVector myLocation
Definition: guiLocalObjectManager.h:289
std::map< makVrv::DtUniqueID, DtVrfObjectFacadeInterface * > LocalObjects
Collection of local Facades.
Definition: guiLocalObjectManager.h:716
Definition: guiLocalObjectManager.h:135
std::string myMarkingText
Definition: guiLocalObjectManager.h:362
std::string myEntityId
Definition: guiLocalObjectManager.h:283
std::vector< DtVector > myPoints
Definition: guiLocalObjectManager.h:366
DtSerializablePatchIdentifier(DtPatchIdentifier &src)
Definition: guiLocalObjectManager.h:194
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: guiLocalObjectManager.h:238
DtSerializableStdVector()
Definition: guiLocalObjectManager.h:138
static const DtUUID & nullUUID()
std::vector< DtVector > points
Definition: guiLocalObjectManager.h:560
ClampFlag
Definition: guiLocalObjectManager.h:396
Contains makVrv::DtVirtualBaseClass class.
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, const DtEntityType &)> signal_preVisualize
Sent when a local object is about to be visualized.
Definition: guiLocalObjectManager.h:668
Contains makVrv:DtIntersector class.
const int * color
Definition: guiLocalObjectManager.h:568
DtSerializableVector(DtVector &src)
Definition: guiLocalObjectManager.h:57
boost::signals2::signal< void(bool)> signal_creating
Sent when local object manager starts creating an object.
Definition: guiLocalObjectManager.h:665
Definition: vrfObjectFacadeInterface.h:53
std::string myAttachedToId
Definition: guiLocalObjectManager.h:364
makVrv::DtSignalConnectionManager myConnections
Definition: guiLocalObjectManager.h:718
friend class boost::serialization::access
Definition: guiLocalObjectManager.h:156
const int * appearance
Definition: guiLocalObjectManager.h:569
DtPatchIdentifier myDIGuyRankPatch
Definition: guiLocalObjectManager.h:304
Holds information about the overlays managed by the Tactical Graphic Overlay Manager.
Definition: DtTacticalGraphicOverlay.h:25
Definition: DtIntersector.h:35
std::string myDIGuyCharacterName
Definition: guiLocalObjectManager.h:306
const int * force
Definition: guiLocalObjectManager.h:561
DtTaitBryan myOrientation
Definition: guiLocalObjectManager.h:293
Definition: guiLocalObjectManager.h:226
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myCanCreateLocalObjects
Definition: guiLocalObjectManager.h:723
std::string myEntityType
Definition: guiLocalObjectManager.h:285
const std::string * name
Definition: guiLocalObjectManager.h:559
boost::signals2::signal< void(DtGuiLocalObject *)> signal_localObjectCreated
Signals for local object manager.
Definition: guiLocalObjectManager.h:661
LocalObjectUpdateStructure(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData &omd)
Definition: guiLocalObjectManager.h:541
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: guiLocalObjectManager.h:162
std::vector< _SrcType > * mySource
Definition: guiLocalObjectManager.h:184
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_objectAboutToBeDeleted
Sent when a local object is about to be deleted.
Definition: guiLocalObjectManager.h:674
DtVector * mySource
Definition: guiLocalObjectManager.h:98
DtSerializableVector()
Definition: guiLocalObjectManager.h:56
DtPatchIdentifier * mySource
Definition: guiLocalObjectManager.h:222
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: guiLocalObject.h:18
std::vector< _Type > myValues
Definition: guiLocalObjectManager.h:185
boost::signals2::signal< void()> signal_terrainClearing
Signals for when the terrainis clearing/cleared.
Definition: guiLocalObjectManager.h:683
DtVrlinkSimulatedEnvironmentProcessContainer()
Definition: guiLocalObjectManager.h:313
DtSerializableStdVector(std::vector< _SrcType > &src)
Definition: guiLocalObjectManager.h:139
std::string myGlobalId
Definition: guiLocalObjectManager.h:282
std::map< std::string, std::string > myExtendedData
Definition: guiLocalObjectManager.h:379
Will create entity facades for each realized model set and manage them all.
Definition: entityFacadeCollection.h:67
Definition: vrfObjectManipulationHandlerBaseClass.h:503
std::string myAttachedToId
Definition: guiLocalObjectManager.h:286
DtSerializablePatchIdentifier()
Definition: guiLocalObjectManager.h:193
const float * physicalLineWidth
Definition: guiLocalObjectManager.h:572
Base class to provide boost signal/slot management.
Definition: guiLocalObjectManager.h:52
The DtGuiLocalObjectManager is the interface to be used when creating objects that are not to be publ...
Definition: guiLocalObjectManager.h:393
Definition: guiLocalObjectManager.h:311
Call to update state data of specified object and update it so local object will also be changed...
Definition: guiLocalObjectManager.h:521
const std::string * overlay
Definition: guiLocalObjectManager.h:562
const double * newPitch
Definition: guiLocalObjectManager.h:567
Contains makVrv::DtElementAttributes class.
LocalObjects myObjects
Definition: guiLocalObjectManager.h:717
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Definition: guiLocalObjectManager.h:400
Definition: guiLocalObjectManager.h:189
const std::string * userData
Definition: guiLocalObjectManager.h:563
std::map< makVrv::DtUniqueID, std::shared_ptr< DtGuiLocalObject > > LocalStateData
Definition: guiLocalObjectManager.h:720
bool myIsCreating
Definition: guiLocalObjectManager.h:713
DtModelSetId
Definition: DtModelSetEnums.h:19
const std::map< std::string, std::string > * extendedData
Definition: guiLocalObjectManager.h:564
std::vector< DtEntityType > myIgnoreFromArchive
Definition: guiLocalObjectManager.h:725
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
LastCheckedGroundInformation myLastCheckedGroundInformation
Definition: guiLocalObjectManager.h:786
std::string myDIGuyAppearance
Definition: guiLocalObjectManager.h:299
LocalStateData myData
Definition: guiLocalObjectManager.h:721
std::string myGuise
Definition: guiLocalObjectManager.h:307
std::string myUserData
Definition: guiLocalObjectManager.h:367
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: guiLocalObjectManager.h:208
DtSerializableTaitBryan()
Definition: guiLocalObjectManager.h:104
DtPatchIdentifier myDIGuySecondaryUnitPatch
Definition: guiLocalObjectManager.h:303
const std::string * label
Definition: guiLocalObjectManager.h:570