VR-Forces 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>
20 #include <vrfutil/rwUUID.h>
23 
24 #include <vlpi/entityType.h>
25 #include <boost/signals2.hpp>
26 
27 namespace makVrv
28 {
29  class DtDe;
30  ;
31  class DtChannel;
32 }
33 
34 class Dt3dBoundingVolume;
35 
36 namespace makVrf
37 {
43  {
44  public:
46  virtual ~DtVrfSelectionHandler() override;
47 
49  static DtVrfSelectionHandler& instance(makVrv::DtDe& de);
50 
51  public:
55  virtual void currentSelectionChanged(const makVrv::DtSelectionManager::IdSet& selected);
56  boost::signals2::signal<void (const makVrv::DtSelectionManager::IdSet& selected)> signal_currentSelectionChanged;
57 
59  virtual makVrv::DtSelectionManager::IdSet convertNamesToIds(const std::vector<DtUUID>&) const;
60  virtual makVrv::DtSelectionManager::IdSet convertNamesToIds(const std::vector<std::string>&) const;
61 
63  virtual std::vector<DtUUID> getSelectedNames() const;
64  virtual std::vector<DtUUID> getSelectedNames(const makVrv::DtSelectionManager::IdSet&) const;
65 
67  virtual std::vector<std::string> getSelectedNamesAsMarkingText() const;
68  virtual std::vector<std::string> getSelectedNamesAsMarkingText(const makVrv::DtSelectionManager::IdSet&) const;
69 
71  virtual std::vector<DtSimObjectReference> getSelectedEntries(const makVrv::DtSelectionManager::IdSet& = makVrv::DtSelectionManager::IdSet()) const;
72 
74  virtual bool selectionHasExtendedKeyAndValue(const DtString& keyword, const DtString& value) const;
75 
77  virtual void selectObjects(const std::vector<DtUUID>& names);
78 
80  virtual bool allObjectsAreVrfSimulated(const makVrv::DtSelectionManager::IdSet&) const;
81 
83  virtual bool anyObjectsAreClutterObjects(const makVrv::DtSelectionManager::IdSet&) const;
84 
86  virtual bool anyObjectsAreRemotelyAttached(const makVrv::DtSelectionManager::IdSet&) const;
87 
90  virtual bool allObjectsAreInSameVrfSession(const makVrv::DtSelectionManager::IdSet&) const;
91 
93  virtual bool objectIsVrfSimulated(makVrv::DtUniqueID) const;
94 
96  virtual bool objectIsRemotelyAttached(makVrv::DtUniqueID) const;
97 
99  virtual bool objectIsClutterObject(makVrv::DtUniqueID) const;
100 
102  virtual bool objectInSameVrfSession(makVrv::DtUniqueID) const;
103 
108  virtual void selectItemsInScreenBox(makVrv::DtChannel& channel,
109  int minX, int minY, int maxX, int maxY, const makVrv::DtSelectionManager::IdSet& mergeWith = makVrv::DtSelectionManager::IdSet());
110 
112  virtual bool isWithinScreenBounds(makVrv::DtChannel&, const makVrv::DtUniqueID& id,
113  int minX, int minY, int maxX, int maxY) const;
114 
116  virtual void setLastDatabaseLocation(const DtVector&);
117 
119  virtual const DtVector& lastDatabaseLocation() const;
120 
122  virtual void setAllowNonVrfItemsToBeManipulated(bool);
123  virtual bool allowNonVrfItemsToBeManipulated() const;
124 
126  virtual void setAutomaticallSelectDeselectAggregateExpansionChanges(bool);
127  virtual bool automaticallSelectDeselectAggregateExpansionChanges() const;
128 
132  virtual void zoomToExtents(bool zoomEvenIfPrimaryAttachment = false) const;
133 
135  virtual void zoomToExtents(const std::set<makVrv::DtUniqueID>& ids, bool zoomEvenIfPrimaryAttachment = false) const;
136 
138  virtual void zoomToExtents(makVrv::DtUniqueID, bool zoomEvenIfPrimaryAttachment = false) const;
139 
141  virtual void centerOn(const std::vector<makVrv::DtUniqueID>& ids) const;
142 
144  virtual void centerOn(makVrv::DtUniqueID) const;
145 
147  virtual void zoomToBoundingVolume(const DtVector& geometricCenter, double radius, bool maintainCurrentAltitude = true) const;
148 
149  virtual void setBlockAggregateSelectionChanges(bool);
150  bool blockAggregateSelectionChanges() const;
151 
154  virtual void showInformationFor(makVrv::DtElementID);
155 
159  virtual void setEntityTypeBoxSelectable(const DtEntityType&, bool);
160  virtual bool entityTypeBoxSelectable(const DtEntityType&) const;
161 
162  virtual void setEntityUniqueIDBoxSelectable(makVrv::DtUniqueID, bool);
163  virtual bool entityUniqueIDBoxSelectable(makVrv::DtUniqueID) const;
165 
167  virtual void pushSelections(bool andClear = false);
168 
170  virtual bool hasPushedSelections() const;
171 
173  virtual int pushSelectionsCount() const;
174 
176  virtual void popSelections(bool popOnly = false);
177 
179  virtual void clearSelections();
180 
181  virtual const makVrv::DtSelectionManager::IdSet& selectionsInScreenBox();
182  virtual void startingSweepSelection();
183 
191  virtual bool canChangeAltitudeOf(const DtEntityType& et) const;
192 
193  protected:
194 
196  virtual bool canBoxSelectEntity(const makVrv::DtUniqueID& id) const;
197 
198  virtual void slot_onCurrentSelectionChanged(
199  const makVrv::DtSelectionManager::IdSet& selected,
200  const makVrv::DtSelectionManager::IdSet& deselected);
201 
202  virtual void slot_deInitialized(makVrv::DtDe&);
203 
204  virtual void slot_onAttributesChanged( const makVrv::DtElementAttributeManager::EntryAttributesList& signalList );
205 
206  virtual void completeAggregateSelectionChange(makVrv::DtSelectionManager::IdSet deselect, makVrv::DtSelectionManager::IdSet select);
207 
208  public:
209  boost::signals2::signal<void (const DtVector&)> signal_lastDatabaseLocationSet;
210  boost::signals2::signal<void (makVrv::DtElementID)> signal_showInformationFor;
211  boost::signals2::signal<void ()> signal_selectionPushed;
212  boost::signals2::signal<void ()> signal_selectionPopped;
213  boost::signals2::signal<void ()> signal_selectionAboutToBePopped;
214 
215  protected:
222 
223  std::set<makVrv::DtUniqueID> myEntityUniqueIDNotBoxSelectable;
224  std::vector<DtEntityType> myEntityTypeNotBoxSelectable;
225 
226  typedef std::vector<makVrv::DtSelectionManager::IdSet> Selections;
228 
230  boost::signals2::scoped_connection mySelectionChangedConnection;
231  };
232 }
makVrv::DtSelectionManager::IdSet mySelectionsInScreenBox
Definition: vrfSelectionHandler.h:229
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:209
DtVector myLastDatabaseLocation
Definition: vrfSelectionHandler.h:219
bool myAllowNonVrfItemsToBeManipulated
Definition: vrfSelectionHandler.h:220
boost::signals2::signal< void()> signal_selectionPushed
Definition: vrfSelectionHandler.h:211
Contains makVrv:DtSelectionManager class.
std::set< makVrv::DtUniqueID > myEntityUniqueIDNotBoxSelectable
Definition: vrfSelectionHandler.h:223
Contains the DtUUID class declaration.
#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
boost::signals2::signal< void()> signal_selectionAboutToBePopped
Definition: vrfSelectionHandler.h:213
boost::signals2::scoped_connection mySelectionChangedConnection
Definition: vrfSelectionHandler.h:230
The abstract Channel Class.
Definition: DtChannel.h:35
std::vector< DtEntityType > myEntityTypeNotBoxSelectable
Definition: vrfSelectionHandler.h:224
Contains makVrv::DtVirtualBaseClass class.
Functionality added to allow developers to more easily get information about currently selected items...
Definition: vrfSelectionHandler.h:42
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:44
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtSignalConnectionManager myConnections
Definition: vrfSelectionHandler.h:218
makVrv::DtDe & myDe
Definition: vrfSelectionHandler.h:216
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &selected)> signal_currentSelectionChanged
Definition: vrfSelectionHandler.h:56
Selections mySelections
Definition: vrfSelectionHandler.h:227
makVrv::DtSelectionManager::IdSet myLastSelection
Definition: vrfSelectionHandler.h:217
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:76
Contains makVrv::DtElementChanges class.
boost::signals2::signal< void()> signal_selectionPopped
Definition: vrfSelectionHandler.h:212
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
bool myBlockAggregateSelectionChanges
Definition: vrfSelectionHandler.h:221
boost::signals2::signal< void(makVrv::DtElementID)> signal_showInformationFor
Definition: vrfSelectionHandler.h:210
std::vector< makVrv::DtSelectionManager::IdSet > Selections
Definition: vrfSelectionHandler.h:226

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)