VR-Forces 4.0.4 Class Documentation
include/gdb/terrainSelectionTool.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2005 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: terrainSelectionTool.h,v $ $Revision: 1.9 $ $State: Exp $
00007 ******************************************************************************/
00008 #ifndef terrainSelectionTool_H_
00009 #define terrainSelectionTool_H_
00010 
00011 //
00012 // \file terrainSelectionTool.h
00013 // \brief This file contains classes related to selecting arbitrary sections of
00014 // terrain, composed of terrain elements (usually polygons), from a terrain database.  
00015 //
00016 
00017 #include "gdb/gdbDefines.h"
00018 #include "gdb/terrainSelection.h"
00019 
00020 class DtTerrainDatabase;
00021 class DtNetworkElement;
00022 class DtNetworkEdge;
00023 class DtNetworkNode;
00024 class DtNetworkSegment;
00025 class DtSpecification;
00026 class DtExtent;
00027 class DtVector;
00028 class DtPolygon2D;
00029 class DtGdbNode;
00030 class DtCircle;
00031 
00032 //
00033 // \brief The DtTerrainSelectionTool provides an interface for selecting terrain
00034 // elements from a specified terrain database or terrain selection, usually using
00035 // a geometric primitive such as a chord or extent as the selection mechanism.
00036 class DT_DLL_gdb DtTerrainSelectionTool
00037 {
00038 public:
00039    DtTerrainSelectionTool();
00040 
00041    virtual ~DtTerrainSelectionTool();
00042 
00043 private:
00044    // Copy constructor and Assignment operator not implemented
00045    DtTerrainSelectionTool(const DtTerrainSelectionTool& original);
00046    const DtTerrainSelectionTool& operator=(const DtTerrainSelectionTool& original);
00047    
00048 public:
00049 
00050    // \defgroup TerrainSelection
00051    //
00052    // Given the specified terrain database or terrain selection, selection 
00053    // primitive, and terrain selection, use the primitive to select the 
00054    // appropriate terrain elements, if any. 
00055    //
00056    // \return A boolean indication whether or not any terrain was selected.
00058    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00059       const DtVector& localLocation, DtTerrainSelection& terrainSelection) const;
00060 
00061    virtual bool selectTerrain(DtTerrainSelection& roughTerrainSelection, 
00062       const DtVector& localLocation, DtTerrainSelection& refinedTerrainSelection) const;
00063 
00064    
00065    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00066       double lat, double lon, DtTerrainSelection& terrainSelection) const;
00067 
00068    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00069       const DtExtent& extent, DtTerrainSelection& terrainSelection, 
00070       bool selectInclusive = true) const;
00071 
00072    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00073       const DtNetworkElement& networkElement, DtTerrainSelection& terrainSelection, 
00074       bool selectInclusive = true) const;
00075 
00076 
00077    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00078       const DtPolygon2D& selectionPrimitive, DtTerrainSelection& terrainSelection, 
00079       bool selectInclusive = true) const;
00080    virtual bool selectTerrain(DtTerrainSelection& roughTerrainSelection, 
00081       const DtPolygon2D& selectionPrimitive, DtTerrainSelection& refinedTerrainSelection, 
00082       bool selectInclusive = true) const;
00083 
00084 
00085    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00086       const DtCircle& circle, DtTerrainSelection& terrainSelection, 
00087       bool selectInclusive = true) const;
00088    virtual bool selectTerrain(DtTerrainSelection& roughTerrainSelection, 
00089       const DtCircle& circle, DtTerrainSelection& refinedTerrainSelection, 
00090       bool selectInclusive = true) const;
00091 
00092 
00094    virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase, 
00095       DtGdbNode::DtGdbNodeType nodeType, 
00096       DtTerrainSelection& terrainSelection);
00098 
00099 
00100    virtual bool selectTerrainUsingSegment(DtTerrainSelection& roughTerrainSelection, 
00101       const DtNetworkSegment& segment, const DtSpecification& segmentSpec, 
00102       DtTerrainSelection& refinedTerrainSelection, bool selectInclusive = true) const;
00103 
00104    virtual bool selectTerrainUsingLinearFeature(DtTerrainDatabase& terrainDatabase, 
00105       const DtNetworkEdge& linearFeature, DtTerrainSelection& terrainSelection, 
00106       bool selectInclusive = true) const;
00107 
00108    virtual bool selectTerrainUsingArealFeature(DtTerrainDatabase& terrainDatabase, 
00109       const DtNetworkEdge& arealFeature, DtTerrainSelection& terrainSelection, 
00110       bool selectInclusive = true) const;
00111 
00112    virtual bool selectTerrainUsingPointFeature(DtTerrainDatabase& terrainDatabase, 
00113       const DtNetworkNode& node, DtTerrainSelection& terrainSelection, 
00114       bool selectInclusive = true) const;
00115    
00116    virtual bool getTerrainElements(DtGdbNode& node, 
00117       DtTerrainSelection& terrainSelection) const;
00118 
00119    virtual bool getRoughSelection(DtTerrainDatabase& terrainDatabase, 
00120       const DtExtent& boundingExtent, DtTerrainSelection& terrinSelection) const;
00121 
00122    // \return A boolean indicating whether or not the edge intersects the 
00123    // specified terrain element when projected in XY.
00124    virtual bool intersectsTerrainElementInXy(const DtVector& location, 
00125       const DtTerrainElement& terrainElement) const;
00126    
00127    virtual bool intersectsTerrainElementInXy(const DtChord& edge, 
00128       const DtTerrainElement& terrainElement) const;
00129 
00130    virtual bool intersectsTerrainElementInXy(const DtPolygon2D& polygon2d,
00131       const DtTerrainElement& terrainElement) const;
00132 
00133    virtual bool intersectsTerrainElementInXy(const DtCircle& circle, 
00134       const DtTerrainElement& terrainElement) const;
00135 
00136    virtual bool boundsTerrainElementInXy(const DtPolygon2D& polygon2d, 
00137       const DtTerrainElement& terrainElement) const;
00138 
00139    virtual bool boundsTerrainElementInXy(const DtCircle& circle, 
00140       const DtTerrainElement& terrainElement) const;
00141 
00142 protected:
00143 private:
00144 
00145 };
00146 
00147 #endif
00148 
00149 

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)