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 <matrix/vlVector.h>
41 class DtTacticalGraphicOverlay;
42 struct DtVrlinkSimulatedBaseState;
43 struct DtVrlinkSimulatedEntityState;
51 class DtVrfObjectFacadeInterface;
52 class DtEnvironmentalFacadeCollection;
53 class DtEntityFacadeCollection;
54 struct DtVrlinkSimulatedEnvironmentProcess;
86 virtual bool isCreating()
const;
89 virtual void tacticalGraphicsVertexSelected(
93 virtual void tacticalGraphicsVertexDeselected(
97 virtual void slot_onCurrentSelectionChanged(
105 virtual std::vector<makVrv::DtUniqueID> uniqueIdsForTypesThatMatch(
const DtEntityType&)
const;
123 const std::vector<DtVector>& localPoints,
126 int modelSet = -1,
bool keepName =
false,
int dictionaryToUse = -1);
133 int dictionaryToUse = -1);
145 int modelSet = -1,
bool keepName =
false,
int dictionaryToUse = -1);
170 virtual bool isEditable(
makVrv::DtUniqueID id,
const std::string& keywords =
"")
const;
173 virtual bool isMemberOfLayer(
makVrv::DtUniqueID id,
const std::string& layername)
const;
179 virtual void deleteAll(std::vector<DtEntityType> except = std::vector<DtEntityType>());
182 virtual void deleteAllFromLayer(
const std::string& layername);
196 , extendedLabels( 0 )
202 , physicalLineHeight( 0 )
203 , physicalLineWidth( 0 )
205 isGeocentric =
false;
209 : name( &omd.objectName )
210 , force( &omd.force )
211 , overlay( &omd.overlay )
212 , userData( &omd.userData )
213 , extendedData( &omd.extendedData )
214 , extendedLabels( &omd.extendedLabels )
215 , newHeading( &omd.heading )
216 , newPitch( &omd.pitch )
220 , physicalLineHeight( 0 )
221 , physicalLineWidth( 0 )
223 isGeocentric =
false;
250 virtual void create(
const DtEntityType& t,
int force);
253 virtual bool allSelectionIsLocal()
const;
256 virtual void setCanCreateLocalObjects(
bool);
259 virtual bool canCreateLocalObjects()
const;
262 virtual void save(
const std::string&);
265 virtual std::string toStringBuffer();
268 virtual bool fromStringBuffer(
const std::string&,
bool removeAll =
true);
271 virtual bool load(
const std::string&,
bool removeAll =
true);
274 virtual int numberOfLocalObjects()
const;
280 const std::vector<makVrv::DtUniqueID>& ignore = std::vector<makVrv::DtUniqueID>(),
makVrv::DtUniqueID* hitId = 0)
const;
287 bool useHighestLOD =
false,
bool ignoreDynamicOcean =
false,
ClampFlag useHighestPolygon = Closest,
294 bool useHighestLOD =
false,
bool ignoreDynamicOcean =
false,
ClampFlag useHighestPolygon = Closest,
makVrv::DtUniqueID* hitId = 0)
const;
296 virtual std::string generateUniqueName(
const std::string& base,
bool addNumberToBegin =
false)
const;
299 virtual void ignoreFromArchive(
const DtEntityType&);
300 virtual void removeIgnoreFromArchive(
const DtEntityType&);
304 virtual void slot_objectVisibilityChanged(
makVrv::DtUniqueID id,
bool isShown,
int context );
316 virtual void slot_stoppedObjectCreation();
322 virtual void clearingTerrain();
332 boost::signals2::signal<void (DtVrfObjectFacadeInterface*, makVrv::DtVrlinkSimulatedBaseState*)>
signal_objectCreated;
350 friend class boost::serialization::access;
355 template<
class Archive>
356 void serialize(Archive & ar,
const unsigned int version)
358 if (Archive::is_loading::value)
360 read(*(boost::archive::xml_iarchive*)&ar);
364 write(*(boost::archive::xml_oarchive*)&ar);
368 virtual void write(boost::archive::xml_oarchive& out);
369 virtual void read(boost::archive::xml_iarchive& in);
377 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
381 typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*>
LocalStateData;
393 : myProps(makVrv::DtIntersector::IntersectProperties(0))
394 , myUseHighestLOD(false)
395 , myIgnoreDynamicOcean(false)
396 , myUseHighestPolygon(Closest)
402 bool useHighestLOD,
bool ignoreDynamicOcean,
ClampFlag useHighestPolygon,
const std::vector<makVrv::DtUniqueID>& ignore)
405 , myUseHighestLOD(useHighestLOD)
406 , myIgnoreDynamicOcean(ignoreDynamicOcean)
407 , myUseHighestPolygon(useHighestPolygon)
470 friend class boost::serialization::access;
475 template<
class Archive>
476 void serialize(Archive & ar,
const unsigned int version)
478 double x = myRep[0], y = myRep[1], z = myRep[2];
480 ar & BOOST_SERIALIZATION_NVP(x);
481 ar & BOOST_SERIALIZATION_NVP(y);
482 ar & BOOST_SERIALIZATION_NVP(z);
484 if (Archive::is_loading::value)
512 friend class boost::serialization::access;
517 template<
class Archive>
518 void serialize(Archive & ar,
const unsigned int version)
520 ar & BOOST_SERIALIZATION_NVP(myPsi);
521 ar & BOOST_SERIALIZATION_NVP(myTheta);
522 ar & BOOST_SERIALIZATION_NVP(myPhi);
524 if (Archive::is_loading::value && mySource)
534 template <
typename _Type,
typename _SrcType>
544 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
545 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
547 while (srcIter != src.end())
561 template<
class Archive>
562 void serialize(Archive & ar,
const unsigned int version)
564 ar & BOOST_SERIALIZATION_NVP(
myValues);
566 if (Archive::is_loading::value &&
mySource)
571 typename std::vector<_Type>::const_iterator src =
myValues.begin();
572 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
595 : DtPatchIdentifier( src )
602 friend class boost::serialization::access;
607 template<
class Archive>
608 void serialize( Archive& ar,
const unsigned int version )
610 ar & BOOST_SERIALIZATION_NVP( myCountryCode );
611 ar & BOOST_SERIALIZATION_NVP( myServiceCode );
612 ar & BOOST_SERIALIZATION_NVP( myPatchId );
614 if ( Archive::is_loading::value && mySource )
632 makVrv::DtVrlinkSimulatedEntityState(orig)
637 friend class boost::serialization::access;
642 template<
class Archive>
643 void serialize( Archive & ar,
const unsigned int version )
645 ar & BOOST_SERIALIZATION_NVP( myGlobalId );
646 ar & BOOST_SERIALIZATION_NVP( myEntityId );
647 ar & BOOST_SERIALIZATION_NVP( myMarkingText );
648 ar & BOOST_SERIALIZATION_NVP( myEntityType );
649 ar & BOOST_SERIALIZATION_NVP( myAttachedToId );
650 ar & BOOST_SERIALIZATION_NVP( myForce );
659 ar & BOOST_SERIALIZATION_NVP( loc );
660 ar & BOOST_SERIALIZATION_NVP( vel );
661 ar & BOOST_SERIALIZATION_NVP( relVel );
662 ar & BOOST_SERIALIZATION_NVP( acc );
663 ar & BOOST_SERIALIZATION_NVP( ori );
664 ar & BOOST_SERIALIZATION_NVP( rotVel );
666 ar & BOOST_SERIALIZATION_NVP( myAppearance );
667 ar & BOOST_SERIALIZATION_NVP( myCapabilities );
669 ar & BOOST_SERIALIZATION_NVP( myDIGuyAppearance );
670 ar & BOOST_SERIALIZATION_NVP( myDIGuyCharacterType );
676 ar & BOOST_SERIALIZATION_NVP( primary );
677 ar & BOOST_SERIALIZATION_NVP( secondary );
678 ar & BOOST_SERIALIZATION_NVP( rank );
680 ar & BOOST_SERIALIZATION_NVP( myDIGuyCharacterName );
682 ar & BOOST_SERIALIZATION_NVP( myGuise );
683 ar & BOOST_SERIALIZATION_NVP( myDRAlgorithm );
697 friend class boost::serialization::access;
702 template<
class Archive>
703 void serialize(Archive & ar,
const unsigned int version)
705 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
706 ar & BOOST_SERIALIZATION_NVP(myEntityId);
707 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
708 ar & BOOST_SERIALIZATION_NVP(myEntityType);
709 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
710 ar & BOOST_SERIALIZATION_NVP(myForce);
714 ar & BOOST_SERIALIZATION_NVP(pts);
716 ar & BOOST_SERIALIZATION_NVP(myUserData);
717 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
718 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
719 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
720 ar & BOOST_SERIALIZATION_NVP(myColor);
721 ar & BOOST_SERIALIZATION_NVP(myLabel);
722 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
723 ar & BOOST_SERIALIZATION_NVP(myProjected);
724 ar & BOOST_SERIALIZATION_NVP(myAttributes);
725 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);
729 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineHeight);
730 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineWidth);
makVrv::DtDe & myDe
Definition: guiLocalObjectManager.h:372
IntersectProperties
The IntersectProperties enum is a flag set that indicates the types of nodes to be considered for int...
Definition: DtIntersector.h:31
boost::signals2::signal< void(DtVrfObjectFacadeInterface *, makVrv::DtVrlinkSimulatedBaseState *)> signal_objectCreated
Sent when a local object is created.
Definition: guiLocalObjectManager.h:332
DtTaitBryan * mySource
Definition: guiLocalObjectManager.h:531
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:74
This is the protocol independent state of an entity. Created/ deleted by DtEntityStateObject's. DtSimEntry's point to this state.
Definition: DtEntityState.h:33
boost::signals2::scoped_connection myCompleteViewUpdatedConnection
Definition: guiLocalObjectManager.h:388
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:476
Definition: environmentalCreationData.h:27
const double * newHeading
Definition: guiLocalObjectManager.h:233
boost::signals2::signal< void(bool)> signal_loading
Signal sent when loading the overlay file. True is before read, false after.
Definition: guiLocalObjectManager.h:338
const std::map< int, DtString > * extendedLabels
Definition: guiLocalObjectManager.h:232
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_objectDeleted
Signal sent after the object has been fully removed.
Definition: guiLocalObjectManager.h:341
void operator=(const DtVector &rhs)
Definition: guiLocalObjectManager.h:463
LocalObjectUpdateStructure()
Definition: guiLocalObjectManager.h:190
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:356
Definition: guiLocalObjectManager.h:501
Definition: guiLocalObjectManager.h:73
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
const float * physicalLineHeight
Definition: guiLocalObjectManager.h:238
boost::signals2::signal< void()> signal_terrainCleared
Signals for local object manager.
Definition: guiLocalObjectManager.h:345
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:703
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtSerializableTaitBryan(DtTaitBryan &src)
Definition: guiLocalObjectManager.h:505
bool isGeocentric
Definition: guiLocalObjectManager.h:240
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:518
DtVrlinkSimulatedEntityStateContainer()
Definition: guiLocalObjectManager.h:629
std::map< makVrv::DtUniqueID, DtVrfObjectFacadeInterface * > LocalObjects
Collection of local Facades.
Definition: guiLocalObjectManager.h:377
Definition: guiLocalObjectManager.h:535
DtSerializablePatchIdentifier(DtPatchIdentifier &src)
Definition: guiLocalObjectManager.h:594
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:643
DtSerializableStdVector()
Definition: guiLocalObjectManager.h:538
std::vector< DtVector > points
Definition: guiLocalObjectManager.h:227
DtVrlinkSimulatedEntityStateContainer(const makVrv::DtVrlinkSimulatedEntityState &orig)
Definition: guiLocalObjectManager.h:631
ClampFlag
Definition: guiLocalObjectManager.h:70
Contains makVrv::DtVirtualBaseClass class.
Definition: DtEntityState.h:65
Contains makVrv:DtIntersector class.
const int * color
Definition: guiLocalObjectManager.h:235
DtSerializableVector(DtVector &src)
Definition: guiLocalObjectManager.h:457
boost::signals2::signal< void(bool)> signal_creating
Signals for local object manager.
Definition: guiLocalObjectManager.h:329
Definition: vrfObjectFacadeInterface.h:53
makVrv::DtSignalConnectionManager myConnections
Definition: guiLocalObjectManager.h:379
friend class boost::serialization::access
Definition: guiLocalObjectManager.h:556
const int * appearance
Definition: guiLocalObjectManager.h:236
Holds information about the overlays managed by the Tactical Graphic Overlay Manager.
Definition: DtTacticalGraphicOverlay.h:25
Definition: DtIntersector.h:35
const int * force
Definition: guiLocalObjectManager.h:228
Definition: guiLocalObjectManager.h:627
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myCanCreateLocalObjects
Definition: guiLocalObjectManager.h:384
Contains makVrv::DtVrlinkSimulatedEntityState class.
DtVrlinkSimulatedEnvironmentProcessContainer(const DtVrlinkSimulatedEnvironmentProcess &orig)
Definition: guiLocalObjectManager.h:691
const std::string * name
Definition: guiLocalObjectManager.h:226
LocalObjectUpdateStructure(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData &omd)
Definition: guiLocalObjectManager.h:208
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:562
std::vector< _SrcType > * mySource
Definition: guiLocalObjectManager.h:584
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_objectAboutToBeDeleted
Sent when a local object is about to be deleted.
Definition: guiLocalObjectManager.h:335
DtVector * mySource
Definition: guiLocalObjectManager.h:498
DtSerializableVector()
Definition: guiLocalObjectManager.h:456
DtPatchIdentifier * mySource
Definition: guiLocalObjectManager.h:622
std::vector< _Type > myValues
Definition: guiLocalObjectManager.h:585
boost::signals2::signal< void()> signal_terrainClearing
Signals for when the terrainis clearing/cleared.
Definition: guiLocalObjectManager.h:344
DtVrlinkSimulatedEnvironmentProcessContainer()
Definition: guiLocalObjectManager.h:689
DtSerializableStdVector(std::vector< _SrcType > &src)
Definition: guiLocalObjectManager.h:539
Will create entity facades for each realized model set and manage them all.
Definition: entityFacadeCollection.h:67
Definition: vrfObjectManipulationHandlerBaseClass.h:492
DtSerializablePatchIdentifier()
Definition: guiLocalObjectManager.h:593
const float * physicalLineWidth
Definition: guiLocalObjectManager.h:239
Base class to provide boost signal/slot management.
Definition: guiLocalObjectManager.h:452
Definition: vrlinkSimulatedEnvironmentProcess.h:25
The DtGuiLocalObjectManager is the interface to be used when creating objects that are not to be publ...
Definition: guiLocalObjectManager.h:67
Definition: guiLocalObjectManager.h:687
Call to update state data of specified object and update it so local object will also be changed...
Definition: guiLocalObjectManager.h:188
const std::string * overlay
Definition: guiLocalObjectManager.h:229
const double * newPitch
Definition: guiLocalObjectManager.h:234
Contains makVrv::DtElementAttributes class.
LocalObjects myObjects
Definition: guiLocalObjectManager.h:378
std::map< makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState * > LocalStateData
Definition: guiLocalObjectManager.h:381
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:70
Definition: guiLocalObjectManager.h:74
Definition: guiLocalObjectManager.h:589
const std::string * userData
Definition: guiLocalObjectManager.h:230
bool myIsCreating
Definition: guiLocalObjectManager.h:374
const std::map< std::string, std::string > * extendedData
Definition: guiLocalObjectManager.h:231
std::vector< DtEntityType > myIgnoreFromArchive
Definition: guiLocalObjectManager.h:386
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
LastCheckedGroundInformation myLastCheckedGroundInformation
Definition: guiLocalObjectManager.h:449
LocalStateData myData
Definition: guiLocalObjectManager.h:382
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:608
DtSerializableTaitBryan()
Definition: guiLocalObjectManager.h:504
const std::string * label
Definition: guiLocalObjectManager.h:237