VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtFeatureSet.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtFeature.h>
15 #include <boost/unordered_set.hpp>
16 #include <boost/unordered_map.hpp>
17 
18 namespace makVrv
19 {
20  class DtArealFeature;
21  class DtArealFeatureVisualizer;
22  class DtEdgeFeature;
23  class DtEdgeFeatureVisualizer;
24  class DtFaccCode;
25  class DtFaccInfo;
26  class DtFeatureSpecification;
27  class DtPointFeature;
28  class DtPointFeatureVisualizer;
29  class DtCoordinateSystem;
30  enum class DtModelSetId;
31 
37  {
38  public:
39 
40  typedef boost::unordered_map<DtPointFeature*,DtPointFeatureVisualizer*>
42 
43  typedef boost::unordered_map<DtEdgeFeature*,DtEdgeFeatureVisualizer*>
45 
46  typedef boost::unordered_map<DtArealFeature*,DtArealFeatureVisualizer*>
48 
49  typedef boost::unordered_map<DtElementID, DtFeature*> ElementFeatureMap;
50 
52  DtFeatureSet(DtDe& de);
53 
55  virtual ~DtFeatureSet();
56 
58  void clear();
59 
61  void visualize(DtModelSetId modelSet);
62 
64  void unvisualize(DtModelSetId modelSet);
65 
67  void groundClamp();
68 
70  const PointFeatureMap& pointFeatures() const;
71 
73  const EdgeFeatureMap& linearFeatures() const;
74 
76  const ArealFeatureMap& arealFeatures() const;
77 
81  DtPointFeature* createPointFeature(DFAD::FeatureID featureId,
82  const DtFaccCode& featureCode,
83  unsigned int sourceId = 0 );
84 
87  void destroyPointFeature(DtPointFeature* feature);
88 
92  DtEdgeFeature* createEdgeFeature(DFAD::FeatureID featureId,
93  const DtFaccCode& featureCode,
94  unsigned int sourceId = 0 );
95 
98  void destroyEdgeFeature(DtEdgeFeature* feature);
99 
103  DtArealFeature* createArealFeature(DFAD::FeatureID featureId,
104  const DtFaccCode& featureCode,
105  unsigned int sourceId = 0 );
106 
109  void destroyArealFeature(DtArealFeature* feature);
110 
112  DtFeature* findFeature(DtElementID id);
113 
115  bool destroyFeature(DtElementID id);
116 
117  protected:
118 
119  void slot_onFeatureInfoChanged(const DtFaccCode& code,
120  const DtFaccInfo& info);
121 
122  void slot_selectionChanged(
123  const DtSelectionManager::IdSet& selected,
124  const DtSelectionManager::IdSet& deselected,
127 
129  virtual void slot_coordinateSystemChanged();
130 
131  protected:
132 
139 
142  DtCoordinateSystem* myCoordinateSystem = nullptr;
143 
144  };
145 }
unsigned int FeatureID
Definition: DtFeature.h:21
The edge feature is a feature that describes a vector feature, typically several connected line segme...
Definition: DtEdgeFeature.h:20
boost::unordered_map< DtPointFeature *, DtPointFeatureVisualizer * > PointFeatureMap
Definition: DtFeatureSet.h:41
ElementFeatureMap myElementFeatureMap
Definition: DtFeatureSet.h:137
boost::unordered_map< DtElementID, DtFeature * > ElementFeatureMap
Definition: DtFeatureSet.h:49
EdgeFeatureMap myEdgeFeatures
Definition: DtFeatureSet.h:135
Contains makVrv:DtSelectionManager class.
The DtFeatureSet contains all of the features of a particular database. These features include point...
Definition: DtFeatureSet.h:36
A data type which represents a FACC code.
Definition: DtFaccCode.h:19
DtModelSetId myModelSet
Definition: DtFeatureSet.h:138
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
Definition: DtFaccManager.h:30
Contains makVrv::DtFeature class.
Definition: DtArealFeature.h:17
The point feature is a feature that describes a single location. Typically an object at that location...
Definition: DtPointFeature.h:20
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
ArealFeatureMap myArealFeatures
Definition: DtFeatureSet.h:136
DtDe & myDe
Definition: DtFeatureSet.h:133
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
Base class to provide boost signal/slot management.
Definition: networkElement.h:31
DtFeatureSetTemplate< DtFeature > DtFeatureSet
Definition: featureSet.h:494
boost::unordered_map< DtArealFeature *, DtArealFeatureVisualizer * > ArealFeatureMap
Definition: DtFeatureSet.h:47
SelectionType
The nature of the current selection.
Definition: DtSelectionManager.h:42
This is the base Terrain Feature class which all specific feature types extend. This feature has a po...
Definition: DtFeature.h:32
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
PointFeatureMap myPointFeatures
Definition: DtFeatureSet.h:134
DtModelSetId
Definition: DtModelSetEnums.h:19
boost::unordered_map< DtEdgeFeature *, DtEdgeFeatureVisualizer * > EdgeFeatureMap
Definition: DtFeatureSet.h:44
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Definition: networkElement.h:29
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)