VR-Forces 4.10 Class Documentation
 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.
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 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)