OperatorBase
-
class
wv.Operators.OperatorBase() Base class for operators that handle mouse and touch input. It provides common functionality for tracking mouse and touch events, as well as button and key modifier mappings. It is a Base class with No-OP hook methods (non virtual interface), meaning that it provides a default implementation for all methods, but can be extended by child classes to override specific behavior.
Methods
-
wv.Operators.OperatorBase.addMapping() - addMapping(button:
Button, modifier:KeyModifiers?): voidAdds a button and key modifier mapping for the operator. If no mapping is provided, all combinations are considered valid. All mappings require a mouse button, but a key modifier is optional.
Parameters
button:
Buttonmodifier:
KeyModifiers= KeyModifiers.NoneReturns: void
-
wv.Operators.OperatorBase.checkMapping() - checkMapping(event:
MouseInputEvent): booleanChecks if the given mouse event matches any of the button and key modifier mappings for the operator. If no mappings are defined, it returns true.
Parameters
event:
MouseInputEventThe mouse event to check against the operator’s mappings.Returns: boolean
True if the event matches any mapping or if no mappings are defined, false otherwise.
-
wv.Operators.OperatorBase.clearMapping() - clearMapping(): void
Clears any button and key modifier mappings for the operator.
Returns: void
-
wv.Operators.OperatorBase.isActive() - isActive(): boolean
Checks if the operator is currently active, which is determined by whether the button and key modifier mapping is active or a touch event is active, and that a double click has not occurred and the context menu is not open.
Returns: boolean
True if the operator is active, false otherwise.
-
wv.Operators.OperatorBase.isDragging() - isDragging(): boolean
Checks if the operator is currently dragging.
Returns: boolean
True if the operator is dragging, false otherwise.
-
wv.Operators.OperatorBase.onDeactivate() - onDeactivate(): (void | Promise)
Called when the operator is deactivated. This method stops any ongoing interactions and resets the primary touch ID. It can be overridden by child classes to provide additional cleanup behavior when the operator is deactivated.
Returns: (void | Promise)
A promise that resolves when the deactivation process is complete, or void if no asynchronous operations are performed.
-
wv.Operators.OperatorBase.onDoubleClick() - onDoubleClick(_event:
MouseInputEvent): voidNO-OP method for handling double click events. By default, it does nothing, but child classes can override this method to provide specific behavior for double click events.
Parameters
_event:
MouseInputEventThe double click event to handle.Returns: void
-
wv.Operators.OperatorBase.onMouseDown() - onMouseDown(event:
MouseInputEvent): voidBase method for handling mouse down events. It tracks the time between mouse down events to determine if a double click has occurred, and checks the button and key modifier mapping to determine if the operator should be activated. If the operator is activated, it stores the initial mouse position and sets the dragging state to true.
Parameters
event:
MouseInputEventThe mouse down event to handle.Returns: void
-
wv.Operators.OperatorBase.onMouseMove() - onMouseMove(event:
MouseInputEvent): voidBase method for handling mouse move events. If the operator is active, it updates the current mouse position and, if dragging, increments the drag count. If this is the first drag event, it triggers the “beginInteraction” event on the viewer.
Parameters
event:
MouseInputEventThe mouse move event to handle.Returns: void
-
wv.Operators.OperatorBase.onMouseUp() - onMouseUp(_event:
MouseInputEvent): voidBase method for handling mouse up events. It stops the interaction if the operator is active, and resets the dragging state and drag count.
Parameters
_event:
MouseInputEventThe mouse up event to handle.Returns: void
-
wv.Operators.OperatorBase.onTouchEnd() - onTouchEnd(event:
TouchInputEvent): voidBase method for handling touch end events. If the touch event corresponds to the primary touch point, it emulates a mouse up event using the touch position and resets the primary touch ID. It also sets the event as handled based on the operator’s setHandled method.
Parameters
event:
TouchInputEventThe touch end event to handle.Returns: void
-
wv.Operators.OperatorBase.onTouchMove() - onTouchMove(event:
TouchInputEvent): PromiseBase method for handling touch move events. If the touch event corresponds to the primary touch point, it emulates a mouse move event using the touch position. It awaits the onMouseMove method to allow for asynchronous behavior in child classes.
Parameters
event:
TouchInputEventThe touch move event to handle.Returns: Promise
-
wv.Operators.OperatorBase.onTouchStart() - onTouchStart(event:
TouchInputEvent): voidBase method for handling touch start events. It tracks the primary touch point and emulates a mouse down event using the touch position. If there is already an active touch, it ignores additional touch start events.
Parameters
event:
TouchInputEventThe touch start event to handle.Returns: void
-
wv.Operators.OperatorBase.setHandled() - setHandled(): boolean
Base method for setting the handled state of events. By default, it returns false, but child classes can override this method to provide specific behavior for determining whether events should be marked as handled.
Returns: boolean
True if the event should be marked as handled, false otherwise.
-
wv.Operators.OperatorBase.setMapping() - setMapping(button:
Button, modifier:KeyModifiers?): voidSets the button and key modifier mapping for the operator.
Parameters
button:
Buttonmodifier:
KeyModifiers= KeyModifiers.NoneReturns: void
-
wv.Operators.OperatorBase.stopInteraction() Stops an operator from interacting with the scene.
stopInteraction(): voidStops the current interaction by triggering the “endInteraction” event on the viewer, and resets the dragging state, drag count, and button modifier active state.
Returns: void