VR-Forces 4.10 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 <vrvUtil/signalslib.h>
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 bool hasPushedSelections() const;
176 
178  virtual int pushSelectionsCount() const;
179 
181  virtual void popSelections(bool popOnly = false);
182 
183  protected:
184 
186  virtual bool canBoxSelectEntity(const makVrv::DtUniqueID& id, const makVrv::DtVrlinkSimulatedBaseState* state) const;
187 
188  virtual void slot_onCurrentSelectionChanged(
189  const makVrv::DtSelectionManager::IdSet& selected,
190  const makVrv::DtSelectionManager::IdSet& deselected);
191 
192  virtual void slot_onObjectEntryAdded(makVrv::DtSimObjectEntry&);
193 
196  virtual void slot_onSimStateAdded(makVrv::DtSimObjectEntry& entry);
197 
198  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
199 
200  virtual void slot_deInitialized(makVrv::DtDe&);
201 
202  virtual void slot_onAttributesChanged( const makVrv::DtElementAttributeManager::EntryAttributesList& signalList );
203 
204  virtual void completeAggregateSelectionChange(makVrv::DtSelectionManager::IdSet deselect, makVrv::DtSelectionManager::IdSet select);
205 
206  public:
207  boost::signals2::signal<void (const DtVector&)> signal_lastDatabaseLocationSet;
208  boost::signals2::signal<void (makVrv::DtElementID)> signal_showInformationFor;
209  boost::signals2::signal<void ()> signal_selectionPushed;
210  boost::signals2::signal<void ()> signal_selectionPopped;
211 
212  protected:
220 
221  std::set<makVrv::DtUniqueID> myEntityUniqueIDNotBoxSelectable;
222  std::vector<DtEntityType> myEntityTypeNotBoxSelectable;
223 
224  typedef std::vector<makVrv::DtSelectionManager::IdSet> Selections;
226  };
227 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(const DtVector &)> signal_lastDatabaseLocationSet
Definition: vrfSelectionHandler.h:207
DtVector myLastDatabaseLocation
Definition: vrfSelectionHandler.h:217
bool myAllowNonVrfItemsToBeManipulated
Definition: vrfSelectionHandler.h:218
boost::signals2::signal< void()> signal_selectionPushed
Definition: vrfSelectionHandler.h:209
Contains makVrv:DtSelectionManager class.
std::set< makVrv::DtUniqueID > myEntityUniqueIDNotBoxSelectable
Definition: vrfSelectionHandler.h:221
#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:23
DtVrfStateViewCollectionManager * myStateViewCollectionManager
Definition: vrfSelectionHandler.h:216
The abstract Channel Class.
Definition: DtChannel.h:30
std::vector< DtEntityType > myEntityTypeNotBoxSelectable
Definition: vrfSelectionHandler.h:222
Contains makVrv::DtVirtualBaseClass class.
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
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:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtSignalConnectionManager myConnections
Definition: vrfSelectionHandler.h:215
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:127
makVrv::DtDe & myDe
Definition: vrfSelectionHandler.h:213
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &selected)> signal_currentSelectionChanged
Definition: vrfSelectionHandler.h:61
Selections mySelections
Definition: vrfSelectionHandler.h:225
makVrv::DtSelectionManager::IdSet myLastSelection
Definition: vrfSelectionHandler.h:214
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:210
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Definition: laserDesignatorState.h:26
bool myBlockAggregateSelectionChanges
Definition: vrfSelectionHandler.h:219
boost::signals2::signal< void(makVrv::DtElementID)> signal_showInformationFor
Definition: vrfSelectionHandler.h:208
std::vector< makVrv::DtSelectionManager::IdSet > Selections
Definition: vrfSelectionHandler.h:224

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)