![]() |
VR-Forces 4.10 Class Documentation
|
The master window of the scene. More...

Public Types | |
| enum | SelectionMode { SelectionModeAll = 0, SelectionModeEntities = 1, SelectionModeTerrain = 2 } |
| enum | SelectionType { NoValidSelection, Entity, Prop, BuoyOrBeacon, Terrain, Aggregate, Observer, ControlObject, OverlayObject, Intervisibility, Feature, Mixed } |
| The nature of the current selection. More... | |
| enum | SelectionOperation { NoOperation = 0, AddToSelection, RemoveFromSelection, MultipleSelection, SetSelection, ClearSelection, MaintainSelectionIfSelected } |
| typedef std::set< DtUniqueID > | IdSet |
Public Member Functions | |
| virtual | ~DtSelectionManager () |
| DTOR. More... | |
| virtual void | performSelectionOperation (SelectionOperation op, const IdSet &ids) |
| Utility function for specify the operation using a variable. More... | |
| virtual void | setCurrentSelections (const IdSet &selections) |
| set the current selection set More... | |
| virtual void | setCurrentHovered (const DtUniqueID &sceneObjId, bool hovered) |
| Announce whether a widget associated with some scene object is being hovered over with the mouse cursor. More... | |
| const DtSelectionManager::IdSet & | currentSelections () const |
| get the current selection set More... | |
| virtual void | addToCurrentSelection (const IdSet &adds) |
| add to the current selection set More... | |
| virtual void | maintainCurrentSelectionIfSelected (const IdSet &maintain) |
| If item is already selected, maintain the current selection, else act as SetSelection. More... | |
| virtual void | removeFromCurrentSelection (const IdSet &removes) |
| add to the current selection set More... | |
| virtual void | toggleFromCurrentSelection (const IdSet &toggles) |
| Each id current not selected will be selected and each id already selected will be deselected. More... | |
| virtual void | removeFromCurrentSelection (const DtElementData::UniqueIdList &removes) |
| add to the current selection set More... | |
| SelectionMode | selectionMode () const |
| Selection Mode. More... | |
| virtual void | setSelectionMode (SelectionMode mode) |
| virtual bool | isSelectable (DtUniqueID id) const |
| Determine an element's selectability Determines, based on the element's type and current selection mode, if the object is selectable. More... | |
| virtual bool | isSelectable (const DtElementEntry *entry) const |
| Determine an object's selectability. More... | |
| bool | isSelected (DtUniqueID id) const |
| Check to see if an object is selected. More... | |
| virtual SelectionType | selectionType () const |
| virtual bool | propSelectionHasNonReplacedProp () |
| check to see if any of the selected props are not replaced props More... | |
| virtual bool | propSelectionMajorityTransparent () |
| Is the majority of selected props transparent or opaque; used by toggle transparency selected. More... | |
| virtual void | slot_onElementsRemoved (const DtElementData::UniqueIdList &elementIds) |
| Called by signal whenever elements are removed. More... | |
| virtual void | backupCurrentSelection () |
| Puts the current selection onto the backup queue. More... | |
| virtual bool | restoreCurrentSelection () |
| Restores a previously backed up selection. More... | |
| bool | selectionIsVertex (const IdSet &selection) |
| bool | objectIsVertex (const DtUniqueID &id) |
| DtUniqueID | parentId (const DtUniqueID &id) |
| virtual bool | allItemsWantVertexSelection (const IdSet &) const |
| Returns true if the items in the selection set are vertices and the vertices parents all want vertex selection. More... | |
| virtual void | addWantsVertexSelection (DtElementEntry::ElementType) |
| Adds an item to the wants to have vertex selection list. More... | |
| virtual void | removeWantsVertexSelection (DtElementEntry::ElementType) |
| Removes an item to the wants to have vertex selection list. More... | |
| virtual bool | wantsVertexSelection (DtElementID) const |
| Returns true if the object type wants vertex selection. More... | |
| virtual void | addSelectableObjectType (DtElementEntry::ElementType type, SelectionMode=SelectionModeAll) |
| {@ More... | |
| virtual void | removeSelectableObjectType (DtElementEntry::ElementType type, SelectionMode) |
| virtual void | removeSelectableObjectTypeFromAllModes (DtElementEntry::ElementType type) |
| virtual bool | objectTypeSelectable (DtElementEntry::ElementType type, SelectionMode mode) const |
| virtual bool | objectTypeSelectable (DtElementEntry::ObjectType type) const |
| Uses current selection mode to see if object type is selectable. More... | |
Public Member Functions inherited from makVrv::DtVirtualBaseClass | |
| DtVirtualBaseClass () | |
| Do nothing constructor. More... | |
| virtual | ~DtVirtualBaseClass () |
| Virtual do nothing destructor. More... | |
Static Public Member Functions | |
| static DtSelectionManager & | instance (DtDe &de) |
| Get the selection manager instance. More... | |
| static SelectionOperation | selectionOperationForMouseEvent (const DtMouseEvent &mouseEvent) |
| Choose the appropriate selection operation based on the mouse event. More... | |
| static bool | typeSupportsMultipleSelection (DtElementEntry::ObjectType type, bool vertexSelectsParent) |
| Check to see if an object type supports multiple selection. More... | |
Public Attributes | |
| boost::signalslib::signal < void(const DtElementID &entityId, bool hasMouseCursor)> | signal_elementHasMouseCursorStateChanged |
| Emitted when an element's scene object is being hovered over by the mouse cursor. More... | |
| boost::signalslib::signal < void(const IdSet &selected, const IdSet &deselected, SelectionType newType, SelectionType oldType)> | signal_currentSelectionChanged |
| Emited when the current selection changes. More... | |
| boost::signalslib::signal < void(const DtUniqueID &id, const DtUniqueID &parentId)> | signal_vertexSelected |
| Special case: emitted in addition to of currentSelectionChanged when a vertex is selected. More... | |
| boost::signalslib::signal < void(const DtUniqueID &id, const DtUniqueID &parentId)> | signal_vertexDeselected |
| Special case: emitted in addition to currentSelectionChanged when a vertex is deselected. More... | |
| boost::signalslib::signal < void(const IdSet &entityIds)> | signal_entityInfoToggled |
| Emitted when the selected entities have their info pin state toggled Perhaps this signal doesn't belong here... More... | |
| boost::signalslib::signal < void(const DtUniqueID &, const DtColorValue &, bool)> | signal_entityTrackHistoryColorOverride |
| Emitted when the selected entity has its track history color changed. More... | |
| boost::signalslib::signal< void()> | signal_selectionModeChanged |
| Emited when the selection mode changes. More... | |
Protected Types | |
| typedef std::set < DtElementEntry::ElementType > | WantsVertexSelection |
| typedef std::set < DtElementEntry::ElementType > | ElementTypeSet |
| typedef boost::unordered_map < SelectionMode, ElementTypeSet > | SelectionModeMap |
| typedef std::queue< IdSet > | IdSetQueue |
Protected Member Functions | |
| DtSelectionManager (DtDe &de) | |
| CTOR. More... | |
| void | addToCurrentSelection (DtUniqueID id) |
| add to the current selection set More... | |
| void | removeFromCurrentSelection (DtUniqueID id) |
| add to the current selection set More... | |
| void | announceCurrentSelectionChanged (const IdSet &selected, const IdSet &deselected, SelectionType oldType) |
| Announce the selection changes by emitting signals. More... | |
| void | updateSelectionDisplay (const IdSet &selected, const IdSet &deselected) |
| void | updateSelectionType () |
| SelectionType | elementSelectionType (DtElementEntry *entry) const |
| Get the selection type for an element. More... | |
| void | convertVertexIdsToParentIds (const IdSet &in, IdSet &out) |
Protected Attributes | |
| DtDe & | myDe |
| IdSet | myCurrentSelections |
| SelectionMode | mySelectionMode |
| bool | myIgnoreSelectionChanges |
| Set when a signal is raised to avoid loops. More... | |
| bool | myIgnoreSelectionModeChanges |
| SelectionType | mySelectionType |
| IdSetQueue | myBackupSelections |
| WantsVertexSelection | myWantsVertexSelection |
| SelectionModeMap | mySelectionModeMap |
| DtSignalConnectionManager | mySignals |
The master window of the scene.
| typedef std::set<DtUniqueID> makVrv::DtSelectionManager::IdSet |
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
DTOR.
|
protected |
CTOR.
|
static |
Get the selection manager instance.
|
virtual |
Utility function for specify the operation using a variable.
Reimplemented in makVrf::DtVrfSelectionManager.
|
virtual |
set the current selection set
|
virtual |
Announce whether a widget associated with some scene object is being hovered over with the mouse cursor.
This function finds the DtElementID of the scene object from its scene object id and emits signal_elementHasMouseCursorStateChanged(elementId, hovered). This function will do nothing if the element ID cannot be determined.
| const DtSelectionManager::IdSet& makVrv::DtSelectionManager::currentSelections | ( | ) | const |
get the current selection set
|
virtual |
add to the current selection set
|
virtual |
If item is already selected, maintain the current selection, else act as SetSelection.
This will only be true if all items are currently selected in the supplied set
|
virtual |
add to the current selection set
|
virtual |
Each id current not selected will be selected and each id already selected will be deselected.
|
virtual |
add to the current selection set
| SelectionMode makVrv::DtSelectionManager::selectionMode | ( | ) | const |
Selection Mode.
|
virtual |
|
virtual |
Determine an element's selectability Determines, based on the element's type and current selection mode, if the object is selectable.
This form needs to look up the element, so it's better to use the form with a DtElementEntry argument if you have it.
|
virtual |
Determine an object's selectability.
Determines, based on the object's type and current selection mode, if the object is selectable.
| bool makVrv::DtSelectionManager::isSelected | ( | DtUniqueID | id | ) | const |
Check to see if an object is selected.
|
virtual |
|
virtual |
check to see if any of the selected props are not replaced props
|
virtual |
Is the majority of selected props transparent or opaque; used by toggle transparency selected.
|
virtual |
Called by signal whenever elements are removed.
|
virtual |
Puts the current selection onto the backup queue.
|
virtual |
Restores a previously backed up selection.
If there are no selections backed up, returns false
| bool makVrv::DtSelectionManager::objectIsVertex | ( | const DtUniqueID & | id | ) |
| DtUniqueID makVrv::DtSelectionManager::parentId | ( | const DtUniqueID & | id | ) |
|
virtual |
Returns true if the items in the selection set are vertices and the vertices parents all want vertex selection.
Element types can be added to vertex selection by calling addWantsVertexSelection(). To remove, call removeWantsVertexSelection()
|
virtual |
Adds an item to the wants to have vertex selection list.
|
virtual |
Removes an item to the wants to have vertex selection list.
|
virtual |
Returns true if the object type wants vertex selection.
|
virtual |
{@
Manages types that are valid for certain selection modes
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Uses current selection mode to see if object type is selectable.
|
static |
Choose the appropriate selection operation based on the mouse event.
|
static |
Check to see if an object type supports multiple selection.
Since it matters if we're currently selecting our parent with vertices and since this function is static, that must be passed in
|
protected |
add to the current selection set
|
protected |
add to the current selection set
|
protected |
Announce the selection changes by emitting signals.
|
protected |
|
protected |
|
protected |
Get the selection type for an element.
|
protected |
| boost::signalslib::signal<void (const DtElementID& entityId, bool hasMouseCursor)> makVrv::DtSelectionManager::signal_elementHasMouseCursorStateChanged |
Emitted when an element's scene object is being hovered over by the mouse cursor.
| boost::signalslib::signal<void (const IdSet& selected, const IdSet& deselected, SelectionType newType, SelectionType oldType)> makVrv::DtSelectionManager::signal_currentSelectionChanged |
Emited when the current selection changes.
| boost::signalslib::signal<void (const DtUniqueID& id, const DtUniqueID& parentId)> makVrv::DtSelectionManager::signal_vertexSelected |
Special case: emitted in addition to of currentSelectionChanged when a vertex is selected.
| boost::signalslib::signal<void (const DtUniqueID& id, const DtUniqueID& parentId)> makVrv::DtSelectionManager::signal_vertexDeselected |
Special case: emitted in addition to currentSelectionChanged when a vertex is deselected.
| boost::signalslib::signal<void (const IdSet& entityIds)> makVrv::DtSelectionManager::signal_entityInfoToggled |
Emitted when the selected entities have their info pin state toggled Perhaps this signal doesn't belong here...
| boost::signalslib::signal<void(const DtUniqueID&, const DtColorValue&, bool)> makVrv::DtSelectionManager::signal_entityTrackHistoryColorOverride |
Emitted when the selected entity has its track history color changed.
| boost::signalslib::signal<void ()> makVrv::DtSelectionManager::signal_selectionModeChanged |
Emited when the selection mode changes.
|
protected |
|
protected |
|
protected |
|
protected |
Set when a signal is raised to avoid loops.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |