![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: dfad_header.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 #ifndef DfadHeader_h 00010 #define DfadHeader_h 00011 00012 #include "dted/dtedDefines.h" 00013 #include <stdio.h> 00014 #include <vlutil/vlMachineTypes.h> 00015 00016 00017 class DT_DLL_dted DtDfadHeader 00018 { 00019 00020 public: 00021 DtDfadHeader(); 00022 00023 virtual bool read(FILE* f); 00024 00025 inline float lon() { return myLon;} 00026 inline float lat() { return myLat;} 00027 00028 protected: 00029 00030 virtual void parse(); 00031 00032 float cvDmaLat(char dmaLat[]); 00033 float cvDmaLon(char dmaLon[]); 00034 00035 struct DtDfadHeaderRecord 00036 { 00037 char Reserved1[27]; 00038 }; 00039 00040 struct DtDfadDsiRecord 00041 { 00042 public: 00043 char Id[3]; 00044 char SecurityCode[1]; 00045 char SecurityControl[2]; 00046 char SecurityHandling[27]; 00047 char Reserved1[26]; 00048 char DMASeries[5]; 00049 char UniqueRef[15]; 00050 char Reserved2[8]; 00051 char DataEditionNumber[2]; 00052 char MatchMergeVersion[1]; 00053 char MaintenanceDate[4]; 00054 char MatchMergeDate[4]; 00055 char MaintenanceDesc[4]; 00056 char ProducerCode[8]; 00057 char Reserved3[16]; 00058 char ProductSpecification[9]; 00059 char ProductSpecificationAmendment[2]; 00060 char ProductSpecificationDate[4]; 00061 char VerticalDatum[3]; 00062 char HorizontalDatum[5]; 00063 char FreeText[10]; 00064 char CompilationDate[4]; 00065 char Reserved4[22]; 00066 char LatDataOrigin[9]; 00067 char LonDataOrigin[10]; 00068 char LatSWCorner[9]; 00069 char LonSWCorner[10]; 00070 char LatNECorner[9]; 00071 char LonNECorner[10]; 00072 char ReservedDMA[100]; 00073 char Reserved5[100]; 00074 char Reserved6[206]; 00075 }; 00076 00077 struct DtDfadAccRecord 00078 { 00079 public: 00080 char Id[3]; 00081 char AbsHorzAcc[4]; 00082 char Reserved1[4]; 00083 char RelHorzAcc[4]; 00084 char Reserved2[4]; 00085 char AbsVertAcc[4]; 00086 char Reserved3[32]; 00087 char MultipleAccOutline[2]; 00088 char Reserved4[2643]; // 9 times subregion (18 + 14 times coordinate part description) 00089 }; 00090 00091 00092 DtDfadHeaderRecord myHeader; 00093 DtDfadDsiRecord myDsi; 00094 DtDfadAccRecord myAcc; 00095 00096 float myLat; 00097 float myLon; 00098 }; 00099 #endif 00100