A major issue with far field targetging is that the ray jumps during pinching even if the hand remains still (aside from the movement of the fingers performing the pinch).

This class contains the logic to suppress this undesirable jump effect. It aims to handle this problem without freezing the ray so when the pinch is held out for longer periods, the possibility to drag or move the targeted object is still retained.

Constructors

Properties

deltaMode: DeltaMode = DeltaMode.IDLE
deltaMultiplier: number = 1
directionDelta: default = ...
directionLowpassFilter: LowPassFilterVec3_v2 = ...
hand: BaseHand
locusDelta: vec3 = ...
locusLowpassFilter: LowPassFilterVec3_v2 = ...
pinchDistance: number = null
pinchDistanceTimeSeries: TimedScalarContainer = ...
pinchSpeed: number = null
stableFingerRootsAverageDistance: TimedScalarContainer = ...
stableFingerRootsTimeSeries: TimedVec2Container[] = []

Accessors

  • get knuckleSmoothingSpace(): string
  • Returns string

    the name of the selected space where knuckles are transformed from world to be smoothed.

Methods

  • Applies suppression to the given ray by returning its modified value.

    Parameters

    • direction: vec3

      the direction of the ray to work on

    • locus: vec3

      the locus of the ray to work on

    Returns RayData

    the components of the ray after applying suppression to them.

  • Determines the necessary suppression for the current frame

    Parameters

    • knuckleSmoothingSpaceFromWorld: mat4

      smoothingSpace-from-world transformation

    Returns void