Skip to content
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:

ParameterDefaultDescription
Spindle and WheelFalseWhen enabled the Spindle and Wheel technique will activate allowing rotation on the pitch axis. More information here.
InteractionObjectInteractionPointThe point of interaction for spindle

For Spindle Interactor Script:

ParameterDefaultDescription
Interaction LayersPickableObjectThe layers that the technique can interact with
Colliding ObjectNoneThe currently Hovered over object
Object In HandNoneCurrent object selected
Selected Object()EmptyInvoked when object is selected
Dropped Object()EmptyInvoked when object is Dropped
Hovered()EmptyEvent Invoked when an object is hovered over
UnHovered()EmptyEvent 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