SDL_HapticDirection Struct Reference

Structure that represents a haptic direction. More...

#include <SDL_haptic.h>


Data Fields

Uint8 type
Uint16 dir [3]


Detailed Description

Structure that represents a haptic direction.

Directions can be specified by:

Cardinal directions of the haptic device are relative to the positioning of the device. North is considered to be away from the user.

The following diagram represents the cardinal directions:

              .--.
              |__| .-------.
              |=.| |.-----.|
              |--| ||     ||
              |  | |'-----'|
              |__|~')_____('
                [ COMPUTER ]


                  North (0,-1)
                      ^
                      |
                      |
 (1,0)  West <----[ HAPTIC ]----> East (-1,0)
                      |
                      |
                      v
                   South (0,1)


                   [ USER ]
                     \|||/
                     (o o)
               ---ooO-(_)-Ooo---

If type is SDL_HAPTIC_POLAR, direction is encoded by hundredths of a degree starting north and turning clockwise. SDL_HAPTIC_POLAR only uses the first dir parameter. The cardinal directions would be:

If type is SDL_HAPTIC_CARTESIAN, direction is encoded by three positions (X axis, Y axis and Z axis (with 3 axes)). SDL_HAPTIC_CARTESIAN uses the first three dir parameters. The cardinal directions would be:

If type is SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. The first two dir parameters are used. The dir parameters are as follows (all values are in hundredths of degrees): 1) Degrees from (1, 0) rotated towards (0, 1). 2) Degrees towards (0, 0, 1) (device needs at least 3 axes).

Example of force coming from the south with all encodings (force coming from the south means the user will have to pull the stick to counteract):

 SDL_HapticDirection direction;

 // Cartesian directions
 direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding.
 direction.dir[0] = 0; // X position
 direction.dir[1] = 1; // Y position
 // Assuming the device has 2 axes, we don't need to specify third parameter.

 // Polar directions
 direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding.
 direction.dir[0] = 18000; // Polar only uses first parameter

 // Spherical coordinates
 direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding
 direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters.

See also:
SDL_HAPTIC_POLAR

SDL_HAPTIC_CARTESIAN

SDL_HAPTIC_SPHERICAL

SDL_HapticEffect

SDL_HapticNumAxes


Field Documentation

Uint16 dir[3]

The encoded direction.

The type of encoding.


The documentation for this struct was generated from the following file:

Generated on Mon Sep 21 21:32:25 2009 for Simple DirectMedia Layer by  doxygen 1.5.8