![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: dfad_feature.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 // 00010 // Defines a basic feature of any type to be read 00011 // 00012 #ifndef __DFADFEATURE 00013 #define __DFADFEATURE 00014 00015 #include "dted/dtedDefines.h" 00016 #include <stdio.h> 00017 #include <vlutil/vlMachineTypes.h> 00018 #include "geometry/point.h" 00019 #include <vlutil/vlList.h> 00020 #include "dted/dfad_info.h" 00021 00022 00023 class DT_DLL_dted DtDfadFeature 00024 { 00025 public: 00026 00027 DtDfadFeature(); 00028 virtual ~DtDfadFeature(); 00029 00030 virtual DtDfadFeature& operator=(const DtDfadFeature& orig); 00031 00032 virtual bool readBody(FILE* f); 00033 virtual bool readList(FILE* f); 00034 00035 virtual bool setBody(DtU8* data); 00036 00037 virtual DtInt16 facNumber(); 00038 virtual DtInt8 type(); 00039 virtual DtInt16 fidCode(); 00040 virtual DtInt8 rsfFactor(); 00041 virtual DtInt16 countOfPoints(); 00042 virtual DtInt16 predominantHeight(); 00043 virtual DtInt32 heightInMeters(); 00044 virtual bool complete(DtDfadInfo &info); 00045 virtual void clean(); 00046 00047 inline DtInt16 orientation() {return myOrientation;} 00048 inline DtFloat32 length() {return myLength;} 00049 inline DtFloat32 width() {return myWidth;} 00050 inline DtList& list() {return myList;} 00051 00052 protected: 00053 00054 virtual void parseData(); 00055 virtual void parsePoint(const DtPoint &origin, DtU8* coord); 00056 virtual void parseSpecificType(); 00057 00058 DtInt16 myFacNumber; 00059 DtInt8 myType; 00060 00061 DtInt16 myFidCode; 00062 DtInt8 myRsfFactor; 00063 00064 DtInt16 myHeight; 00065 DtInt32 myHeightInMeters; 00066 DtInt16 myCountOfPoints; 00067 00068 DtU8 myData[9]; 00069 DtU8 myPoints[2700]; 00070 00071 DtInt16 myOrientation; 00072 DtFloat32 myWidth; 00073 DtFloat32 myLength; 00074 00075 DtList myList; 00076 }; 00077 00078 #endif