VR-Forces 4.0.4 Class Documentation
include/gdb/terrainReader.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: terrainReader.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef terrainReader_H_
00009 #define terrainReader_H_
00010 
00011 // \file terrainReader.h
00012 // \brief Contains the DtTerrainReader class declaration.
00013 
00014 #include "gdb/gdbDefines.h"
00015 #include <vlutil/vlFilename.h>
00016 
00017 enum DtTerrainFileVersionNumber
00018 {
00019    OLD_TDB_FILE_FORMAT_VERSION = 100,
00020    TDB_FILE_FORMAT_VERSION = 200,
00021    TDB_FILENODE_VERSION = 201,
00022    TDB_DATA_FLAGS_VERSION = 202,
00023    TDB_VECTOR_DATA_VERSION = 203,
00024    TDB_204_VERSION = 204,
00025    TDB_205_VERSION = 205,
00026    TDB_206_VERSION = 206,
00027    TDB_207_VERSION = 207,
00028    TDB_208_VERSION = 208,
00029    TDB_209_VERSION = 209,
00030    TDB_210_VERSION = 210
00031 };
00032 
00033 
00034 class DtTerrainDatabase;
00035 class DtTerrainInitializer;
00036 class DtTerrainFileInitializer;
00037 class Coordinate_System;
00038 
00039 //
00040 // DtTerrainReader is an abstract class that represents a reader for any format
00041 class DT_DLL_gdb DtTerrainReader
00042 {
00043 public:
00044   
00045    // default constructor
00046    DtTerrainReader();
00047 
00048    // Loads terrain database file named filename, returning the data in 
00049    // terrain.  The terrain pointer passed in must be initialized before calling 
00050    // loadTerrain.
00051    virtual bool loadTerrain(const DtFilename& filename, 
00052                             DtTerrainDatabase* terrain) = 0;
00053 
00054    // Loads terrain database file named filename, returning the data in 
00055    // terrain.  The initializer object is used to pass in additional information
00056    // about the terrain to be loaded.  The terrain pointer passed in must be 
00057    // initialized before calling loadTerrain.
00058    virtual bool loadTerrain(const DtFilename& filename, 
00059                             DtTerrainDatabase* terrain, 
00060                             const DtTerrainInitializer* initializer) = 0;
00061 
00062    // destructor
00063    virtual ~DtTerrainReader();
00064 
00065    virtual DtTerrainDatabase *terrainDb();
00066 
00067    // Pre-processes the terrain if specified in any way in the initializer, such
00068    // as preallocating the expected number of vertices and surfaces to hold.
00069    virtual bool preprocessTerrain(const DtTerrainFileInitializer& terrainInitializer, 
00070       DtTerrainDatabase& terrainDb) const;
00071 
00072    virtual const DtString dataType() const = 0;
00073 
00074    void setTerrainInitializer(const DtTerrainInitializer* initializer);
00075    const DtTerrainInitializer* terrainInitializer() const;
00076 
00077    // Returns only the coordinate system that would define this database.  Should not load
00078    // any polygonal or vector information
00079    virtual Coordinate_System* coordinateSystem(const DtFilename& filename) = 0;
00080 
00081    // Returns only optional file flags.  Should not load
00082    // any polygonal or vector information
00083    virtual int optionalFileFlags(const DtFilename& filename) = 0;
00084 
00085 protected:
00086 
00087    // initialize the reader when loading, is called inside of loadTerrain
00088    virtual void init(const DtFilename& filename, DtTerrainDatabase* terrain);
00089 
00090    // copy constructor
00091    DtTerrainReader(const DtTerrainReader& orig);
00092 
00093    // assignment operator
00094    DtTerrainReader& operator=(const DtTerrainReader& orig);
00095 
00096 protected:
00097 
00098    DtTerrainDatabase* myTerrainDatabase;
00099    DtFilename         myFilename;
00100 
00101    const DtTerrainInitializer* myTerrainInitializer;
00102 };
00103 
00104 inline DtTerrainDatabase* DtTerrainReader::terrainDb()
00105 {
00106    return myTerrainDatabase;
00107 }
00108 
00109 inline void DtTerrainReader::setTerrainInitializer(
00110    const DtTerrainInitializer* initializer)
00111 {
00112    myTerrainInitializer = initializer;
00113 }
00114 
00115 inline const DtTerrainInitializer* DtTerrainReader::terrainInitializer() const
00116 {
00117    return myTerrainInitializer;
00118 }
00119 
00120 #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)