VR-Forces 4.0.4 Class Documentation
include/ctdb/c7b.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: c7b.h,v $ $Revision: 1.23 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef c7b_H_
00009 #define c7b_H_
00010 
00011 #include "ctdb/ctdbDefines.h"
00012 #ifdef WIN32
00013 #include <float.h> 
00014 #define isAValidFloat(x) (!_isnan(x))
00015 #else
00016 #include <math.h> 
00017 #define isAValidFloat(x) (!isnan(x))
00018 #endif
00019 
00020 #include "gdb/terrainReader.h"
00021 #include <vlutil/vlFilename.h>
00022 #include "geometry/point.h"
00023 #include "ctdb/c7NetTypes.h"
00024 #include <vlutil/vlList.h>
00025 #include "gdb/specMgr.h"
00026 
00027 class DtC7bHeader;
00028 class DtC7bAuxHeader;
00029 class DtC7bGeoid;
00030 class DtC7bPatchGroupHeader;
00031 class DtC7bNode;
00032 class DtC7bEdge;
00033 class DtC7bAbstractFeature;
00034 class DtC7bLinearModel;
00035 class DtC7bVolumeModel;
00036 class DtC7bAggModel;
00037 class DtC7bMesTemplate;
00038 class DtC7bMesVolume;
00039 class DtC7bPatTable;
00040 class DtC7bWaterChars;
00041 class DtC7bElevation;
00042 class DtC7bGroup;
00043 
00044 class DtSurfaceManager;
00045 class DtGridPostList;
00046 class DtGroup;
00047 
00048 class DtVectorNetwork;
00049 class DtNetworkNode;
00050 
00051 
00052 class DT_DLL_ctdb DtC7bReader : public DtTerrainReader
00053 {
00054 public:
00055 
00056    DtC7bReader();
00057    ~DtC7bReader();
00058 
00059    // Loads terrain database file named filename, returning the data in 
00060    // terrain.  The terrain pointer passed in must be initialized before calling 
00061    // loadTerrain.
00062    virtual bool loadTerrain(const DtFilename& filename, 
00063                             DtTerrainDatabase* terrain);
00064 
00065    // Loads terrain database file named filename, returning the data in 
00066    // terrain.  The initializer object is used to pass in additional information
00067    // about the terrain to be loaded.  The terrain pointer passed in must be 
00068    // initialized before calling loadTerrain.
00069    virtual bool loadTerrain(const DtFilename& filename, 
00070                             DtTerrainDatabase* terrain, 
00071                             const DtTerrainInitializer* initializer);
00072 
00073    // Returns "c7b"
00074    virtual const DtString dataType() const;
00075 
00076    virtual DtVectorNetwork* localNetwork() {return myLocalNetwork;}
00077    virtual DtNetworkNode* betterNode(DtPoint &point, unsigned specID);
00078 
00079    static DtTerrainReader* create();
00080 
00081    // Returns only the coordinate system that would define this database.  Should not load
00082    // any polygonal or vector information
00083    virtual Coordinate_System* coordinateSystem(const DtFilename& filename);
00084 
00085    protected:
00086 
00087    virtual bool setupAndReadHeader(const DtFilename&, DtNetworkByteOrderType&);
00088    virtual void cleanUpC7b();
00089    virtual bool read(const DtFilename &filename);
00090    virtual bool readPatchGroupHeaders();
00091    virtual bool readTopology();
00092    virtual bool readQuadTree();
00093    virtual bool readLinearModels();
00094    virtual bool readVolumeModels();
00095    virtual bool readAggregateModels();
00096    virtual bool readMes();
00097    virtual bool readMesTemplates();
00098    virtual bool readMesVolumes();
00099    virtual bool readSoilTables();
00100    virtual bool readWaterChars();
00101    virtual bool readTidalZones();
00102    virtual bool readElevations();
00103    virtual bool readAllPatchData();
00104 
00105    virtual bool import();
00106    virtual bool buildSurfaceManager();
00107    virtual bool createFromGrid();
00108    virtual bool createFromTin();
00109    virtual bool createGridElevationData(DtGroup* group);
00110    virtual bool createGroupGrid(DtGroup* group);   
00111    virtual bool importFeatures();
00112    virtual bool importFeatureData();
00113    virtual bool triangulateGridData();
00114    virtual bool importAbstractData();
00115 
00116    virtual void calculateMaxMinHigh();
00117 
00118    virtual int optionalFileFlags(const DtFilename& filename)
00119    {
00120       return 0;
00121    }
00122 
00123 public:
00124 
00125    DtC7bHeader*            myC7bHeader;
00126    DtC7bAuxHeader*         myC7bAuxHeader;
00127    DtC7bGeoid*             myC7bGeoid;
00128    DtC7bPatchGroupHeader*  myC7bPatchGroupHeaders;
00129    DtC7bNode               *myC7bNodes;
00130    DtC7bEdge               *myC7bEdges;
00131    DtC7bAbstractFeature    **myC7bAbstractFeatures;
00132    DtC7bLinearModel        *myC7bLinearModels;
00133    DtC7bVolumeModel        *myC7bVolumeModels;
00134    DtC7bVolumeModel        *myC7bMesVolumeModels;
00135    DtC7bAggModel           *myC7bAggModels;
00136    DtC7bMesTemplate        *myC7bMesTemplates;
00137    DtC7bMesVolume          *myC7bMesVolumes;
00138    DtC7NetU32                *myC7bSoilTableIndex;
00139    DtNetU8                 *myC7bSoilTables;
00140    DtC7bPatTable           *myC7bPatTable;
00141    DtC7bWaterChars         *myC7bWaterChars;
00142    DtC7NetFloat32            *myC7bTidalZones;
00143    DtC7bElevation          *myC7bElevations;
00144    DtC7NetInt32              *myC7bSoils;
00145    DtC7bGroup              *myC7bGroups;
00146 
00147    int            myPatchesWide;
00148    int            myPatchesHigh;
00149    int            myNumPatchGroups;
00150    int            myNumNodes;
00151    int            myNumEdges;
00152    int            myNumAbstractFeatures;
00153    int            myNumLinearModels;
00154    int            myNumVolumeModels;
00155    int            myNumMesVolumeModels;
00156    int            myNumAggModels;
00157    int            myNumMesTemplates;
00158    int            myNumMesVolumes;
00159    int            myNumSoilTables;
00160    int            mySizeSoilTables;
00161    int            myNumWaterChars;
00162    int            myNumTidalZones;
00163    int            myNumElevations;
00164    int            myNumSoils;
00165 
00166    double         myMaxHigh;
00167    double         myMinHigh;
00168    double         myLenHigh;
00169    double         myPatchSize;
00170    
00171    long           myBaseX;
00172    long           myBaseY;
00173    long           myStepX;
00174    long           myStepY;
00175 
00176    FILE*           myFile;
00177 
00178    DtSurfaceManager*        mySurfaceManager;
00179    DtGridPostList*          myGridPostList;
00180    DtVectorNetwork*         myLocalNetwork; 
00181 
00182    DtList   myNodeLists[10][10];
00183    bool mySourceIsLittleEndian;
00184 
00185    static const unsigned int theNumColorGradations;
00186    static DtSpecificationID theRiverSpec;
00187    static DtSpecificationID theRoadSpec;
00188    static DtSpecificationID theRailroadSpec;
00189    static DtSpecificationID theTreeSpec;
00190    static DtSpecificationID theTreesSpec;
00191    static DtSpecificationID theFencesSpec;
00192    static DtSpecificationID theMicrowaterSpec;
00193    static DtSpecificationID thePipelineSpec;
00194    static DtSpecificationID thePowerlineSpec;
00195    static DtSpecificationID theBoundarySpec;
00196 };
00197 
00198 #endif
00199 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)