//********************************************************************************************** // (C) Copyright 2002 by Dipl. Phys. Joerg Plewe, HARDCODE Development // All rights reserved. Copying, modification, // distribution or publication without the prior written // consent of the author is prohibited. // // Created on 19. Dezember 2001, 21:58 //********************************************************************************************** package de.hardcode.jxinput; /** * The Axis interface describes the most common feature of a joystick or other input devices. * * @author Herkules */ public interface Axis extends Feature { // Enumeration of axes. final static int ID_X = 0; final static int ID_Y = 1; final static int ID_Z = 2; final static int ID_ROTX = 3; final static int ID_ROTY = 4; final static int ID_ROTZ = 5; final static int ID_SLIDER0 = 6; final static int ID_SLIDER1 = 7; final static int NUMBER_OF_ID = 8; // Enumeration of axis types final static int TRANSLATION = 0; final static int ROTATION = 1; final static int SLIDER = 2; /** * Retrieve the type of the axis. * The type is describes the meaning and the range of values of the axis. *
* TRANSLATION typed axes denote a translational deviation from a center
* position. This can be e.g. the common, basic joystick axes.
* The range of getValue() is [-1.0,1.0].
*
* ROTATION typed axes denote a rotational deviation from a center
* position. Something on the stick is turned or twisted.
* The range of getValue() is [-1.0,1.0].
*
* SLIDER typed axes denote a shifting device without a center position.
* A good sample is a throttle control.
* The range of getValue() is [0.0,1.0].
*
* @return [ TRANSLATION | ROTATION | SLIDER ]
*/
int getType();
/**
* Returns the current value of the axis.
* The range of the result depends on the axis type.
*
* @return value [-1.0,1.0] or [0.0,1.0]
*/
double getValue();
/**
* Inform about the resolution of the axis.
*
* @return resolution, e.g. 2^-16
*/
double getResolution();
}