Abstract base class for raycast calculation algorithms Includes smoothing

Hierarchy (view full)

Constructors

Properties

camera: default = ...
directionOneEuroFilter: OneEuroFilterVec3 = ...

Direction and locus filters can be dynamically adjusted together with the same magnitude, if pinch stabilization smoothing is turned on.

hand: BaseHand
handProvider: HandInputData = SIK.HandInputData
handZOneEuroFilter: OneEuroFilter = ...
knuckleOneEuroFilter: OneEuroFilterVec3 = ...
locusOneEuroFilter: OneEuroFilterVec3 = ...
shoulderOneEuroFilter: OneEuroFilterVec3 = ...
wristOneEuroFilter: OneEuroFilterVec3 = ...

Methods

  • Calculates anchor for the raycast, used for calculating both wrist and shoulder targeting Can toggle whether or not smoothing should be used for the raycast anchor in the Script UI.

    Parameters

    Returns vec3

  • Calculates the interaction locus, where the ray cursor base is placed.

    Parameters

    Returns vec3

  • Calculates the measured and filtered average Z value of stab hand landmarks

    Parameters

    Returns {
        filteredZAverage: number;
        zAverage: number;
    }

    • filteredZAverage: number
    • zAverage: number
  • Calculates corrected hand landmark positions using the measured and smoothed average Z values of stub

    Parameters

    • cameraToWorld: mat4
    • avgZ: number
    • filteredAvgZ: number
    • worldPos: vec3

    Returns vec3

  • Update locus, direction, and camera position (or null if required hand landmarks are not tracked).

    Returns RaycastInfo

  • Filters the palm landmark if pre-filtering is selected & returns its position in world space This is used to help mitigate the increased jitter for Matador wrist landmarks

    Returns vec3

  • Can be used to reset inner states Should be called when the hand is not tracked or targeting is blocked

    Returns void