Class 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 Detail

      • PhysicalEnvironment

        public PhysicalEnvironment()
        Constructs a PhysicalEnvironment object with default parameters. The default values are as follows:
          sensor count : 3
          sensors : null (for all array elements)
          head index : 0
          right hand index : 1
          left hand index : 2
          dominant hand index : 1
          nondominant hand index : 2
          tracking available : false
          audio device : null
          input device list : empty
          coexistence to tracker base transform : identity
          coexistence center in pworld policy : View.NOMINAL_SCREEN
      • 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