XrdController

XrdController

Functions

Types and Values

Object Hierarchy

    GObject
    ╰── XrdController

Includes

#include <xrdesktop.h>

Description

Functions

xrd_controller_get_grab_state ()

XrdGrabState *
xrd_controller_get_grab_state (XrdController *self);

xrd_controller_get_handle ()

guint64
xrd_controller_get_handle (XrdController *self);

xrd_controller_get_hover_state ()

XrdHoverState *
xrd_controller_get_hover_state (XrdController *self);

xrd_controller_get_pointer ()

XrdPointer *
xrd_controller_get_pointer (XrdController *self);

xrd_controller_get_pointer_tip ()

XrdPointerTip *
xrd_controller_get_pointer_tip (XrdController *self);

xrd_controller_get_pose_hand_grip ()

void
xrd_controller_get_pose_hand_grip (XrdController *self,
                                   graphene_matrix_t *pose);

xrd_controller_new ()

XrdController *
xrd_controller_new (guint64 controller_handle);

xrd_controller_reset_grab_state ()

void
xrd_controller_reset_grab_state (XrdController *self);

xrd_controller_reset_hover_state ()

void
xrd_controller_reset_hover_state (XrdController *self);

xrd_controller_set_pointer ()

void
xrd_controller_set_pointer (XrdController *self,
                            XrdPointer *pointer);

xrd_controller_set_pointer_tip ()

void
xrd_controller_set_pointer_tip (XrdController *self,
                                XrdPointerTip *tip);

xrd_controller_update_pose_hand_grip ()

void
xrd_controller_update_pose_hand_grip (XrdController *self,
                                      graphene_matrix_t *pose);

Types and Values

XrdController

typedef struct _XrdController XrdController;

enum XrdTransformLock

The type of transformation the grab action is currently locked to. This will be detected at the begginging of a grab transformation and reset after the transformation is done.

Members

XRD_TRANSFORM_LOCK_NONE

The grab action does not currently have a transformation it is locked to.

 

XRD_TRANSFORM_LOCK_PUSH_PULL

Only push pull transformation can be performed.

 

XRD_TRANSFORM_LOCK_SCALE

Only a scale transformation can be performed.

 

XrdGrabState

typedef struct {
  XrdWindow    *window;

  /* window rotation, controller rotation, offset at the moment the window
   * was grabbed, enables keeping transform when grabbing a window.  */
  graphene_quaternion_t window_rotation;
  graphene_quaternion_t inverse_controller_rotation;
  graphene_point3d_t grab_offset;

  XrdTransformLock transform_lock;
} XrdGrabState;

XrdHoverState

typedef struct {
  XrdWindow        *window;
  graphene_matrix_t pose;
  float             distance;
  graphene_point_t  intersection_2d;
} XrdHoverState;

XRD_TYPE_CONTROLLER

#define XRD_TYPE_CONTROLLER xrd_controller_get_type()