Class SoControllerButtonEvent


  • public class SoControllerButtonEvent
    extends SoButtonEvent
    Controller button press and release event. SoControllerButtonEvent represents controller button press and release events in the Open Inventor event model. A controller device generally has associated 3D tracker information.

    A "tracker" is any device whose position and orientation are dynamically tracked in 3D, typically for immersive VR applications. For example: a head tracker. A "controller" is an input device which typically has buttons and/or valuators (e.g. a joystick). Many controllers have an associated tracker. For example, the commonly used "wand" input device has three buttons, a two-axis joystick (two valuators), and an associated tracker.

    The virtual method SoEvent.getTrackerInfo() can be used to determine if an event object has associated tracker information. Traditional 2D events like SoMouseButtonEvent and SoLocation2Event return NULL. 3D events like SoTrackerEvent and SoControllerButtonEvent return a their associated tracker information (SbTrackerInfo).

    Many controller devices generate a continuous stream of data, so strictly speaking there are no "events". However Open Inventor classes that recognize the SoControllerButtonEvent interpret it as notification of a change in the button state (press or release). The application (or other software above Open Inventor) is responsible for deciding when to actually create an SoControllerButtonEvent.

    See Also:
    SbTrackerInfo, SoEvent, SoTrackerEvent
    • Constructor Detail

      • SoControllerButtonEvent

        public SoControllerButtonEvent()
        Constructor.
    • Method Detail

      • setPosition3

        public void setPosition3​(SbVec3f p)
        Set position of associated tracker in world coordinates.
      • getRay

        public SbLine getRay()
        Get a ray for picking/intersecting. This is a convenience function.
      • setOrientation

        public void setOrientation​(float x,
                                   float y,
                                   float z)
        Set orientation value of associated tracker from Euler angles in radians (using the trackd convention Z*X*Y).
      • getPosition3

        public SbVec3f getPosition3()
        Get position of associated tracker in world coordinates.
      • setOrientation

        public void setOrientation​(SbVec3f axis,
                                   float angle)
        Set orientation value of associated tracker from axis and angle in radians.
      • getOrientation

        public SbRotation getOrientation()
        Get orientation of associated tracker as a standard Open Inventor rotation (quaternion).
      • setOrientation

        public void setOrientation​(SbRotation orientation)
        Set orientation value of associated tracker from an SbRotation.