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

Field Summary
(package private)  int activeViewRef
           
(package private)  AudioDevice audioDevice
           
(package private)  int coexistenceCenterInPworldPolicy
           
(package private)  Transform3D coexistenceToTrackerBase
           
(package private)  java.util.Vector devices
           
(package private)  int DominantHandIndex
           
(package private)  int HeadIndex
          The Sensor Index associated with the Head
(package private)  InputDeviceScheduler inputsched
           
(package private)  int LeftHandIndex
           
(package private)  int NonDominantHandIndex
           
(package private)  int peDirtyMask
           
(package private) static java.util.Hashtable physicalEnvMap
           
(package private)  int RightHandIndex
           
(package private)  int sensorCount
           
(package private)  Sensor[] sensorList
           
(package private)  boolean sensorListChanged
           
(package private)  Sensor[] sensors
           
(package private)  boolean trackingAvailable
           
(package private)  java.util.ArrayList users
           
 
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.
(package private)  void addUser(View view)
           
private  void computeTrackingAvailable()
           
 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.
(package private)  Sensor[] getSensorList()
          Returns copy of Sensor references.
 boolean getTrackingAvailable()
          Returns a status flag indicating whether or not tracking is available.
(package private)  void notifyUsers()
           
 void removeInputDevice(InputDevice device)
          Remove an input device from the list of input devices.
(package private)  void removeUser(View view)
           
 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
 

Field Detail

HeadIndex

int HeadIndex
The Sensor Index associated with the Head


RightHandIndex

int RightHandIndex

LeftHandIndex

int LeftHandIndex

DominantHandIndex

int DominantHandIndex

NonDominantHandIndex

int NonDominantHandIndex

coexistenceToTrackerBase

Transform3D coexistenceToTrackerBase

trackingAvailable

boolean trackingAvailable

coexistenceCenterInPworldPolicy

int coexistenceCenterInPworldPolicy

peDirtyMask

int peDirtyMask

sensorCount

int sensorCount

sensors

Sensor[] sensors

audioDevice

AudioDevice audioDevice

sensorListChanged

boolean sensorListChanged

sensorList

Sensor[] sensorList

users

java.util.ArrayList users

inputsched

InputDeviceScheduler inputsched

devices

java.util.Vector devices

activeViewRef

int activeViewRef

physicalEnvMap

static java.util.Hashtable physicalEnvMap
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

removeUser

void removeUser(View view)

addUser

void addUser(View view)

notifyUsers

void notifyUsers()

getSensorList

Sensor[] getSensorList()
Returns copy of Sensor references. Returns null for zero sensors, so user of method must check for null. Also, any of these sensors could be null.


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

computeTrackingAvailable

private void computeTrackingAvailable()


Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.