![]() |
VR-Link API Documentation for HLA Evolved
|
00001 //******************************************************************** 00004 //******************************************************************** 00005 //******************************************************************** 00007 //******************************************************************** 00008 00009 #pragma once 00010 00011 #if (DtHLA && DtHLA_1516) 00012 00013 #include <map> 00014 #include <vector> 00015 #include "rtiNamespace.h" 00016 #include <vlutil/vlExceptions.h> 00017 #include <matrix/geodCoord.h> 00018 00019 #include <vlutil/vlSmartPointers.h> 00020 #include "vrlRtiAmb.h" 00021 #include <set> 00022 00025 00026 class DtExerciseConn; 00027 class DtVrlRtiAmbassador; 00028 class DtGeodeticNormalizer; 00029 00030 class DtDDMRegion; 00031 00032 typedef DtBoost::shared_ptr<DtDDMRegion> DtDDMRegionSP; 00033 typedef std::set<DtDDMRegionSP> DtDDMRegionSet; 00034 00035 00036 class DT_DLL_VL DtDDMRegion 00037 { 00038 struct DtDimensionHandleBoundsStruct 00039 { 00040 RTI::DimensionHandle handle; 00041 unsigned int lowerBound; 00042 unsigned int upperBound; 00043 }; 00044 00045 public: 00048 DtDDMRegion(DtExerciseConn* exConn); 00049 00053 DtDDMRegion(DtExerciseConn* exConn, const std::vector<DtString>& dimensionNameVector); 00054 00055 DtDDMRegion(DtExerciseConn* exConn, const RTI::RegionHandle& region ); 00056 00058 DtDDMRegion(const DtDDMRegion& orig); 00060 virtual ~DtDDMRegion(); 00061 00066 virtual void initializeDimensions( 00067 const std::vector<DtString>& dimensionNameVector); 00068 00069 virtual void initializeDimensions( 00070 const RTI::DimensionHandleSet& dimHandles ); 00071 00074 virtual void setUpperBound(const DtString& dimensionName, unsigned long upperBound ); 00075 00078 virtual void setLowerBound(const DtString& dimensionName, unsigned long lowerBound ); 00079 00080 virtual void setDimensionBounds(const DtString& dimensionName, unsigned long 00081 lowerBound, unsigned long upperBound); 00082 00083 virtual void notifyRtiOfUpdate(); 00084 00086 virtual RTI::RegionHandle regionHandle(); 00087 virtual const RTI::RegionHandle regionHandle() const; 00088 00089 virtual void init(const std::vector<DtString>& dimensionNameVector); 00090 00091 virtual void addAttributeHandle(RTI::AttributeHandle handle); 00092 00095 virtual void addAttributeHandle(const DtString& objClassName, const DtString& attrName); 00096 00097 virtual const RTI::AttributeHandleSet& attributeHandles() const; 00098 00099 virtual bool hasAttributeHandles() const; 00100 00101 virtual int attributeHandleCount() const; 00102 00103 bool operator<(const DtDDMRegion& other) const; 00104 00105 00106 protected: 00110 virtual void createRegion(); 00111 00112 protected: 00113 00115 DtDDMRegion& operator=(const DtDDMRegion& orig); 00116 00117 RTI::RegionHandle myRegionHandle; 00118 DtVrlRtiAmbassador* myRtiAmb; 00119 std::map<DtString, DtDimensionHandleBoundsStruct> myDimensionMap; 00120 00121 // This is added to associate a region with particular attributes. 00122 DtExerciseConn* myExConn; 00123 RTI::AttributeHandleSet* myAttributeHandles; 00124 }; 00125 00126 00127 #endif 00128