== Draft == '''THIS PAGE IS A WORK IN PROGRESS''' ... Please make edits to this page to improve it! = SDL_HapticPeriodic = A structure that contains a template for a periodic effect. == Data Fields == {| | | |''Header'' |- |Uint16 |'''type''' |the shape of the waves; see [[#type|Remarks]] for details |- |[[SDL_HapticDirection]] |'''direction''' |direction of the effect (relative to the user) |- | | |''Replay'' |- |Uint32 |'''length''' |duration of the effect |- |Uint16 |'''delay''' |delay before starting the effect |- | | |''Trigger'' |- |Uint16 |'''button''' |button that triggers the effect |- |Uint16 |'''interval''' |how soon it can be triggered again after '''button''' |- | | |''Periodic'' |- |Uint16 |'''period''' |period of the wave |- |Sint16 |'''magnitude''' |peak value; if negative, equivalent to 180 degrees extra phase shift |- |Sint16 |'''offset''' |mean value of the wave |- |Uint16 |'''phase''' |positive phase shift given by hundredth of a degree; see [[#phase|Remarks]] for details |- | | |''Envelope'' |- |Uint16 |'''attack_length''' |duration of the attack |- |Uint16 |'''attack_level''' |level at the start of the attack |- |Uint16 |'''fade_length''' |duration of the fade |- |Uint16 |'''fade_level''' |level at the end of the fade |} == Remarks == A periodic effect consists of a wave-shaped effect that repeats itself over time. The type determines the shape of the wave and the other parameters determine the dimensions of the wave. ``` button period press | | || __ __ __ __ __ _ || | | | | | | | | | | magnitude \/ | |__| |__| |__| |__| | _ ----- | offset? delay phase? ------------------------------------- length =================================================== interval ``` '''type''' may be one of the following: {| |SDL_HAPTIC_SINE | __ __ __ __
/ \ / \ / \ /
/ \__/ \__/ \__/ |- |SDL_HAPTIC_TRIANGLE | /\ /\ /\ /\ /\
/ \ / \ / \ / \ /
/ \/ \/ \/ \/ |- |SDL_HAPTIC_SAWTOOTHUP | /| /| /| /| /| /| /|
/ | / | / | / | / | / | / |
/ |/ |/ |/ |/ |/ |/ | |- |SDL_HAPTIC_SAWTOOTHDOWN |\ |\ |\ |\ |\ |\ |\ |
\ | \ | \ | \ | \ | \ | \ |
\| \| \| \| \| \| \| |} '''phase''' is given by hundredths of a degree, meaning that giving the phase a value of 9000 will displace it 25% of its period. Here are sample values: {| |0 |No phase displacement |- |9000 |Displaced 25% of its period |- |18000 |Displaced 50% of its period |- |27000 |Displaced 75% of its period |- |36000 |Displaced 100% of its period, same as 0, but 0 is preferred |} == Related Structures == :[[SDL_HapticDirection]] == Related Functions == :[[SDL_HapticNewEffect]] ---- [[CategoryStruct]], [[CategoryForceFeedback]], [[CategoryDraft]]