Wiki Page Content

Differences between revisions 4 and 5
Revision 4 as of 2010-09-03 03:32:19
Size: 4270
Editor: SheenaSmith
Comment: update formatting - categories
Revision 5 as of 2010-10-11 22:37:30
Size: 4266
Editor: SheenaSmith
Comment: minor change
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
A structure that contains a ^description/definition of a^ haptic direction. ??? <<Color2(green,Does this structure define individual directions or a set of directions used by a particular device? Seems like you'd have to create an awful lot of these structures to make anything with any complexity. Am I understanding this correctly?)>> A structure that contains a ^template for a^ haptic direction ^effect^. ??? <<Color2(green,Does this structure define individual directions or a set of directions used by a particular device? Seems like you'd have to create an awful lot of these structures to make anything with any complexity. Am I understanding this correctly?)>>

DRAFT

SDL_HapticDirection

A structure that contains a template for a haptic direction effect. ??? green

Data Fields

Uint8

type

the type of encoding; see Remarks for details

Sint32

dir

the encoded direction; see Remarks for details

green

Code Examples

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.

Remarks

Cardinal directions of the haptic device are relative to the positioning of the device. North is considered to be away from the user. South is toward the user, east is right, and west is left of 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---

green


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

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)


CategoryStruct, CategoryForceFeedback

None: SDL_HapticDirection (last edited 2016-05-12 20:46:29 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit