zenilib: SDL_HapticDirection Struct Reference

zenilib 0.5.3.0

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Attributes | List of all members
SDL_HapticDirection Struct Reference

Structure that represents a haptic direction. More...

`#include <SDL_haptic.h>`

## Public Attributes

Sint32 | dir [3]
Uint8 | type

## Detailed Description

Structure that represents a haptic direction.

Directions can be specified by:

- SDL_HAPTIC_POLAR : Specified by polar coordinates.
- SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates.
- SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates.

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:

- North: 0 (0 degrees)
- East: 9000 (90 degrees)
- South: 18000 (180 degrees)
- West: 27000 (270 degrees)

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:

- North: 0,-1, 0
- East: -1, 0, 0
- South: 0, 1, 0
- West: 1, 0, 0

The Z axis represents the height of the effect if supported, otherwise it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you can use any multiple you want, only the direction matters.

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):

- Degrees from (1, 0) rotated towards (0, 1).
- 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

Definition at line 439 of file SDL_haptic.h.

## Member Data Documentation

Sint32 SDL_HapticDirection::dir[3]

The encoded direction.

Definition at line 442 of file SDL_haptic.h.

Uint8 SDL_HapticDirection::type

The type of encoding.

Definition at line 441 of file SDL_haptic.h.

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

- zenilib/jni/external/sdl/SDL/SDL_haptic.h