![]() |
VR-Link API Documentation for HLA Evolved
|
00001 //******************************************************************** 00002 // Copyright (c) 2005 MaK Technologies, Inc. 00003 // All rights reserved. 00004 //******************************************************************** 00005 #pragma once 00006 00007 #include <vl/region.h> 00008 #include "enumNorm.h" 00009 #include <vlutil/vlSmartPointers.h> 00010 00011 // Enumerations for subspaces 00012 enum DtSubspaceType 00013 { 00014 DtClutterControlSpace = 0, 00015 DtClutterIntersectSpace = 0, 00016 DtBlueAirSpace = 1, 00017 DtRedAirSpace = 2, 00018 DtGreenAirSpace = 3, 00019 DtBlueSeaSpace = 4, 00020 DtRedSeaSpace = 5, 00021 DtGreenSeaSpace = 6, 00022 DtBlueGroundSpace = 7, 00023 DtRedGroundSpace = 8, 00024 DtGreenGroundSpace = 9, 00025 DtHumanSpace = 10, 00026 DtRedHumanSpace = 10, 00027 DtBlueHumanSpace = 10, 00028 DtGreenHumanSpace = 10, 00029 DtTrackSpace = 11, 00030 DtTrackModificationSpace = 12, 00031 DtFireSpace = 13, 00032 DtDetonationSpace = 14, 00033 DtLaserSpace = 15, 00034 DtEmissionSpace = 16, 00035 DtIffSpace = 17, 00036 DtEngineeringSpace = 18, 00037 DtRadioSpace = 19, 00038 DtSensorFootprintSpace = 20, 00039 DtSensorDetectionSpace = 21, 00040 DtContactReportSpace = 22, 00041 DtAmbientEnvironmentSpace = 23, 00042 DtLocalEnvironmentSpace = 24, 00043 DtPersistentObjectSpace = 25, 00044 DtMissionStatusSpace = 26, 00045 DtSigsSpace = 27, 00046 DtFedstateSpace = 27, 00047 DtDamageAssessmentSpace = 28, 00048 DtDataLinkSpace = 29, 00049 DtWarconSpace = 30, 00050 DtTargetSpace = 30, 00051 DtJdlmSpace = 31 00052 }; 00053 00054 00055 template <int SubspaceType, typename DimensionType> 00056 class DtHyperspaceRegion : public DimensionType 00057 { 00058 public: 00059 DtHyperspaceRegion(DtExerciseConn* exConn); 00060 00061 int subSpaceType() const; 00062 00063 protected: 00064 unsigned long normalizeSubspaceType(); 00065 00066 int mySubSpaceType; 00067 DtEnumNormalizer myNormalizer; 00068 }; 00069 00070 template <int SubspaceType, typename DimensionType> inline 00071 DtHyperspaceRegion<SubspaceType, DimensionType>::DtHyperspaceRegion( 00072 DtExerciseConn* exConn) : 00073 DimensionType(exConn), 00074 mySubSpaceType(SubspaceType), 00075 myNormalizer(0, 30) 00076 { 00077 myNormalizer.setEnumValue(mySubSpaceType); 00078 unsigned long normalizedSubspace = myNormalizer.normalize(); 00079 DtDDMRegion::setUpperBound("subspace", normalizedSubspace); 00080 DtDDMRegion::setLowerBound("subspace", normalizedSubspace); 00081 } 00082 00083 template <int SubspaceType, typename DimensionType> inline int 00084 DtHyperspaceRegion<SubspaceType, DimensionType>::subSpaceType() const 00085 { 00086 return mySubSpaceType; 00087 } 00088 00089 00090