VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainSelectionTool.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: terrainSelectionTool.h,v $ $Revision: 1.9 $ $State: Exp $
7 ******************************************************************************/
8 #ifndef terrainSelectionTool_H_
9 #define terrainSelectionTool_H_
10 
11 //
12 // \file terrainSelectionTool.h
13 // \brief This file contains classes related to selecting arbitrary sections of
14 // terrain, composed of terrain elements (usually polygons), from a terrain database.
15 //
16 
17 #include "gdb/gdbDefines.h"
18 #include "gdb/terrainSelection.h"
19 #include <matrix/vlVector.h>
20 
21 class DtTerrainDatabase;
22 class DtNetworkElement;
23 class DtNetworkEdge;
24 class DtNetworkNode;
25 class DtNetworkSegment;
26 class DtSpecification;
27 class DtExtent;
28 class DtPolygon2D;
29 class DtGdbNode;
30 class DtCircle;
31 
32 //
33 // \brief The DtTerrainSelectionTool provides an interface for selecting terrain
34 // elements from a specified terrain database or terrain selection, usually using
35 // a geometric primitive such as a chord or extent as the selection mechanism.
37 {
38 public:
40 
41  virtual ~DtTerrainSelectionTool();
42 
43 private:
44  // Copy constructor and Assignment operator not implemented
46  const DtTerrainSelectionTool& operator=(const DtTerrainSelectionTool& original);
47 
48 public:
49 
50  // \defgroup TerrainSelection
51  //
52  // Given the specified terrain database or terrain selection, selection
53  // primitive, and terrain selection, use the primitive to select the
54  // appropriate terrain elements, if any.
55  //
56  // \return A boolean indication whether or not any terrain was selected.
58  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
59  const DtVector& localLocation, DtTerrainSelection& terrainSelection) const;
60 
61  virtual bool selectTerrain(DtTerrainSelection& roughTerrainSelection,
62  const DtVector& localLocation, DtTerrainSelection& refinedTerrainSelection) const;
63 
64 
65  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
66  double lat, double lon, DtTerrainSelection& terrainSelection) const;
67 
68  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
69  const DtExtent& extent, DtTerrainSelection& terrainSelection,
70  bool selectInclusive = true) const;
71 
72  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
73  const DtNetworkElement& networkElement, DtTerrainSelection& terrainSelection,
74  bool selectInclusive = true) const;
75 
76 
77  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
78  const DtPolygon2D& selectionPrimitive, DtTerrainSelection& terrainSelection,
79  bool selectInclusive = true) const;
80  virtual bool selectTerrain(DtTerrainSelection& roughTerrainSelection,
81  const DtPolygon2D& selectionPrimitive, DtTerrainSelection& refinedTerrainSelection,
82  bool selectInclusive = true) const;
83 
84 
85  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
86  const DtCircle& circle, DtTerrainSelection& terrainSelection,
87  bool selectInclusive = true) const;
88  virtual bool selectTerrain(DtTerrainSelection& roughTerrainSelection,
89  const DtCircle& circle, DtTerrainSelection& refinedTerrainSelection,
90  bool selectInclusive = true) const;
91 
92 
94  virtual bool selectTerrain(DtTerrainDatabase& terrainDatabase,
95  DtGdbNode::DtGdbNodeType nodeType,
96  DtTerrainSelection& terrainSelection);
98 
99 
100  virtual bool selectTerrainUsingSegment(DtTerrainSelection& roughTerrainSelection,
101  const DtNetworkSegment& segment, const DtSpecification& segmentSpec,
102  DtTerrainSelection& refinedTerrainSelection, bool selectInclusive = true) const;
103 
104  virtual bool selectTerrainUsingLinearFeature(DtTerrainDatabase& terrainDatabase,
105  const DtNetworkEdge& linearFeature, DtTerrainSelection& terrainSelection,
106  bool selectInclusive = true) const;
107 
108  virtual bool selectTerrainUsingArealFeature(DtTerrainDatabase& terrainDatabase,
109  const DtNetworkEdge& arealFeature, DtTerrainSelection& terrainSelection,
110  bool selectInclusive = true) const;
111 
112  virtual bool selectTerrainUsingPointFeature(DtTerrainDatabase& terrainDatabase,
113  const DtNetworkNode& node, DtTerrainSelection& terrainSelection,
114  bool selectInclusive = true) const;
115 
116  virtual bool getTerrainElements(DtGdbNode& node,
117  DtTerrainSelection& terrainSelection) const;
118 
119  virtual bool getRoughSelection(DtTerrainDatabase& terrainDatabase,
120  const DtExtent& boundingExtent, DtTerrainSelection& terrinSelection) const;
121 
122  // \return A boolean indicating whether or not the edge intersects the
123  // specified terrain element when projected in XY.
124  virtual bool intersectsTerrainElementInXy(const DtVector& location,
125  const DtTerrainElement& terrainElement) const;
126 
127  virtual bool intersectsTerrainElementInXy(const DtChord& edge,
128  const DtTerrainElement& terrainElement) const;
129 
130  virtual bool intersectsTerrainElementInXy(const DtPolygon2D& polygon2d,
131  const DtTerrainElement& terrainElement) const;
132 
133  virtual bool intersectsTerrainElementInXy(const DtCircle& circle,
134  const DtTerrainElement& terrainElement) const;
135 
136  virtual bool boundsTerrainElementInXy(const DtPolygon2D& polygon2d,
137  const DtTerrainElement& terrainElement) const;
138 
139  virtual bool boundsTerrainElementInXy(const DtCircle& circle,
140  const DtTerrainElement& terrainElement) const;
141 
142 protected:
143 private:
144 
145 };
146 
147 #endif
148 
149 
Definition: circle.h:22
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtGdbNodeType
Definition: gdbNode.h:48
Definition: gdbNode.h:44
Definition: networkSegment.h:26
Definition: polygon2D.h:24
Contains the typedefs and related functions that comprise the DtTerrainSelection interface.
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
Definition: allTypesPolygon.h:22
#define DT_DLL_gdb
Definition: gdbDefines.h:25
std::set< DtTerrainElement * > DtTerrainSelection
A DtTerrainSelection is a collection of DtTerrainElements, which have been selected, presumably by the user in order to perform an operation on them. Used most commonly by the terrain selection tool in order to allow the user to set soil types in the Terrain Database Tool application.
Definition: terrainSelection.h:35
Definition: networkNode.h:38
Definition: terrainSelectionTool.h:36
Definition: specification.h:27
Definition: networkEdge.h:28
Definition: terrainDatabase.h:148
Definition: networkElement.h:38

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)