VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfSelectionHandler.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
15 
18 #include <vrvCore/DtUniqueID.h>
19 #include <vrvCore/DtSimState.h>
20 #include <vrvCore/DtEntityState.h>
22 #include <vrfutil/rwUUID.h>
25 
26 #include <vlpi/entityType.h>
27 #include <boost/signals2.hpp>
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtBaseStateView;
33  class DtSimEntry;
34  class DtChannel;
35 }
36 
37 class Dt3dBoundingVolume;
38 
39 namespace makVrf
40 {
41  class DtVrfStateViewCollectionManager;
42 
43  struct DtLaserDesignatorState;
44 
48  {
49  public:
51  virtual ~DtVrfSelectionHandler();
52 
54  static DtVrfSelectionHandler& instance(makVrv::DtDe& de);
55 
56  public:
60  virtual void currentSelectionChanged(const makVrv::DtSelectionManager::IdSet& selected);
61  boost::signals2::signal<void (const makVrv::DtSelectionManager::IdSet& selected)> signal_currentSelectionChanged;
62 
64  virtual makVrv::DtSelectionManager::IdSet convertNamesToIds(const std::vector<DtUUID>&) const;
65  virtual makVrv::DtSelectionManager::IdSet convertNamesToIds(const std::vector<std::string>&) const;
66 
68  virtual DtVector getLocationFromLaserState(const DtLaserDesignatorState&) const;
69 
71  virtual std::vector<DtUUID> getSelectedNames() const;
72  virtual std::vector<DtUUID> getSelectedNames(const makVrv::DtSelectionManager::IdSet&) const;
73 
75  virtual std::vector<std::string> getSelectedNamesAsMarkingText() const;
76  virtual std::vector<std::string> getSelectedNamesAsMarkingText(const makVrv::DtSelectionManager::IdSet&) const;
77 
79  virtual std::vector<makVrv::DtSimEntry*> getSelectedEntries() const;
80  virtual std::vector<makVrv::DtSimEntry*> getSelectedEntries(const makVrv::DtSelectionManager::IdSet&) const;
81 
83  virtual bool selectionHasExtendedKeyAndValue(const DtString& keyword, const DtString& value) const;
84 
86  virtual void selectObjects(const std::vector<DtUUID>& names);
87 
89  virtual bool allObjectsAreVrfSimulated(const makVrv::DtSelectionManager::IdSet&) const;
90 
93  virtual bool allObjectsAreInSameVrfSession(const makVrv::DtSelectionManager::IdSet&) const;
94 
96  virtual bool objectIsVrfSimulated(makVrv::DtUniqueID) const;
97 
99  virtual bool objectInSameVrfSession(makVrv::DtUniqueID) const;
100 
101  virtual const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* getVrlinkSimulatedState(makVrv::DtUniqueID id) const;
102 
105  virtual DtEntityType getEntityTypeFromUniqueID(makVrv::DtUniqueID id) const;
106 
111  virtual void selectItemsInScreenBox(makVrv::DtChannel& channel,
112  int minX, int minY, int maxX, int maxY, const makVrv::DtSelectionManager::IdSet& mergeWith = makVrv::DtSelectionManager::IdSet(),
113  bool requestTaskSets = true);
114 
116  virtual bool isWithinScreenBounds(makVrv::DtChannel&, const makVrv::DtUniqueID& id, const makVrv::DtVrlinkSimulatedBaseState*,
117  int minX, int minY, int maxX, int maxY) const;
118  virtual makVrv::DtUniqueID sceneObjectIdFromElementId( makVrv::DtChannel& channel, const makVrv::DtUniqueID& elementID ) const;
119 
121  virtual void setLastDatabaseLocation(const DtVector&);
122 
124  virtual const DtVector& lastDatabaseLocation() const;
125 
127  virtual void setAllowNonVrfItemsToBeManipulated(bool);
128  virtual bool allowNonVrfItemsToBeManipulated() const;
129 
131  virtual void setAutomaticallSelectDeselectAggregateExpansionChanges(bool);
132  virtual bool automaticallSelectDeselectAggregateExpansionChanges() const;
133 
137  virtual void zoomToExtents() const;
138 
140  virtual void zoomToExtents(const std::vector<makVrv::DtUniqueID>& ids) const;
141 
143  virtual void zoomToExtents(makVrv::DtUniqueID) const;
144 
146  virtual void centerOn(const std::vector<makVrv::DtUniqueID>& ids) const;
147 
149  virtual void centerOn(makVrv::DtUniqueID) const;
150 
152  virtual void zoomToBoundingVolume(const DtVector& geometricCenter, double radius, bool maintainCurrentAltitude = true) const;
153 
154  virtual void setBlockAggregateSelectionChanges(bool);
155  bool blockAggregateSelectionChanges() const;
156 
159  virtual void showInformationFor(makVrv::DtElementID);
160 
164  virtual void setEntityTypeBoxSelectable(const DtEntityType&, bool);
165  virtual bool entityTypeBoxSelectable(const DtEntityType&) const;
166 
167  virtual void setEntityUniqueIDBoxSelectable(makVrv::DtUniqueID, bool);
168  virtual bool entityUniqueIDBoxSelectable(makVrv::DtUniqueID) const;
170 
172  virtual void pushSelections(bool andClear = false);
173 
175  virtual void popSelections();
176 
177  protected:
178 
180  virtual bool canBoxSelectEntity(const makVrv::DtUniqueID& id, const makVrv::DtVrlinkSimulatedBaseState* state) const;
181 
182  virtual void slot_onCurrentSelectionChanged(
183  const makVrv::DtSelectionManager::IdSet& selected,
184  const makVrv::DtSelectionManager::IdSet& deselected);
185 
186  virtual void slot_onObjectEntryAdded(makVrv::DtSimObjectEntry&);
187 
190  virtual void slot_onSimStateAdded(makVrv::DtSimObjectEntry& entry);
191 
192  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
193 
194  virtual void slot_deInitialized(makVrv::DtDe&);
195 
196  virtual void slot_onAttributesChanged( const makVrv::DtElementAttributeManager::EntryAttributesList& signalList );
197 
198  virtual void completeAggregateSelectionChange(makVrv::DtSelectionManager::IdSet deselect, makVrv::DtSelectionManager::IdSet select);
199 
200  public:
201  boost::signals2::signal<void (const DtVector&)> signal_lastDatabaseLocationSet;
202  boost::signals2::signal<void (makVrv::DtElementID)> signal_showInformationFor;
203  boost::signals2::signal<void ()> signal_selectionPushed;
204  boost::signals2::signal<void ()> signal_selectionPopped;
205 
206  protected:
214 
215  std::set<makVrv::DtUniqueID> myEntityUniqueIDNotBoxSelectable;
216  std::vector<DtEntityType> myEntityTypeNotBoxSelectable;
217 
218  typedef std::vector<makVrv::DtSelectionManager::IdSet> Selections;
220  };
221 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
boost::signals2::signal< void(const DtVector &)> signal_lastDatabaseLocationSet
Definition: vrfSelectionHandler.h:201
DtVector myLastDatabaseLocation
Definition: vrfSelectionHandler.h:211
bool myAllowNonVrfItemsToBeManipulated
Definition: vrfSelectionHandler.h:212
boost::signals2::signal< void()> signal_selectionPushed
Definition: vrfSelectionHandler.h:203
Contains makVrv:DtSelectionManager class.
std::set< makVrv::DtUniqueID > myEntityUniqueIDNotBoxSelectable
Definition: vrfSelectionHandler.h:215
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
DtVrfStateViewCollectionManager * myStateViewCollectionManager
Definition: vrfSelectionHandler.h:210
The abstract Channel Class.
Definition: DtChannel.h:29
std::vector< DtEntityType > myEntityTypeNotBoxSelectable
Definition: vrfSelectionHandler.h:216
Contains makVrv::DtVirtualBaseClass class.
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:25
Functionality added to allow developers to more easily get information about currently selected items...
Definition: vrfSelectionHandler.h:47
std::vector< EntryAttributes > EntryAttributesList
Definition: DtElementAttributeManager.h:41
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
makVrv::DtSignalConnectionManager myConnections
Definition: vrfSelectionHandler.h:209
Contains makVrv::DtEntityState class.
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:126
makVrv::DtDe & myDe
Definition: vrfSelectionHandler.h:207
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &selected)> signal_currentSelectionChanged
Definition: vrfSelectionHandler.h:61
Selections mySelections
Definition: vrfSelectionHandler.h:219
makVrv::DtSelectionManager::IdSet myLastSelection
Definition: vrfSelectionHandler.h:208
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
Contains the DtElementAttributeManager class declaration.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains makVrv::DtSimState class.
Contains makVrv::DtElementChanges class.
boost::signals2::signal< void()> signal_selectionPopped
Definition: vrfSelectionHandler.h:204
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Definition: laserDesignatorState.h:26
bool myBlockAggregateSelectionChanges
Definition: vrfSelectionHandler.h:213
boost::signals2::signal< void(makVrv::DtElementID)> signal_showInformationFor
Definition: vrfSelectionHandler.h:202
std::vector< makVrv::DtSelectionManager::IdSet > Selections
Definition: vrfSelectionHandler.h:218

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)