Skip to content

Spindle

Ian edited this page Nov 3, 2018 · 10 revisions

Overview

This technique simulates a virtual spindle controlled using two of the VR controllers. The center point of the spindle midpoint of the line between the controllers is the interaction point. Once you select and object both controllers can be moved to manipulate it. As stated by the paper this allows 3-DOF translations.

Manipulations allowed

  1. Moving the object while holding
  2. Rotating the yaw and roll of the object by rotating the hands relative to eachother
  3. By changing the distance between the controllers while holding the object you can scale and change the size of the object.

Source paper(s) of the technique:

Mapes, D., and J. Moshell (1995). “A Two-Handed Interface for Object Manipulation in Virtual Environments.” Presence: Teleoperators and Virtual Environments 4(4): 403–416.

Schultheis, U., J. Jerald, F. Toledo, A. Yoganandan, and P. Mlyniec (2012). “Comparison of a Twohanded Interface to a Wand Interface and a Mouse Interface for Fundamental 3D Tasks.” IEEE Symposium on 3D User Interfaces (3DUI 2012), 117–124.


Use by manually attaching

To manually attach the Spindle to the Camerarig VR components if the auto-attach fails:

  • Drag onto Spindle script:
    • Left and Right VR Cotnrollers ont TrackedObj 1 and TrackedObj 2
  • Drag onto the Spindle Interactor Script:
    • Left and Right VR Cotnrollers ont TrackedObj 1 and TrackedObj 2

Inspector parameters

For Spindle Script:

Parameter Default Description
Spindle and Wheel False When enabled the Spindle and Wheel technique will activate allowing rotation on the pitch axis. More information here.
InteractionObject InteractionPoint The point of interaction for spindle

For Spindle Interactor Script:

Parameter Default Description
Interaction Layers PickableObject The layers that the technique can interact with
Colliding Object None The currently Hovered over object
Object In Hand None Current object selected
Selected Object() Empty Invoked when object is selected
Dropped Object() Empty Invoked when object is Dropped
Hovered() Empty Event Invoked when an object is hovered over
UnHovered() Empty Event Invoked when an object ceases being hovered over

Test/Example scenes

Major example scene under:

  • Assets/Technique Example Scenes/Scenes/SpindleExample

Clone this wiki locally