VR-Forces 4.0.4 Class Documentation
include/gdb/terrainDatabaseTool.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2005 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: terrainDatabaseTool.h,v $ $Revision: 1.5 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef terrainDbTool_H_
00009 #define terrainDbTool_H_
00010 
00011 //
00012 // \file terrainDbTool.h 
00013 // \brief Contains the DtTerrainDatabaseTool class declaration.
00014 // 
00015 
00016 #include "gdb/gdbDefines.h"
00017 
00018 class DtTerrainDatabase;
00019 class DtTerrainDatabaseToolConfiguration;
00020 class Coordinate_System;
00021 class DtPoint;
00022 
00023 // 
00024 // The DtTerrainDatabaseTool is a tool for manipulating a specified terrain
00025 // database.  It provides capabilities such as clipping/planarizing the vector
00026 // data, eliminating duplicate vertices, and other common terrain modifications.
00027 class DT_DLL_gdb DtTerrainDatabaseTool
00028 {
00029 public:
00030 
00031    DtTerrainDatabaseTool();
00032 
00033    // Copy constructor and Assignment operator are left 
00034    // to default, compiler generated versions.
00035    // @note The DtTerrainDatabaseTool @b is copyable and assignable.
00036    //
00037    // DtTerrainDatabaseTool(const DtTerrainDatabaseTool& original);
00038    // DtTerrainDatabaseTool& operator=(const DtTerrainDatabaseTool& original);
00039 
00040    virtual ~DtTerrainDatabaseTool();
00041 
00042    // Eliminate duplicate vertices with tolerance
00043    void eliminateDuplicateVertices(double tolerance, DtTerrainDatabase& terrainDb) const;
00044 
00045    // Eliminate duplicate surfaces
00046    void eliminateDuplicateSurfaces(DtTerrainDatabase& terrainDb) const;
00047 
00048    // Turn 3-sided polygons into triangles, if any.
00049    void convert3SidedPolygonsToTriangles(DtTerrainDatabase& terrainDb) const;
00050 
00051    // Apply all transformation nodes
00052    void collapseNodeTree(DtTerrainDatabase& terrainDb) const;
00053 
00054    // Transform the existing coordinate system to another coordinate system.
00055    void transformCoordinateSystem(Coordinate_System& toCs, 
00056       bool allowReflect, DtTerrainDatabase& terrainDb) const;
00057 
00058    void setOrigin(double radiansLatitude, double radiansLongitude, 
00059       unsigned int zone, DtTerrainDatabase& terrainDb) const;
00060 
00061    // Clip vector data
00062    void clipVectorData(DtTerrainDatabase& terrainDb) const;
00063 
00064    void clipVectorData(const DtPoint& swPoint, const DtPoint& nePoint, 
00065       DtTerrainDatabase& terrainDb) const;
00066 
00067    // Planarize vector data
00068    void planarizeVectorData(double tolerance, unsigned int excessiveEdgeCount, 
00069       DtTerrainDatabase& terrainDb) const;
00070 
00071    // Eliminate duplicate specifications
00072    void eliminateDuplicateSpecifications(DtTerrainDatabase& terrainDb) const;
00073    
00074    // Re-balance the node tree - is this exposed or not?
00075    void rebalanceTerrain(unsigned int branching, unsigned int leafing, 
00076       DtTerrainDatabase& terrainDb) const;
00077 
00078    bool processDatabase(DtTerrainDatabase& terrainDatabase, 
00079                         const DtTerrainDatabaseToolConfiguration& config);
00080 
00081 
00082 private:
00083 
00084 
00085 
00086 };
00087 
00088 #endif
00089 
00090 
00091 

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)