![]() |
VR-Link API Documentation for DIS
|
00001 //******************************************************************** 00004 //******************************************************************** 00005 //******************************************************************** 00007 //******************************************************************** 00008 00009 #ifndef region13_H_ 00010 #define region13_H_ 00011 00012 #if (DtHLA && !DtHLA_1516) 00013 00014 #include <map> 00015 #include <vector> 00016 #include <RTI.hh> 00017 #include <vlutil/vlExceptions.h> 00018 #include <matrix/geodCoord.h> 00019 00020 #include <vlutil/vlSmartPointers.h> 00021 00022 #include <set> 00023 00026 00027 class DtExerciseConn; 00028 class DtVrlRtiAmbassador; 00029 class DtGeodeticNormalizer; 00030 00031 class DtDDMRegion; 00032 00033 typedef DtBoost::shared_ptr<DtDDMRegion> DtDDMRegionSP; 00034 typedef std::set<DtDDMRegionSP> DtDDMRegionSet; 00035 00036 class DT_DLL_VL DtDDMRegion 00037 { 00038 public: 00041 DtDDMRegion(DtExerciseConn* exConn); 00042 00047 DtDDMRegion(DtExerciseConn* exConn, const DtString& spaceName, 00048 int numberOfExtents = 1); 00049 00056 DtDDMRegion(DtExerciseConn* exConn, const DtString& spaceName, 00057 const std::vector<DtString>& dimensionNameVector, int numberOfExtents = 1); 00058 00061 DtDDMRegion( DtExerciseConn* exConn, const RTI::Region& region ); 00062 00064 DtDDMRegion(const DtDDMRegion& orig); 00065 00067 virtual ~DtDDMRegion(); 00068 00072 virtual void initializeDimensions( 00073 const std::vector<DtString>& dimensionNameVector); 00074 00077 virtual void setUpperBound(const DtString& dimensionName, unsigned long upperBound, 00078 int extentIndex = 0); 00079 00082 virtual void setLowerBound(const DtString& dimensionName, unsigned long lowerBound, 00083 int extentIndex = 0); 00084 00085 virtual void setDimensionBounds(const DtString& dimensionName, unsigned long 00086 lowerBound, unsigned long upperBound, int extentIndex = 0); 00087 00088 virtual void notifyRtiOfUpdate(); 00089 00092 void init(const DtString& spaceName, const std::vector<DtString>& 00093 dimensionNameVector, int numberOfExtents = 1); 00094 00096 virtual const RTI::Region* region() const; 00097 virtual RTI::Region* region(); 00098 00099 virtual void addAttributeHandle(RTI::AttributeHandle handle); 00100 00103 virtual void addAttributeHandle(const DtString& objClassName, const DtString& attrName); 00104 00105 virtual int attributeHandleCount() const; 00106 00107 virtual const RTI::AttributeHandleSet& attributeHandles() const; 00108 00109 virtual bool hasAttributeHandles() const; 00110 00112 DtDDMRegion& operator=(const DtDDMRegion& orig); 00113 00114 00115 protected: 00116 00117 RTI::Region* myRegion; 00118 DtVrlRtiAmbassador* myRtiAmb; 00119 std::map<DtString, RTI::DimensionHandle> myDimensionMap; 00120 RTI::SpaceHandle mySpaceHandle; 00121 00122 // This is added to associate a region with particular attributes. 00123 DtExerciseConn* myExConn; 00124 RTI::AttributeHandleSet* myAttributeHandles; 00125 }; 00126 00127 #endif 00128 00129 #endif 00130