SelectionTool (interface)

バージョン 2.0 で追加.

SelectionTool declares the methods needed to manages the Highlight/selection in the scene. The selection tool has to be specialized over the different renderers/viewports. Only one Selection tool is needed in the application.

The SelectionTool references all the ToolDispatcher and each ToolDispatcher has a weak reference to the SelectionTool, It’s used to to update the tools’ target when the selection changes.

SelectionTool SelectionTool SelectionTool

Functions

  clearHighlightSet ! ()
Boolean isDragging ? ()
  registerToolDispatcher ! ( in Ref<ToolDispatcher> toolDispatcher )
  setDragging ! ( in Boolean dragging )
  unregisterToolDispatcher ! ( in Ref<ToolDispatcher> toolDispatcher )
  updateHighlightSet ! ( io MouseEvent event )
  updateSelectionSet ! ( io MouseEvent event, in Boolean multiSelection, in Boolean keepAdding )

Functions in detail

SelectionTool.clearHighlightSet! ()

Resets the higlight set, needed to not poluate the view.


Boolean SelectionTool.isDragging? ()

Tells that it is a drag event. TODO: have a drag event type.


SelectionTool.registerToolDispatcher! ( in Ref<ToolDispatcher> toolDispatcher )

Registers a ToolDispatcher.

toolDispatcher Reference to a tool dispatcher.


SelectionTool.setDragging! ( in Boolean dragging )

Tells that it is a drag event. TODO: have a drag event type.


SelectionTool.unregisterToolDispatcher! ( in Ref<ToolDispatcher> toolDispatcher )

Unregisters a ToolDispatcher.

toolDispatcher Reference to a tool dispatcher.


SelectionTool.updateHighlightSet! ( io MouseEvent event )

Updates the higlight set with the raycast result at mouse event position.

event The mouse’s events


SelectionTool.updateSelectionSet! ( io MouseEvent event, in Boolean multiSelection, in Boolean keepAdding )

Updates the selection set with the raycast result at mouse event position.

event The mouse’s event.
multiSelection If true, multi-selection (Ctrl).
keepAdding If true, multi-selection + Kepp adding (Shift).