![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: c7bFeature.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 00010 00011 #ifndef __DtC7bFeature 00012 #define __DtC7bFeature 00013 00014 #include "ctdb/ctdbDefines.h" 00015 #include <stdio.h> 00016 #include "ctdb/c7NetTypes.h" 00017 #include "geometry/point.h" 00018 00019 class DtC7bGridData; 00020 class DtC7bTinData; 00021 class DtC7bFeature; 00022 00023 // Class: DtC7bFeature 00024 // 00025 // The class is public because should not be used but anyone else than 00026 // DtC7b. 00027 // 00028 00029 enum 00030 { 00031 FC_MICRO = 0, 00032 FC_VOLUME, 00033 FC_LINEAR, 00034 FC_CANOPY, 00035 FC_LAID_LINEAR, 00036 FC_AGGREGATE 00037 }; 00038 00039 enum 00040 { VOL_BUILDING = 0, 00041 VOL_ROCK, 00042 VOL_MES 00043 }; 00044 00045 enum 00046 { 00047 LIN_TREELINE = 0 00048 }; 00049 00050 class DtC7bReader; 00051 00052 class DT_DLL_ctdb DtC7bFeature 00053 { 00054 public: 00055 00056 DtC7bFeature(); 00057 ~DtC7bFeature(); 00058 00059 bool read(FILE *f); 00060 00061 // Reads in the feature starting at the db pointer, patch group pg and 00062 // patch number patchNum. The limit pointer is passed on to importCanopy 00063 // to indicate the end of the feature for bounds checking purposes. 00064 int processFeature(DtC7bReader *db, int pg, int patchNum, 00065 void* limit); 00066 int importLinear(DtC7bReader *db, bool isTree, int pg, int patchNum); 00067 int importVolume(DtC7bReader *db, int pg, int patchNum); 00068 // Read in the canopy starting at the db pointer, patch group pg and 00069 // patch number patchNum. The limit pointer is used to determine the upper 00070 // bound on the canopy. 00071 int importCanopy(DtC7bReader *db, int pg, int patchNum, void* limit); 00072 int importMicro(DtC7bReader *db, int pg, int patchNum); 00073 void caculateExtent(const DtPoint& point, DtPoint& minPoint, DtPoint& maxPoint); 00074 00075 int featureClass(); 00076 int vertices(); 00077 int microVertices(); 00078 int microType(); 00079 int postMask(); 00080 00081 double X(DtC7bReader *db); 00082 double Y(DtC7bReader *db); 00083 float Z(); 00084 00085 int soilIndex(int x); 00086 00087 int microVertex(int x); 00088 00089 int waterChars(int x); 00090 00091 int volumeReference(); 00092 int volumeType(); 00093 int volumeForceId(); 00094 bool volumeGenericModel(); 00095 00096 int linearReference(); 00097 bool linearFirst(); 00098 bool linearLast(); 00099 00100 int canopyReference(); 00101 bool canopyVertValid(int x); 00102 int canopyVert(int x); 00103 00104 int aggReference(); 00105 00106 int varAttrIndex(); 00107 int polyCharIndex(); 00108 00109 int width(); 00110 int edgeKey(); 00111 00112 DtC7NetU32 featureInfo(); 00113 00114 DtC7NetU32 myFeatureInfo; 00115 }; 00116 00117 #endif 00118