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,
133 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();
335 boost::signals2::signal<void (DtVrfObjectFacadeInterface*, makVrv::DtVrlinkSimulatedBaseState*)>
signal_objectCreated;
353 friend class boost::serialization::access;
358 template<
class Archive>
359 void serialize(Archive & ar,
const unsigned int version)
361 if (Archive::is_loading::value)
363 read(*(boost::archive::xml_iarchive*)&ar);
367 write(*(boost::archive::xml_oarchive*)&ar);
371 virtual void write(boost::archive::xml_oarchive& out);
372 virtual void read(boost::archive::xml_iarchive& in);
380 typedef std::map<makVrv::DtUniqueID, DtVrfObjectFacadeInterface*>
LocalObjects;
384 typedef std::map<makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState*>
LocalStateData;
396 : myProps(makVrv::DtIntersector::IntersectProperties(0))
397 , myUseHighestLOD(false)
398 , myIgnoreDynamicOcean(false)
399 , myUseHighestPolygon(Closest)
405 bool useHighestLOD,
bool ignoreDynamicOcean,
ClampFlag useHighestPolygon,
const std::vector<makVrv::DtUniqueID>& ignore)
408 , myUseHighestLOD(useHighestLOD)
409 , myIgnoreDynamicOcean(ignoreDynamicOcean)
410 , myUseHighestPolygon(useHighestPolygon)
473 friend class boost::serialization::access;
478 template<
class Archive>
479 void serialize(Archive & ar,
const unsigned int version)
481 double x = myRep[0], y = myRep[1], z = myRep[2];
483 ar & BOOST_SERIALIZATION_NVP(x);
484 ar & BOOST_SERIALIZATION_NVP(y);
485 ar & BOOST_SERIALIZATION_NVP(z);
487 if (Archive::is_loading::value)
515 friend class boost::serialization::access;
520 template<
class Archive>
521 void serialize(Archive & ar,
const unsigned int version)
523 ar & BOOST_SERIALIZATION_NVP(myPsi);
524 ar & BOOST_SERIALIZATION_NVP(myTheta);
525 ar & BOOST_SERIALIZATION_NVP(myPhi);
527 if (Archive::is_loading::value && mySource)
537 template <
typename _Type,
typename _SrcType>
547 typename std::vector<_SrcType>::const_iterator srcIter = src.begin();
548 typename std::vector<_Type>::iterator tgtIter =
myValues.begin();
550 while (srcIter != src.end())
564 template<
class Archive>
565 void serialize(Archive & ar,
const unsigned int version)
567 ar & BOOST_SERIALIZATION_NVP(
myValues);
569 if (Archive::is_loading::value &&
mySource)
574 typename std::vector<_Type>::const_iterator src =
myValues.begin();
575 typename std::vector<_SrcType>::iterator tgt =
mySource->begin();
598 : DtPatchIdentifier( src )
605 friend class boost::serialization::access;
610 template<
class Archive>
611 void serialize( Archive& ar,
const unsigned int version )
613 ar & BOOST_SERIALIZATION_NVP( myCountryCode );
614 ar & BOOST_SERIALIZATION_NVP( myServiceCode );
615 ar & BOOST_SERIALIZATION_NVP( myPatchId );
617 if ( Archive::is_loading::value && mySource )
635 makVrv::DtVrlinkSimulatedEntityState(orig)
640 friend class boost::serialization::access;
645 template<
class Archive>
646 void serialize( Archive & ar,
const unsigned int version )
648 ar & BOOST_SERIALIZATION_NVP( myGlobalId );
649 ar & BOOST_SERIALIZATION_NVP( myEntityId );
650 ar & BOOST_SERIALIZATION_NVP( myMarkingText );
651 ar & BOOST_SERIALIZATION_NVP( myEntityType );
652 ar & BOOST_SERIALIZATION_NVP( myAttachedToId );
653 ar & BOOST_SERIALIZATION_NVP( myForce );
662 ar & BOOST_SERIALIZATION_NVP( loc );
663 ar & BOOST_SERIALIZATION_NVP( vel );
664 ar & BOOST_SERIALIZATION_NVP( relVel );
665 ar & BOOST_SERIALIZATION_NVP( acc );
666 ar & BOOST_SERIALIZATION_NVP( ori );
667 ar & BOOST_SERIALIZATION_NVP( rotVel );
669 ar & BOOST_SERIALIZATION_NVP( myAppearance );
670 ar & BOOST_SERIALIZATION_NVP( myCapabilities );
672 ar & BOOST_SERIALIZATION_NVP( myDIGuyAppearance );
673 ar & BOOST_SERIALIZATION_NVP( myDIGuyCharacterType );
679 ar & BOOST_SERIALIZATION_NVP( primary );
680 ar & BOOST_SERIALIZATION_NVP( secondary );
681 ar & BOOST_SERIALIZATION_NVP( rank );
683 ar & BOOST_SERIALIZATION_NVP( myDIGuyCharacterName );
685 ar & BOOST_SERIALIZATION_NVP( myGuise );
686 ar & BOOST_SERIALIZATION_NVP( myDRAlgorithm );
700 friend class boost::serialization::access;
705 template<
class Archive>
706 void serialize(Archive & ar,
const unsigned int version)
708 ar & BOOST_SERIALIZATION_NVP(myGlobalId);
709 ar & BOOST_SERIALIZATION_NVP(myEntityId);
710 ar & BOOST_SERIALIZATION_NVP(myMarkingText);
711 ar & BOOST_SERIALIZATION_NVP(myEntityType);
712 ar & BOOST_SERIALIZATION_NVP(myAttachedToId);
713 ar & BOOST_SERIALIZATION_NVP(myForce);
717 ar & BOOST_SERIALIZATION_NVP(pts);
719 ar & BOOST_SERIALIZATION_NVP(myUserData);
720 ar & BOOST_SERIALIZATION_NVP(myPenStyle);
721 ar & BOOST_SERIALIZATION_NVP(myFillStyle);
722 ar & BOOST_SERIALIZATION_NVP(myLineWidth);
723 ar & BOOST_SERIALIZATION_NVP(myColor);
724 ar & BOOST_SERIALIZATION_NVP(myLabel);
725 ar & BOOST_SERIALIZATION_NVP(myClosedFigure);
726 ar & BOOST_SERIALIZATION_NVP(myProjected);
727 ar & BOOST_SERIALIZATION_NVP(myAttributes);
728 ar & BOOST_SERIALIZATION_NVP(myOverlayParent);
732 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineHeight);
733 ar & BOOST_SERIALIZATION_NVP(myPhysicalLineWidth);
738 ar & BOOST_SERIALIZATION_NVP(myExtendedData);
makVrv::DtDe & myDe
Definition: guiLocalObjectManager.h:375
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:335
DtTaitBryan * mySource
Definition: guiLocalObjectManager.h:534
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:77
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:391
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:479
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:341
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:344
void operator=(const DtVector &rhs)
Definition: guiLocalObjectManager.h:466
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:359
Definition: guiLocalObjectManager.h:504
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:348
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:706
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtSerializableTaitBryan(DtTaitBryan &src)
Definition: guiLocalObjectManager.h:508
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: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:521
DtVrlinkSimulatedEntityStateContainer()
Definition: guiLocalObjectManager.h:632
std::map< makVrv::DtUniqueID, DtVrfObjectFacadeInterface * > LocalObjects
Collection of local Facades.
Definition: guiLocalObjectManager.h:380
Definition: guiLocalObjectManager.h:538
DtSerializablePatchIdentifier(DtPatchIdentifier &src)
Definition: guiLocalObjectManager.h:597
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:646
DtSerializableStdVector()
Definition: guiLocalObjectManager.h:541
std::vector< DtVector > points
Definition: guiLocalObjectManager.h:227
DtVrlinkSimulatedEntityStateContainer(const makVrv::DtVrlinkSimulatedEntityState &orig)
Definition: guiLocalObjectManager.h:634
ClampFlag
Definition: guiLocalObjectManager.h:70
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:332
Definition: DtEntityState.h:65
Contains makVrv:DtIntersector class.
const int * color
Definition: guiLocalObjectManager.h:235
DtSerializableVector(DtVector &src)
Definition: guiLocalObjectManager.h:460
boost::signals2::signal< void(bool)> signal_creating
Signals for local object manager.
Definition: guiLocalObjectManager.h:329
Definition: vrfObjectFacadeInterface.h:54
makVrv::DtSignalConnectionManager myConnections
Definition: guiLocalObjectManager.h:382
friend class boost::serialization::access
Definition: guiLocalObjectManager.h:559
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:630
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myCanCreateLocalObjects
Definition: guiLocalObjectManager.h:387
Contains makVrv::DtVrlinkSimulatedEntityState class.
DtVrlinkSimulatedEnvironmentProcessContainer(const DtVrlinkSimulatedEnvironmentProcess &orig)
Definition: guiLocalObjectManager.h:694
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:565
std::vector< _SrcType > * mySource
Definition: guiLocalObjectManager.h:587
boost::signals2::signal< void(DtVrfObjectFacadeInterface *)> signal_objectAboutToBeDeleted
Sent when a local object is about to be deleted.
Definition: guiLocalObjectManager.h:338
DtVector * mySource
Definition: guiLocalObjectManager.h:501
DtSerializableVector()
Definition: guiLocalObjectManager.h:459
DtPatchIdentifier * mySource
Definition: guiLocalObjectManager.h:625
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::vector< _Type > myValues
Definition: guiLocalObjectManager.h:588
boost::signals2::signal< void()> signal_terrainClearing
Signals for when the terrainis clearing/cleared.
Definition: guiLocalObjectManager.h:347
DtVrlinkSimulatedEnvironmentProcessContainer()
Definition: guiLocalObjectManager.h:692
DtSerializableStdVector(std::vector< _SrcType > &src)
Definition: guiLocalObjectManager.h:542
Will create entity facades for each realized model set and manage them all.
Definition: entityFacadeCollection.h:67
Definition: vrfObjectManipulationHandlerBaseClass.h:505
DtSerializablePatchIdentifier()
Definition: guiLocalObjectManager.h:596
const float * physicalLineWidth
Definition: guiLocalObjectManager.h:239
Base class to provide boost signal/slot management.
Definition: guiLocalObjectManager.h:455
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:690
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:381
std::map< makVrv::DtUniqueID, makVrv::DtVrlinkSimulatedBaseState * > LocalStateData
Definition: guiLocalObjectManager.h:384
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:72
Definition: guiLocalObjectManager.h:74
Definition: guiLocalObjectManager.h:592
const std::string * userData
Definition: guiLocalObjectManager.h:230
bool myIsCreating
Definition: guiLocalObjectManager.h:377
DtModelSetId
Definition: DtModelSetEnums.h:19
const std::map< std::string, std::string > * extendedData
Definition: guiLocalObjectManager.h:231
std::vector< DtEntityType > myIgnoreFromArchive
Definition: guiLocalObjectManager.h:389
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
LastCheckedGroundInformation myLastCheckedGroundInformation
Definition: guiLocalObjectManager.h:452
LocalStateData myData
Definition: guiLocalObjectManager.h:385
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:611
DtSerializableTaitBryan()
Definition: guiLocalObjectManager.h:507
const std::string * label
Definition: guiLocalObjectManager.h:237