VR-Forces 4.1.1 Class Documentation
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 
20 class DtTerrainDatabase;
21 class DtNetworkElement;
22 class DtNetworkEdge;
23 class DtNetworkNode;
24 class DtNetworkSegment;
25 class DtSpecification;
26 class DtExtent;
27 class DtVector;
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 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)