VR-Forces 4.7 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>
23 #include <vrvCore/DtElementData.h>
25 
26 #include <vlpi/entityType.h>
27 #include <boost/signal.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::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) 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 
171  protected:
172 
174  virtual bool canBoxSelectEntity(const makVrv::DtUniqueID& id, const makVrv::DtVrlinkSimulatedBaseState* state) const;
175 
176  virtual void slot_onCurrentSelectionChanged(
177  const makVrv::DtSelectionManager::IdSet& selected,
178  const makVrv::DtSelectionManager::IdSet& deselected);
179 
180  virtual void slot_onObjectEntryAdded(makVrv::DtSimObjectEntry&);
181 
184  virtual void slot_onSimStateAdded(makVrv::DtSimObjectEntry& entry);
185 
186  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
187 
188  virtual void slot_deInitialized(makVrv::DtDe&);
189 
190  virtual void slot_onAttributesChanged( const makVrv::DtElementData::EntryAttributesList& signalList );
191 
192  virtual void completeAggregateSelectionChange(makVrv::DtSelectionManager::IdSet deselect, makVrv::DtSelectionManager::IdSet select);
193 
194  public:
195  boost::signal<void (const DtVector&)> signal_lastDatabaseLocationSet;
196  boost::signal<void (makVrv::DtElementID)> signal_showInformationFor;
197 
198  protected:
206 
207  std::set<makVrv::DtUniqueID> myEntityUniqueIDNotBoxSelectable;
208  std::vector<DtEntityType> myEntityTypeNotBoxSelectable;
209  };
210 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)