VR-Forces 5.0.1 Developer's Guide
 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 
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 
50  {
51  public:
53  virtual ~DtVrfSelectionHandler();
54 
56  static DtVrfSelectionHandler& instance(makVrv::DtDe& de);
57 
58  public:
62  virtual void currentSelectionChanged(const makVrv::DtSelectionManager::IdSet& selected);
63  boost::signals2::signal<void (const makVrv::DtSelectionManager::IdSet& selected)> signal_currentSelectionChanged;
64 
66  virtual makVrv::DtSelectionManager::IdSet convertNamesToIds(const std::vector<DtUUID>&) const;
67  virtual makVrv::DtSelectionManager::IdSet convertNamesToIds(const std::vector<std::string>&) const;
68 
70  virtual DtVector getLocationFromLaserState(const DtLaserDesignatorState&) const;
71 
73  virtual std::vector<DtUUID> getSelectedNames() const;
74  virtual std::vector<DtUUID> getSelectedNames(const makVrv::DtSelectionManager::IdSet&) const;
75 
77  virtual std::vector<std::string> getSelectedNamesAsMarkingText() const;
78  virtual std::vector<std::string> getSelectedNamesAsMarkingText(const makVrv::DtSelectionManager::IdSet&) const;
79 
81  virtual std::vector<makVrv::DtSimEntry*> getSelectedEntries() const;
82  virtual std::vector<makVrv::DtSimEntry*> getSelectedEntries(const makVrv::DtSelectionManager::IdSet&) const;
83 
85  virtual bool selectionHasExtendedKeyAndValue(const DtString& keyword, const DtString& value) const;
86 
88  virtual void selectObjects(const std::vector<DtUUID>& names);
89 
91  virtual bool allObjectsAreVrfSimulated(const makVrv::DtSelectionManager::IdSet&) const;
92 
95  virtual bool allObjectsAreInSameVrfSession(const makVrv::DtSelectionManager::IdSet&) const;
96 
98  virtual bool objectIsVrfSimulated(makVrv::DtUniqueID) const;
99 
101  virtual bool objectInSameVrfSession(makVrv::DtUniqueID) const;
102 
103  virtual const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* getVrlinkSimulatedState(makVrv::DtUniqueID id) const;
104 
107  virtual DtEntityType getEntityTypeFromUniqueID(makVrv::DtUniqueID id) const;
108 
113  virtual void selectItemsInScreenBox(makVrv::DtChannel& channel,
114  int minX, int minY, int maxX, int maxY, const makVrv::DtSelectionManager::IdSet& mergeWith = makVrv::DtSelectionManager::IdSet(),
115  bool requestTaskSets = true);
116 
118  virtual bool isWithinScreenBounds(makVrv::DtChannel&, const makVrv::DtUniqueID& id, const makVrv::DtVrlinkSimulatedBaseState*,
119  int minX, int minY, int maxX, int maxY) const;
120  virtual makVrv::DtUniqueID sceneObjectIdFromElementId( makVrv::DtChannel& channel, const makVrv::DtUniqueID& elementID ) const;
121 
123  virtual void setLastDatabaseLocation(const DtVector&);
124 
126  virtual const DtVector& lastDatabaseLocation() const;
127 
129  virtual void setAllowNonVrfItemsToBeManipulated(bool);
130  virtual bool allowNonVrfItemsToBeManipulated() const;
131 
133  virtual void setAutomaticallSelectDeselectAggregateExpansionChanges(bool);
134  virtual bool automaticallSelectDeselectAggregateExpansionChanges() const;
135 
139  virtual void zoomToExtents(bool zoomEvenIfPrimaryAttachment = false) const;
140 
142  virtual void zoomToExtents(const std::vector<makVrv::DtUniqueID>& ids, bool zoomEvenIfPrimaryAttachment = false) const;
143 
145  virtual void zoomToExtents(makVrv::DtUniqueID, bool zoomEvenIfPrimaryAttachment = false) const;
146 
148  virtual void centerOn(const std::vector<makVrv::DtUniqueID>& ids) const;
149 
151  virtual void centerOn(makVrv::DtUniqueID) const;
152 
154  virtual void zoomToBoundingVolume(const DtVector& geometricCenter, double radius, bool maintainCurrentAltitude = true) const;
155 
156  virtual void setBlockAggregateSelectionChanges(bool);
157  bool blockAggregateSelectionChanges() const;
158 
161  virtual void showInformationFor(makVrv::DtElementID);
162 
166  virtual void setEntityTypeBoxSelectable(const DtEntityType&, bool);
167  virtual bool entityTypeBoxSelectable(const DtEntityType&) const;
168 
169  virtual void setEntityUniqueIDBoxSelectable(makVrv::DtUniqueID, bool);
170  virtual bool entityUniqueIDBoxSelectable(makVrv::DtUniqueID) const;
172 
174  virtual void pushSelections(bool andClear = false);
175 
177  virtual bool hasPushedSelections() const;
178 
180  virtual int pushSelectionsCount() const;
181 
183  virtual void popSelections(bool popOnly = false);
184 
186  virtual void clearSelections();
187 
188  protected:
189 
191  virtual bool canBoxSelectEntity(const makVrv::DtUniqueID& id, const makVrv::DtVrlinkSimulatedBaseState* state) const;
192 
193  virtual void slot_onCurrentSelectionChanged(
194  const makVrv::DtSelectionManager::IdSet& selected,
195  const makVrv::DtSelectionManager::IdSet& deselected);
196 
197  virtual void slot_onObjectEntryAdded(makVrv::DtSimObjectEntry&);
198 
201  virtual void slot_onSimStateAdded(makVrv::DtSimObjectEntry& entry);
202 
203  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
204 
205  virtual void slot_deInitialized(makVrv::DtDe&);
206 
207  virtual void slot_onAttributesChanged( const makVrv::DtElementAttributeManager::EntryAttributesList& signalList );
208 
209  virtual void completeAggregateSelectionChange(makVrv::DtSelectionManager::IdSet deselect, makVrv::DtSelectionManager::IdSet select);
210 
211  public:
212  boost::signals2::signal<void (const DtVector&)> signal_lastDatabaseLocationSet;
213  boost::signals2::signal<void (makVrv::DtElementID)> signal_showInformationFor;
214  boost::signals2::signal<void ()> signal_selectionPushed;
215  boost::signals2::signal<void ()> signal_selectionPopped;
216  boost::signals2::signal<void ()> signal_selectionAboutToBePopped;
217 
218  protected:
226 
227  std::set<makVrv::DtUniqueID> myEntityUniqueIDNotBoxSelectable;
228  std::vector<DtEntityType> myEntityTypeNotBoxSelectable;
229 
230  typedef std::vector<makVrv::DtSelectionManager::IdSet> Selections;
232  };
233 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(const DtVector &)> signal_lastDatabaseLocationSet
Definition: vrfSelectionHandler.h:212
DtVector myLastDatabaseLocation
Definition: vrfSelectionHandler.h:223
bool myAllowNonVrfItemsToBeManipulated
Definition: vrfSelectionHandler.h:224
boost::signals2::signal< void()> signal_selectionPushed
Definition: vrfSelectionHandler.h:214
Contains makVrv:DtSelectionManager class.
std::set< makVrv::DtUniqueID > myEntityUniqueIDNotBoxSelectable
Definition: vrfSelectionHandler.h:227
Contains the DtUUID class declaration.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void()> signal_selectionAboutToBePopped
Definition: vrfSelectionHandler.h:216
DtVrfStateViewCollectionManager * myStateViewCollectionManager
Definition: vrfSelectionHandler.h:222
The abstract Channel Class.
Definition: DtChannel.h:35
std::vector< DtEntityType > myEntityTypeNotBoxSelectable
Definition: vrfSelectionHandler.h:228
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:49
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtSignalConnectionManager myConnections
Definition: vrfSelectionHandler.h:221
Contains makVrv::DtVrlinkSimulatedEntityState class.
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:139
makVrv::DtDe & myDe
Definition: vrfSelectionHandler.h:219
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &selected)> signal_currentSelectionChanged
Definition: vrfSelectionHandler.h:63
Selections mySelections
Definition: vrfSelectionHandler.h:231
makVrv::DtSelectionManager::IdSet myLastSelection
Definition: vrfSelectionHandler.h:220
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Contains makVrv::DtSimState class.
Contains makVrv::DtElementChanges class.
boost::signals2::signal< void()> signal_selectionPopped
Definition: vrfSelectionHandler.h:215
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Definition: laserDesignatorState.h:26
bool myBlockAggregateSelectionChanges
Definition: vrfSelectionHandler.h:225
boost::signals2::signal< void(makVrv::DtElementID)> signal_showInformationFor
Definition: vrfSelectionHandler.h:213
std::vector< makVrv::DtSelectionManager::IdSet > Selections
Definition: vrfSelectionHandler.h:230

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)