Abstract
Protected
hintsThe hints for each pointer. The keys are pointer IDs, while the values are that pointer's hint.
Protected
Readonly
sourcesThe sources which this is assigned to
Protected
statesThe current state for each registered and enabled root. Contains whether each root is pressing, hovering, and which pointer is bound to it
Add a source. Assigns itself to the given source.
Abstract
castCast a ray in the world and get which root was intersected and where.
The world position where the ray is starting
A normalised vector representing the ray's direction. Not a euler rotation nor a quaternion
Returns a 3-tuple containing, in this order, the intersected root or null if none intersected, the normalised x axis of the intersection and the normalised y axis of the intersection. If no root was intersected, use bogus values for x and y
Get a pointer's hint.
The registered pointer ID
Returns the given pointer ID's hint. If the pointer ID is not registered, PointerHint.None is returned.
Receive a ray from a RayPointerSource.
The source's pointer ID, given when setting the source's sink
Is the pointer pressed? If null, then the last pressing state will be used. A bitmask where each set bit represents a different button being pressed
The world position where the ray is starting
A normalised vector representing the ray's direction. Not a euler rotation nor a quaternion
Is shift being pressed?
Is control being pressed?
Is alt being pressed?
Dispatch a LeaveRootEvent event to any root with the given pointer assigned. Event will only be dispatched if the root was being hovered. Pointer will also be unassigned from root.
The registered pointer ID
Dispatch a LeaveRootEvent event to a given root. Event will only be dispatched if the root was being hovered.
The registered pointer ID
Returns true if the event was captured
Dispatch a pointer event to a given root. The type of PointerEvent is decided automatically based on the root's state and whether its pressing or not.
If null, the last pressing state is used, meaning that the pressing state has not changed. Useful if getting pointer movement in an event based environment where you only know when a pointer press occurs, but not if the pointer is pressed or not
The registered pointer ID
The normalised (non-integer range from 0 to 1) X coordinate of the pointer event. 0 is the left edge of the root, while 1 is the right edge of the root.
The normalised (non-integer range from 0 to 1) Y coordinate of the pointer event. 0 is the top edge of the root, while 1 is the bottom edge of the root.
Is the pointer pressed? If null, then the last pressing state will be used. A bitmask where each set bit represents a different button being pressed
Is shift being pressed?
Is control being pressed?
Is alt being pressed?
Returns true if the pointer event was captured.
Dispatches a leave-root event for the disabled root and deletes the state of the disabled root from PointerDriver#states.
Creates a state for the enabled root in PointerDriver#states.
Hook called by Root#dispatchEvent
Hook called by Root#requestFocus and Root#clearFocus
Register a new pointer.
If true, then dragging will result in PointerWheelEvent events if no widget captures the events.
Returns PointerDriver#nextPointerID and increments it
Protected
setSet a pointer's hint.
The registered pointer ID
The new pointer hint
Returns true if the pointer hint changed, else, false
Hook called by Root#preLayoutUpdate
Dispatch a mouse wheel event in a given 2D direction. Event will only be dispatched if the root was being hovered.
The registered pointer ID
The normalised (non-integer range from 0 to 1) X coordinate of the pointer event. 0 is the left edge of the root, while 1 is the right edge of the root.
The normalised (non-integer range from 0 to 1) Y coordinate of the pointer event. 0 is the top edge of the root, while 1 is the bottom edge of the root.
How much was scrolled horizontally, in pixels
How much was scrolled vertically, in pixels
How much was scrolled in the Z axis, in pixels. Rarely used
How the delta values should be interpreted
Is shift being pressed?
Is control being pressed?
Is alt being pressed?
Returns true if the pointer event was captured.
A PointerDriver which gets pointer events from raycasts in a 3D engine's world. This is an abstract class and must be implemented.