![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: regionSet.h,v $ $Revision: 1.23 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifndef regionSet_H_ 00009 #define regionSet_H_ 00010 #ifdef DDM 00011 00014 00015 #include <vlutil/vlHashlist.h> 00016 #include "regionRealization.h" 00017 #include "regionList.h" 00018 #include "regionSetList.h" 00019 #include <vlutil/vlUtil.h> 00020 #include <vlutil/vlInetAddr.h> 00021 00022 class DtObjectClassInfo; 00023 class DtObjRegSetMsg; 00024 class DtInterRegSetMsg; 00025 00032 class DT_DLL_LRC DtRegionSet 00033 { 00034 public: 00035 00037 DtRegionSet(); 00038 00040 DtRegionSet(DtRegionHandle setHandleValue, DtRegionRealization* region); 00041 00043 virtual ~DtRegionSet(); 00044 00045 private: 00046 00048 DtRegionSet(DtRegionSet const & rhs); 00049 00051 DtRegionSet &operator=(DtRegionSet const & rhs); 00052 00053 public: 00054 00056 virtual void setRegionSetHandle(DtRegionHandle setHandleValue); 00057 virtual DtRegionHandle regionSetHandle() const; 00058 00060 virtual void setFederateHandle(DtFederateHandle handleValue); 00061 virtual DtFederateHandle federateHandle() const; 00062 00064 virtual void setAddress(const MAKRti::DtInetAddr& addrValue); 00065 virtual MAKRti::DtInetAddr address() const; 00066 00068 virtual void addRegions(const DtRegionEntryList& regionList); 00069 00071 virtual void addRegionHdl(DtRegionHandle regionHandle); 00072 00074 00075 virtual void addRegion(DtRegionRealization* region); 00076 virtual void removeRegion(DtRegionHandle regionHandle); 00078 00080 virtual void emptyRegions(); 00081 00083 virtual void fillInRegions(DtObjRegSetMsg* msg) const; 00084 virtual void fillInRegions(DtInterRegSetMsg* msg) const; 00085 00087 virtual DtRegionRealization* region(DtRegionHandle regionHandle); 00088 00091 virtual const DtDistributedRegion* boundingRegion() const; 00092 00094 virtual bool inUse()=0; 00095 00097 virtual bool isEmptyRegions() const; 00098 00100 virtual bool isMemberRegion(DtRegionHandle regionHandle) const; 00101 00103 virtual bool isMemberRegion(const DtRegionSet& regionSet) const; 00104 00107 virtual bool isMemberRegion(const DtRegionSet& regionSet, 00108 DtRegionHandle regionHandle) const; 00109 00111 virtual bool isMemberRegions(DtRegionEntryList const & regionList) const; 00112 00114 virtual int commonRegions(const DtRegionSet& regionSet) const; 00115 00117 virtual int commonRegions(DtRegionEntryList const & regionList) const; 00118 00120 virtual const DtRegionEntryList& regionList() const; 00121 00123 virtual bool intersect(const DtRegionRealization& region) const; 00124 00126 virtual bool intersect(const DtRegionSet& regionSet) const; 00127 00130 virtual bool hasDimensions() const; 00131 00133 virtual DtDimensionHandleSet const & dimensionHandles() const; 00134 00136 virtual unsigned int regionCount() const; 00137 00138 protected: 00139 00141 DtRegionSet* self() const; 00142 00143 protected: 00144 00146 DtRegionHandle myHandle; 00147 00149 DtFederateHandle myFederateHandle; 00150 00152 DtRegionEntryList myRegions; 00153 00155 MAKRti::DtInetAddr myAddress; 00156 00158 DtDimensionHandleSet myDimensions; 00159 00161 DtDistributedRegion* myBoundingRegion; 00162 }; 00163 00164 inline DtRegionSet* DtRegionSet::self() const 00165 { 00166 return const_cast<DtRegionSet*>( this ); 00167 } 00168 00169 inline DtRegionHandle DtRegionSet::regionSetHandle() const 00170 { 00171 return myHandle; 00172 } 00173 00174 inline DtFederateHandle DtRegionSet::federateHandle() const 00175 { 00176 return myFederateHandle; 00177 } 00178 00179 inline MAKRti::DtInetAddr DtRegionSet::address() const 00180 { 00181 return myAddress; 00182 } 00183 00184 inline const DtRegionEntryList& DtRegionSet::regionList() const 00185 { 00186 return myRegions; 00187 } 00188 00189 #endif 00190 #endif