24 #include <boost/archive/xml_iarchive.hpp>
25 #include <boost/archive/xml_oarchive.hpp>
26 #include <boost/serialization/access.hpp>
27 #include <boost/serialization/nvp.hpp>
28 #include <boost/serialization/list.hpp>
29 #include <boost/serialization/map.hpp>
30 #include <boost/serialization/vector.hpp>
31 #include <boost/serialization/string.hpp>
33 #include <vlutil/vlSmartPointers.h>
67 virtual void createSelectionGroup(
const std::string&,
bool signal =
true);
72 virtual void createSelectionGroupFromCurrentSelection(
const std::string& groupName,
bool select =
false);
75 virtual void clearSelectionGroup(
const std::string&);
78 virtual void removeSelectionGroup(
const std::string&);
81 virtual bool hasSelectionGroup(
const std::string&)
const;
85 virtual void renameSelectionGroup(
const std::string& from,
const std::string& to);
88 virtual void addItemToSelectionGroup(
const std::string&,
const DtUUID&,
bool signal =
true);
91 virtual bool atLeastOneItemNotInSelectionGroup(
const std::string&,
const GroupItems& names)
const;
92 virtual bool atLeastOneItemNotInSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names)
const;
95 virtual bool anyItemsInSelectionGroup(
const std::string&,
const GroupItems& names)
const;
96 virtual bool anyItemsInSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names)
const;
99 virtual void addItemsToSelectionGroup(
const std::string&,
const GroupItems& names,
bool signal =
true);
100 virtual void addItemsToSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names,
bool signal =
true);
103 virtual bool itemInAnySelectionGroup(
const DtUUID&)
const;
106 virtual void removeItemFromSelectionGroup(
const std::string&,
const DtUUID&);
109 virtual void removeItemsFromSelectionGroup(
const std::string&,
const GroupItems& names);
110 virtual void removeItemsFromSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names);
116 virtual bool load(
const std::string&);
119 virtual bool save(
const std::string&);
122 virtual std::string toStringBuffer();
125 virtual bool fromStringBuffer(
const std::string&);
128 virtual void removeAll();
131 virtual GroupItems itemsInSelectionGroup(
const std::string&)
const;
134 virtual bool itemIsInSelectionGroup(
const std::string& group,
const DtUUID&)
const;
138 virtual void selectItemsInSelectionGroup(
const std::string&);
141 virtual const std::string& selectedSelectionGroup()
const;
144 virtual void processCreateSelectionGroup(
DtSimMessage*);
148 virtual bool canRenameSelectionGroup(
const std::string&)
const;
151 virtual void allScenarioObjectsDiscovered();
201 friend class boost::serialization::access;
206 template<
class Archive>
207 void serialize(Archive & ar,
const unsigned int version)
211 ar & BOOST_SERIALIZATION_NVP(mySelectionGroupsUUID);
215 typedef std::set<std::string> OldGroupItems;
216 typedef std::map<std::string, OldGroupItems> OldSelectionGroups;
218 OldSelectionGroups mySelectionGroups;
220 ar & BOOST_SERIALIZATION_NVP(mySelectionGroups);
222 if (Archive::is_loading::value)
224 OldSelectionGroups::const_iterator iter = mySelectionGroups.begin();
225 bool hasItems =
false;
227 while (iter != mySelectionGroups.end())
230 OldGroupItems::const_iterator oldIter = iter->second.begin();
232 while (oldIter != iter->second.end())
237 newGroupItems.insert(uuid);
241 hasItems |= (newGroupItems.size() != 0);
242 mySelectionGroupsUUID[iter->first] = newGroupItems;
248 myWaitingForDiscovery =
true;
boost::signals2::signal< void()> signal_loading
Signal sent before the selection group manager is loaded.
Definition: selectionGroupManager.h:179
UUID is a unique ID wrapper class.
Definition: uuid.h:59
makVrv::DtSignalConnectionManager myConnectionManager
Definition: selectionGroupManager.h:257
makVrv::DtDe & myDe
Definition: selectionGroupManager.h:255
boost::signals2::signal< void(DtUUID)> signal_itemRemovedFromGroups
Signal sent when the item is removed from all selection groups.
Definition: selectionGroupManager.h:176
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:28
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
SelectionGroups mySelectionGroupsUUID
Definition: selectionGroupManager.h:256
std::set< DtUUID > GroupItems
Definition: selectionGroupManager.h:53
virtual void setForce(int) override
Definition: selectionGroupManager.h:276
Definition: DtKeyMapManager.h:46
Contains makVrv::DtElementData class.
Contains the DtUUID class declaration.
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
FunctionCategory
Definition: DtKeyMapManager.h:35
boost::signals2::signal< void()> signal_selectionGroupsCleared
Signal sent when the selection group manager is cleared.
Definition: selectionGroupManager.h:185
boost::signals2::signal< void(std::string)> signal_selectionGroupAdded
Signals for selection group manager.
Definition: selectionGroupManager.h:158
const makVrv::DtKeyMapManager::FunctionCategory DtSelectionGroupFunctionCategory
Definition: selectionGroupManager.h:44
boost::signals2::signal< void(std::string)> signal_selectionGroupRemoved
Signal sent when a selection group is removed.
Definition: selectionGroupManager.h:164
std::string mySelectedSelectionGroup
Definition: selectionGroupManager.h:258
boost::signals2::signal< void(std::string)> signal_selectionGroupCleared
Signal sent when a selection group is cleared of all its items.
Definition: selectionGroupManager.h:167
static const DtUUID & nullUUID()
Contains makVrv::DtVirtualBaseClass class.
std::map< std::string, GroupItems > SelectionGroups
Definition: selectionGroupManager.h:54
boost::signals2::signal< void(std::string, GroupItems)> signal_itemsAddedToSelectionGroup
Signal sent when items are added to a selection group.
Definition: selectionGroupManager.h:170
boost::signals2::signal< void()> signal_loaded
Signal sent after the selection group manager is loaded.
Definition: selectionGroupManager.h:182
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: selectionGroupManager.h:207
File: simMsg.h.
Definition: simMessage.h:35
The DtSelectionGroupManager class is the interface to be used when creating selection group...
Definition: selectionGroupManager.h:50
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::signals2::signal< void(std::string)> signal_selectionGroupSelected
Signal emitted when current selection group has changed.
Definition: selectionGroupManager.h:191
Contains makVrv::DtKeyMapManager class.
boost::signals2::signal< void(std::string, std::string)> signal_selectionGroupRenamed
Signal sent when a selection group is renamed.
Definition: selectionGroupManager.h:161
DtSelectionGroupManager & mySelectionGroupManager
Definition: selectionGroupManager.h:282
Base class to provide boost signal/slot management.
Contains makVrv::DtElementAttributes class.
Contains makVrv::DtUniqueID type.
boost::signals2::signal< void(std::string, std::string)> signal_itemRenamed
Signal emitted when an item is renamed in a selection group.
Definition: selectionGroupManager.h:188
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
The DtVrfSelectionGroupFilter will be used in the selection group widget to show items contained with...
Definition: selectionGroupManager.h:264
bool myWaitingForDiscovery
Definition: selectionGroupManager.h:259
boost::signals2::signal< void(std::string, GroupItems)> signal_itemsRemovedFromSelectionGroup
Signal sent when items are removed from a selection group.
Definition: selectionGroupManager.h:173
virtual void setStringUUID(const DtString &)
Replaces whatever boost UUID has been created (or not) with a string UUID. If the VRF_UUID: is not pr...