VR-Forces 4.0.4 Class Documentation
include/gdb/gdbTerrainReader.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: gdbTerrainReader.h,v $ $Revision: 1.16 $ $State: Exp $
00007 *********************************************************************/
00008 #ifndef gdbTerrainReader_H_
00009 #define gdbTerrainReader_H_
00010 
00013 
00014 #include "gdb/gdbDefines.h"
00015 #include <stdio.h>
00016 #include "terrainCS/coordSystem.h"
00017 #include "gdb/terModCbInfo.h"
00018 #include "gdb/terrainReader.h"
00019 
00020 class DtTerrainDatabase;
00021 class DtExtentInitializer;
00022 class DtGdbReaderInitializer;
00023 class DtFilename;
00024 class DtSpatialSubdivisionTerrainIntersectorDescriptor;
00025 
00029 class DT_DLL_gdb DtGdbTerrainReader : public DtTerrainReader
00030 {
00031 public:
00032    
00034    DtGdbTerrainReader();
00035 
00037    virtual ~DtGdbTerrainReader();
00038    
00039 private:
00040 
00043    DtGdbTerrainReader(const DtGdbTerrainReader& original);
00044    const DtGdbTerrainReader& operator=(const DtGdbTerrainReader& original);
00045 
00046 public:
00047 
00051    virtual bool loadTerrain(const DtFilename& filename, DtTerrainDatabase* terrain);
00052    
00057    virtual bool loadTerrain(const DtFilename& filename, DtTerrainDatabase* terrain, 
00058       const DtTerrainInitializer* initializer);
00059    
00060    static DtTerrainReader * create();
00061    
00065    virtual const DtString dataType() const;
00066    
00068    virtual bool readFromFile(const DtFilename& basename, DtTerrainDatabase* terrain);
00069 
00070    // Returns only the coordinate system that would define this database.  Should not load
00071    // any polygonal or vector information
00072    virtual Coordinate_System* coordinateSystem(const DtFilename& filename);
00073 
00074    // Returns only the optional file flags.  Should not load any polygonal or vector information
00075    virtual int optionalFileFlags(const DtFilename& filename);
00076    
00077 protected:
00078 
00080    bool testInvariant() const;
00081 
00083    bool createTerrain(const DtFilename& filename,
00084       DtTerrainDatabase& terrainDb, const DtGdbReaderInitializer& gdbInitializer);
00085 
00087    bool loadTerrainFromFile(const DtFilename& filename, 
00088       DtTerrainDatabase& terrainDb, const DtGdbReaderInitializer& gdbInitializer);
00089 
00090 
00091    // I/O calls.
00092    virtual bool readCoordinateSystem(FILE* fp);
00093 
00095    // closes the file pointer before returning.
00096    // Returns false if unable to read version number for any reason.
00097    virtual bool readVersionNumber(const DtFilename& basename, DtTerrainFileVersionNumber& versionNumber);
00098   
00099 
00101    virtual bool readVersionNumberFromFile(FILE* fp);
00102 
00104    virtual bool loadTerrainUsingGdbReader(const DtFilename& basename, 
00105                                           const DtTerrainFileVersionNumber versionNumber, 
00106                                           DtTerrainDatabase* terrain);
00107 
00109    virtual DtTerrainFileVersionNumber versionNumberFromFile() const;
00110 
00112    virtual void setVersionNumberFromFile(DtTerrainFileVersionNumber versionNumber);
00113 
00116    virtual bool verifyFileType(DtString filename, const DtString& type = "gdb");
00117 
00120    virtual bool loadSpatialSubdivision(FILE* fp, 
00121       DtSpatialSubdivisionTerrainIntersectorDescriptor& descriptor) const;
00122 
00123 private:
00124 
00125    DtTerrainFileVersionNumber myVersionNumberFromFile;
00126 
00127 };
00128 
00129 #endif

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)