javax.media.j3d
Class Sensor

java.lang.Object
  |
  +--javax.media.j3d.Sensor

public class Sensor
extends java.lang.Object

The Sensor Class encapsulates an object that provides real-time data. Examples include six-degree-of-freedom tracking, a joystick, or a data file being read back during a program. A sensor must be used in conjuction with an implementation of the InputDevice interface. Sensor data is time-stamped. Sensor can also handle button inputs.


Field Summary
static int DEFAULT_SENSOR_READ_COUNT
          Default SensorRead object count (30); the number of SensorRead objects constructed if no count is specified.
static int HAND_PREDICTOR
          Set the predictor policy to assume the sensor is predicting hand position/orientation
static int HEAD_PREDICTOR
          Set the predictor policy to assume the sensor is predicting head position/orientation
static int NO_PREDICTOR
          Use no prediction policy; this is the default
static int PREDICT_NEXT_FRAME_TIME
          Set predictor type to generate the SensorRead to correspond with the next frame time
static int PREDICT_NONE
          Set predictor type to do no prediction; this is the default
 
Constructor Summary
Sensor(InputDevice device)
          Constructs a Sensor object for the specified input device using default parameters.
Sensor(InputDevice device, int sensorReadCount)
          Constructs a Sensor object for the specified input device using the specified number of SensorRead objects.
Sensor(InputDevice device, int sensorReadCount, int sensorButtonCount)
          Constructs a Sensor object for the specified input device using the specified number of SensorRead objects and number of buttons.
Sensor(InputDevice device, int sensorReadCount, int sensorButtonCount, Point3d hotspot)
          Constructs a Sensor object for the specified input device using the specified number of SensorRead objects, number of buttons, and hotspot.
Sensor(InputDevice device, int sensorReadCount, Point3d hotspot)
          Constructs a Sensor object for the specified input device using the specified number of SensorRead objects and hotspot.
Sensor(InputDevice device, Point3d hotspot)
          Constructs a Sensor object for the specified input device using the specified hotspot.
 
Method Summary
 SensorRead getCurrentSensorRead()
          Get the current sensor read.
 InputDevice getDevice()
          Retrieves the sensor's associated input device
 void getHotspot(Point3d hotspot)
          Get the sensor's hotspot offset in this sensor's coordinate system.
 int getPredictionPolicy()
          This function returns the prediction policy used by this sensor.
 int getPredictor()
          This function returns the type of predictor used by this sensor.
 void getRead(Transform3D read)
          Computes the sensor reading consistent with the prediction policy and copies that value into the specified argument; calling this method with a prediction policy of NO_PREDICTOR will return the last sensor reading; calling this method with a prediction policy of HAND_PREDICTOR, or HEAD_PREDICTOR will extrapolate previous sensor readings to the current time.
 void getRead(Transform3D read, long deltaT)
          Computes the sensor reading consistent as of time deltaT in the future and copies that value into the specified argument; the reading is computed using the current prediction policy; a prediction policy of NO_PREDICTOR will yield the most recent sensor reading for any deltaT argument (ie, this method is the same as getRead for a prediction policy of NO_PREDICTOR).
 int getSensorButtonCount()
          This function returns the number of buttons associated with this sensor.
 int getSensorReadCount()
          This function returns the number of SensorRead objects associated with this sensor.
 int lastButtons()
          Deprecated. Use lastButtons(int[] values) instead.
 int lastButtons(int k)
          Deprecated. Use lastButtons(int k, int[] values) instead.
 void lastButtons(int[] values)
          Places the most recent sensor reading value for each button into the array parameter; will throw an ArrayIndexOutOfBoundsException if values.length is less than the number of buttons.
 void lastButtons(int k, int[] values)
          Places the kth most recent sensor reading value for each button into the array parameter; where k=0 is the most recent sensor reading, k=1 is the next most recent sensor reading, etc.; will throw an ArrayIndexOutOfBoundsException if values.length is less than the number of buttons.
 void lastRead(Transform3D read)
          Extracts the most recent sensor reading and copies that value into the specified argument.
 void lastRead(Transform3D read, int kth)
          Extracts the kth most recent sensor reading and copies that value into the specified argument; where 0 is the most recent sensor reading, 1 is the next most recent sensor reading, etc.
 long lastTime()
          Returns the time associated with the most recent sensor reading.
 long lastTime(int k)
          Returns the time associated with the kth most recent sensor reading; where 0 is the most recent sensor reading, 1 is the next most recent sensor reading, etc.
 void setDevice(InputDevice device)
          Set the sensor's associated input device
 void setHotspot(Point3d hotspot)
          Set the sensor's hotspot offset in this sensor's coordinate system; this value will be subtracted from the translation component of each transform sent to the Sensor object via the setNextSensorRead call.
 void setNextSensorRead(long time, Transform3D transform, int buttons)
          Deprecated. Use setNextSensorRead(long time, Transform3D transform, int[] buttons) instead.
 void setNextSensorRead(long time, Transform3D transform, int[] values)
          Sets the next sensor read to the specified values; once these values are set via this method they become the current values returned by methods such as lastRead(), lastTime() and lastButtons(); note that if there are no buttons associated with this sensor then values can just be an empty array.
 void setNextSensorRead(SensorRead read)
          Sets the next sensor read to the specified values; once these values are set via this method they become the current values returned by methods such as lastRead(), lastTime() and lastButtons().
 void setPredictionPolicy(int policy)
          This function sets the prediction policy use by this sensor.
 void setPredictor(int predictor)
          This function set the type of predictor to use with this sensor.
 void setSensorReadCount(int count)
          Set the number of sensor read objects per Sensor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PREDICT_NONE

public static final int PREDICT_NONE
Set predictor type to do no prediction; this is the default

PREDICT_NEXT_FRAME_TIME

public static final int PREDICT_NEXT_FRAME_TIME
Set predictor type to generate the SensorRead to correspond with the next frame time

NO_PREDICTOR

public static final int NO_PREDICTOR
Use no prediction policy; this is the default

HEAD_PREDICTOR

public static final int HEAD_PREDICTOR
Set the predictor policy to assume the sensor is predicting head position/orientation

HAND_PREDICTOR

public static final int HAND_PREDICTOR
Set the predictor policy to assume the sensor is predicting hand position/orientation

DEFAULT_SENSOR_READ_COUNT

public static final int DEFAULT_SENSOR_READ_COUNT
Default SensorRead object count (30); the number of SensorRead objects constructed if no count is specified.
Constructor Detail

Sensor

public Sensor(InputDevice device)
Constructs a Sensor object for the specified input device using default parameters. The default values are as follows:
Parameters:
device - the Sensor's associated device.

Sensor

public Sensor(InputDevice device,
              int sensorReadCount)
Constructs a Sensor object for the specified input device using the specified number of SensorRead objects. Default values are used for all other parameters.
Parameters:
device - the Sensor's associated device.
sensorReadCount - the number of SensorReads to associate with this sensor.

Sensor

public Sensor(InputDevice device,
              int sensorReadCount,
              int sensorButtonCount)
Constructs a Sensor object for the specified input device using the specified number of SensorRead objects and number of buttons. Default values are used for all other parameters.
Parameters:
device - the Sensor's associated device.
sensorReadCount - the number of SensorReads to associate with this sensor.
sensorButtonCount - the number of buttons associated with each sensor read.

Sensor

public Sensor(InputDevice device,
              Point3d hotspot)
Constructs a Sensor object for the specified input device using the specified hotspot. Default values are used for all other parameters.
Parameters:
device - the Sensor's associated device.
hotspot - the Sensor's hotspot defined in its local coordinate system.

Sensor

public Sensor(InputDevice device,
              int sensorReadCount,
              Point3d hotspot)
Constructs a Sensor object for the specified input device using the specified number of SensorRead objects and hotspot. Default values are used for all other parameters.
Parameters:
device - the Sensor's associated device.
sensorReadCount - the number of SensorReads to associate with this sensor.
hotspot - the Sensor's hotspot defined in its local coordinate system.

Sensor

public Sensor(InputDevice device,
              int sensorReadCount,
              int sensorButtonCount,
              Point3d hotspot)
Constructs a Sensor object for the specified input device using the specified number of SensorRead objects, number of buttons, and hotspot. Default values are used for all other parameters.
Parameters:
device - the Sensor's associated device.
sensorReadCount - the number of SensorReads to associate with this sensor.
sensorButtonCount - the number of buttons associated with each sensor read.
hotspot - the Sensor's hotspot defined in its local coordinate system.
Method Detail

setPredictor

public void setPredictor(int predictor)
This function set the type of predictor to use with this sensor.
Parameters:
predictor - predictor type one of PREDICT_NONE or PREDICT_NEXT_FRAME_TIME.
Throws:
java.lang.IllegalArgumentException - if an invalid predictor type is specified.

getPredictor

public int getPredictor()
This function returns the type of predictor used by this sensor.
Returns:
returns the predictor type. One of PREDICT_NONE or PREDICT_NEXT_FRAME_TIME.

setPredictionPolicy

public void setPredictionPolicy(int policy)
This function sets the prediction policy use by this sensor.
Parameters:
policy - prediction policy one of NO_PREDICTOR, HEAD_PREDICTOR, or HAND_PREDICTOR.
Throws:
java.lang.IllegalArgumentException - if an invalid prediction policy is specified.

getPredictionPolicy

public int getPredictionPolicy()
This function returns the prediction policy used by this sensor.
Returns:
returns the prediction policy. one of NO_PREDICTOR, HEAD_PREDICTOR, or HAND_PREDICTOR.

setHotspot

public void setHotspot(Point3d hotspot)
Set the sensor's hotspot offset in this sensor's coordinate system; this value will be subtracted from the translation component of each transform sent to the Sensor object via the setNextSensorRead call.
Parameters:
hotspot - the sensor's new hotspot

getHotspot

public void getHotspot(Point3d hotspot)
Get the sensor's hotspot offset in this sensor's coordinate system.
Parameters:
hotspot - the variable to receive the sensor's hotspot

setDevice

public void setDevice(InputDevice device)
Set the sensor's associated input device
Parameters:
device - the sensor's new device

getDevice

public InputDevice getDevice()
Retrieves the sensor's associated input device
Returns:
the sensor's device

getRead

public void getRead(Transform3D read)
Computes the sensor reading consistent with the prediction policy and copies that value into the specified argument; calling this method with a prediction policy of NO_PREDICTOR will return the last sensor reading; calling this method with a prediction policy of HAND_PREDICTOR, or HEAD_PREDICTOR will extrapolate previous sensor readings to the current time.
Parameters:
read - The matrix that will receive the predicted sensor reading

getRead

public void getRead(Transform3D read,
                    long deltaT)
Computes the sensor reading consistent as of time deltaT in the future and copies that value into the specified argument; the reading is computed using the current prediction policy; a prediction policy of NO_PREDICTOR will yield the most recent sensor reading for any deltaT argument (ie, this method is the same as getRead for a prediction policy of NO_PREDICTOR). The time argument must be >= 0.
Parameters:
read - The matrix that will receive the predicted sensor reading
deltaT - The time delta into the future for this read

lastRead

public void lastRead(Transform3D read)
Extracts the most recent sensor reading and copies that value into the specified argument.
Parameters:
read - The matrix that will receive the most recent sensor reading

lastRead

public void lastRead(Transform3D read,
                     int kth)
Extracts the kth most recent sensor reading and copies that value into the specified argument; where 0 is the most recent sensor reading, 1 is the next most recent sensor reading, etc.
Parameters:
read - The matrix that will receive the most recent sensor reading
k - The kth previous sensor reading

lastTime

public long lastTime()
Returns the time associated with the most recent sensor reading.
Returns:
the time associated with the most recent sensor reading.

lastTime

public long lastTime(int k)
Returns the time associated with the kth most recent sensor reading; where 0 is the most recent sensor reading, 1 is the next most recent sensor reading, etc.
Returns:
the time associated with the kthmost recent sensor reading.

lastButtons

public void lastButtons(int[] values)
Places the most recent sensor reading value for each button into the array parameter; will throw an ArrayIndexOutOfBoundsException if values.length is less than the number of buttons.
Parameters:
values - the array into which the button values will be placed.

lastButtons

public int lastButtons()
Deprecated. Use lastButtons(int[] values) instead.


lastButtons

public void lastButtons(int k,
                        int[] values)
Places the kth most recent sensor reading value for each button into the array parameter; where k=0 is the most recent sensor reading, k=1 is the next most recent sensor reading, etc.; will throw an ArrayIndexOutOfBoundsException if values.length is less than the number of buttons.
Parameters:
k - the time associated with the most recent sensor reading
values - the array into which the button values will be placed.

lastButtons

public int lastButtons(int k)
Deprecated. Use lastButtons(int k, int[] values) instead.


getSensorReadCount

public final int getSensorReadCount()
This function returns the number of SensorRead objects associated with this sensor.
Returns:
the number of SensorReadObjects associated with this sensor.

setSensorReadCount

public void setSensorReadCount(int count)
Set the number of sensor read objects per Sensor. This is a calibration parameter that should normally be set in this object's constructor. Calling this method resets all of this sensor's values that are already in the buffer.
Parameters:
count - the new sensor read count

getSensorButtonCount

public final int getSensorButtonCount()
This function returns the number of buttons associated with this sensor.
Returns:
the number of buttons associated with this sensor.

getCurrentSensorRead

public SensorRead getCurrentSensorRead()
Get the current sensor read.

setNextSensorRead

public void setNextSensorRead(long time,
                              Transform3D transform,
                              int[] values)
Sets the next sensor read to the specified values; once these values are set via this method they become the current values returned by methods such as lastRead(), lastTime() and lastButtons(); note that if there are no buttons associated with this sensor then values can just be an empty array.
Parameters:
time - The next SensorRead's associated time
transform - The next SensorRead's transformation
values - The next SensorRead's buttons' states

setNextSensorRead

public void setNextSensorRead(SensorRead read)
Sets the next sensor read to the specified values; once these values are set via this method they become the current values returned by methods such as lastRead(), lastTime() and lastButtons().
Parameters:
read - The next SensorRead's values

setNextSensorRead

public void setNextSensorRead(long time,
                              Transform3D transform,
                              int buttons)
Deprecated. Use setNextSensorRead(long time, Transform3D transform, int[] buttons) instead.