javax.media.j3d
Class PhysicalEnvironment

java.lang.Object
  extended by javax.media.j3d.PhysicalEnvironment

public class PhysicalEnvironment
extends java.lang.Object

This object contains a specification of the physical environment in which the view will be generated. It is used to set up input devices (sensors) for head-tracking and other uses, and the audio output device. Sensors are indexed starting at zero.

See Also:
View

Constructor Summary
PhysicalEnvironment()
          Constructs a PhysicalEnvironment object with default parameters.
PhysicalEnvironment(int sensorCount)
          Constructs and initializes a PhysicalEnvironment object with the specified number of sensors.
 
Method Summary
 void addInputDevice(InputDevice device)
          Add an input device to the list of input devices.
 java.util.Enumeration getAllInputDevices()
          Create an enumerator that produces all input devices.
 AudioDevice getAudioDevice()
          Gets the audioDevice for this PhysicalEnvironment.
 int getCoexistenceCenterInPworldPolicy()
          Returns the current coexistence center in physical world policy.
 void getCoexistenceToTrackerBase(Transform3D t)
          Retrieves the coexistence coordinate system to tracker-base coordinate system transform and copies it into the specified Transform3D object.
 int getDominantHandIndex()
          Gets the sensor index of the dominant hand.
 int getHeadIndex()
          Gets the sensor index of the head.
 int getLeftHandIndex()
          Gets the sensor index of the left hand.
 int getNonDominantHandIndex()
          Gets the sensor index of the non-dominant hand.
 int getRightHandIndex()
          Gets the sensor index of the right hand.
 Sensor getSensor(int index)
          Gets the sensor specified by the index; sensors are indexed starting at 0.
 int getSensorCount()
          Get the current sensor count.
 boolean getTrackingAvailable()
          Returns a status flag indicating whether or not tracking is available.
 void removeInputDevice(InputDevice device)
          Remove an input device from the list of input devices.
 void setAudioDevice(AudioDevice device)
          Sets the specified AudioDevice object as the device through which audio rendering for this PhysicalEnvironment will be performed.
 void setCoexistenceCenterInPworldPolicy(int policy)
          Sets the coexistence center in physical world policy.
 void setCoexistenceToTrackerBase(Transform3D t)
          Sets the coexistence coordinate system to tracker-base coordinate system transform.
 void setDominantHandIndex(int index)
          Sets the index of the dominant hand to the specified sensor index.
 void setHeadIndex(int index)
          Sets the index of the head to the specified sensor index.
 void setLeftHandIndex(int index)
          Sets the index of the left hand to the specified sensor index.
 void setNonDominantHandIndex(int index)
          Sets the index of the non-dominant hand to the specified sensor index.
 void setRightHandIndex(int index)
          Sets the index of the right hand to the specified sensor index.
 void setSensor(int index, Sensor sensor)
          Set the sensor specified by the index to sensor provided; sensors are indexed starting at 0.
 void setSensorCount(int count)
          Set the number of sensor objects per PhysicalEnvironmnet.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PhysicalEnvironment

public PhysicalEnvironment()
Constructs a PhysicalEnvironment object with default parameters. The default values are as follows:


PhysicalEnvironment

public PhysicalEnvironment(int sensorCount)
Constructs and initializes a PhysicalEnvironment object with the specified number of sensors.

Parameters:
sensorCount - the number of sensors to create.
Method Detail

setAudioDevice

public void setAudioDevice(AudioDevice device)
Sets the specified AudioDevice object as the device through which audio rendering for this PhysicalEnvironment will be performed.

Parameters:
device - audio device object to be associated with this PhysicalEnvironment

getAudioDevice

public AudioDevice getAudioDevice()
Gets the audioDevice for this PhysicalEnvironment.

Returns:
audio device object associated with this PhysicalEnvironment

getAllInputDevices

public java.util.Enumeration getAllInputDevices()
Create an enumerator that produces all input devices.

Returns:
an enumerator of all available devices

addInputDevice

public void addInputDevice(InputDevice device)
Add an input device to the list of input devices. User is responsible for initializing the device and setting the processing mode (streaming or polling).

Parameters:
device - the device to be added to the list of input devices
Throws:
java.lang.IllegalArgumentException - if InputDevice.getProcessingMode() does not return one of BLOCKING, NON_BLOCKING, or DEMAND_DRIVEN.

removeInputDevice

public void removeInputDevice(InputDevice device)
Remove an input device from the list of input devices. User is responsible for closing out the device and releasing the device resources.

Parameters:
device - the device to be removed

setHeadIndex

public void setHeadIndex(int index)
Sets the index of the head to the specified sensor index.

Parameters:
index - the new sensor index of the head

getHeadIndex

public int getHeadIndex()
Gets the sensor index of the head.

Returns:
the sensor index of the head

setRightHandIndex

public void setRightHandIndex(int index)
Sets the index of the right hand to the specified sensor index.

Parameters:
index - the new sensor index of the right hand

getRightHandIndex

public int getRightHandIndex()
Gets the sensor index of the right hand.

Returns:
the sensor index of the right hand

setLeftHandIndex

public void setLeftHandIndex(int index)
Sets the index of the left hand to the specified sensor index.

Parameters:
index - the new sensor index of the left hand

getLeftHandIndex

public int getLeftHandIndex()
Gets the sensor index of the left hand.

Returns:
the sensor index of the left hand

setDominantHandIndex

public void setDominantHandIndex(int index)
Sets the index of the dominant hand to the specified sensor index.

Parameters:
index - the new sensor index of the dominant hand

getDominantHandIndex

public int getDominantHandIndex()
Gets the sensor index of the dominant hand.

Returns:
the sensor index of the dominant hand

setNonDominantHandIndex

public void setNonDominantHandIndex(int index)
Sets the index of the non-dominant hand to the specified sensor index.

Parameters:
index - the new sensor index of the non dominant hand

getNonDominantHandIndex

public int getNonDominantHandIndex()
Gets the sensor index of the non-dominant hand.

Returns:
the sensor index of the non dominant hand

setSensor

public void setSensor(int index,
                      Sensor sensor)
Set the sensor specified by the index to sensor provided; sensors are indexed starting at 0. All sensors must be registered via this method.

Parameters:
index - the sensor's index
sensor - the new sensor

getSensor

public Sensor getSensor(int index)
Gets the sensor specified by the index; sensors are indexed starting at 0.

Parameters:
index - the sensor's index

setCoexistenceToTrackerBase

public void setCoexistenceToTrackerBase(Transform3D t)
Sets the coexistence coordinate system to tracker-base coordinate system transform. If head tracking is enabled, this transform is a calibration constant. If head tracking is not enabled, this transform is not used. This is used in both SCREEN_VIEW and HMD_VIEW modes.

Parameters:
t - the new transform
Throws:
BadTransformException - if the transform is not rigid

getCoexistenceToTrackerBase

public void getCoexistenceToTrackerBase(Transform3D t)
Retrieves the coexistence coordinate system to tracker-base coordinate system transform and copies it into the specified Transform3D object.

Parameters:
t - the object that will receive the transform

getTrackingAvailable

public boolean getTrackingAvailable()
Returns a status flag indicating whether or not tracking is available.

Returns:
a flag telling whether tracking is available

setCoexistenceCenterInPworldPolicy

public void setCoexistenceCenterInPworldPolicy(int policy)
Sets the coexistence center in physical world policy. This setting determines how Java 3D places the user's eye point as a function of head position during the calibration process, one of View.NOMINAL_SCREEN, View.NOMINAL_HEAD, or View.NOMINAL_FEET. The default policy is View.NOMINAL_SCREEN.

Parameters:
policy - the new policy

getCoexistenceCenterInPworldPolicy

public int getCoexistenceCenterInPworldPolicy()
Returns the current coexistence center in physical world policy.

Returns:
one of: View.NOMINAL_SCREEN, View.NOMINAL_HEAD, or View.NOMINAL_FEET

getSensorCount

public int getSensorCount()
Get the current sensor count.

Returns:
the number of sensor objects per PhysicalEnvironment object

setSensorCount

public void setSensorCount(int count)
Set the number of sensor objects per PhysicalEnvironmnet. This is a calibration parameter that should be set before setting any sensors in the PhysicalEnvironment object. This call associates 'count' Sensors with this object, and they are indexed from 0 to count-1.

Parameters:
count - the new sensor count