com.sun.j3d.utils.universe.doc-files.j3d1x3-cave-vr.html Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java3d-core Show documentation
Show all versions of java3d-core Show documentation
Java3D Core And Java3D Util Libraries
The newest version!
j3d1x3-cave-vr config file
/*
************************************************************************
*
* Java 3D configuration file for a cave environment with head tracking and
* stereo viewing. This cave consists of 3 projectors with 3 screens to the
* left, front, and right of the user, all at 90 degrees to each other.
*
* The projectors in Sun's VirtualPortal sample site are actually turned
* on their sides to get more height. Screen 0 is rotated 90 degrees
* counter-clockwise, while screens 1 and 2 are rotated 90 degrees
* clockwise.
*
************************************************************************
*/
// Configure the head tracker.
//
(NewDevice tracker1 com.sun.j3d.input.LogitechTracker)
(DeviceProperty tracker1 SerialPort "/dev/ttya") // Unix paths need quoting.
(DeviceProperty tracker1 TransmitterBaseline 0.4600)
(DeviceProperty tracker1 TransmitterLeftLeg 0.4400)
(DeviceProperty tracker1 TransmitterCalibrationDistance 0.4120)
// Configure an InputDevice to use for a 6 degree of freedom wand.
//
(NewDevice tracker2 com.sun.j3d.input.LogitechTracker)
(DeviceProperty tracker2 SerialPort "/dev/ttyb")
(DeviceProperty tracker2 ReceiverBaseline 0.0700)
(DeviceProperty tracker2 ReceiverLeftLeg 0.0625)
(DeviceProperty tracker2 ReceiverHeight 0.0510)
(DeviceProperty tracker2 ReceiverTopOffset 0.0000)
// Make the tracker2 device a slave of the tracker1 device.
(DeviceProperty tracker1 Slave (Device tracker2))
// Create logical names for the head tracker and wand sensors. The last
// argument is the sensor's index in the input device.
//
(NewSensor head tracker1 0)
(NewSensor sensor6d tracker2 0)
// Create new screen objects and associate them with logical names and numbers.
// These numbers are used as indices to retrieve the AWT GraphicsDevice from
// the array that GraphicsEnvironment.getScreenDevices() returns.
//
// NOTE: The GraphicsDevice order in the array is specific to the local
// site and display system.
//
(NewScreen left 0)
(NewScreen center 1)
(NewScreen right 2)
// Set the available image areas as well as their positition and orientation
// relative to the tracker base. From the orientation of a user standing
// within this VirtualPortal site and facing the center screen, the tracker
// base is along the vertical midline of the screen, 0.248 meters down from
// the top edge, and 1.340 meters in front of it. The tracker base is
// oriented so that its +X axis points to the left, its +Y axis points toward
// the screen, and its +Z axis points toward the floor.
//
(ScreenProperty left PhysicalScreenWidth 2.480)
(ScreenProperty left PhysicalScreenHeight 1.705)
(ScreenProperty left WindowSize NoBorderFullScreen)
(ScreenProperty left TrackerBaseToImagePlate
(( 0.0 0.0 -1.0 2.230)
( 0.0 -1.0 0.0 1.340)
(-1.0 0.0 0.0 0.885)))
(ScreenProperty center PhysicalScreenWidth 2.485)
(ScreenProperty center PhysicalScreenHeight 1.745)
(ScreenProperty center WindowSize NoBorderFullScreen)
(ScreenProperty center TrackerBaseToImagePlate
(( 0.0 0.0 1.0 0.248)
(-1.0 0.0 0.0 0.885)
( 0.0 -1.0 0.0 1.340)))
(ScreenProperty right PhysicalScreenWidth 2.480)
(ScreenProperty right PhysicalScreenHeight 1.775)
(ScreenProperty right WindowSize NoBorderFullScreen)
(ScreenProperty right TrackerBaseToImagePlate
(( 0.0 0.0 1.0 0.2488)
( 0.0 -1.0 0.0 1.340)
( 1.0 0.0 0.0 0.860)))
// Create a physical environment. This contains the available input devices,
// audio devices, and sensors, and defines the coexistence coordinate system
// for mapping between the virtual and physical worlds.
//
(NewPhysicalEnvironment VirtualPortal)
// Register the input device defined in this file and the sensor which will
// drive head tracking.
//
(PhysicalEnvironmentProperty VirtualPortal InputDevice tracker1)
(PhysicalEnvironmentProperty VirtualPortal InputDevice tracker2)
(PhysicalEnvironmentProperty VirtualPortal HeadTracker head)
// Set the location of the center of coexistence relative to the tracker base.
// Here it set to the center of the center screen. The default view attach
// policy of NOMINAL_SCREEN used by ConfiguredUniverse will place the origin of
// the view platform in coexistence coordinates at the center of coexistence.
//
(PhysicalEnvironmentProperty VirtualPortal
CoexistenceToTrackerBase
((-1.0 0.0 0.0 0.000)
( 0.0 0.0 -1.0 1.340)
( 0.0 -1.0 0.0 0.994)))
// Define the physical body. The head origin is halfway between the eyes, with
// X extending to the right, Y up, and positive Z extending into the skull.
//
(NewPhysicalBody LabRat)
(PhysicalBodyProperty LabRat StereoEyeSeparation .07)
// Define the position and orientation of the head relative to the tracker
// mounted on the head.
//
(PhysicalBodyProperty LabRat HeadToHeadTracker
((-1.0 0.0 0.0 0.00)
( 0.0 0.0 -1.0 0.05)
( 0.0 -1.0 0.0 0.11)))
// Create a view platform behavior for the 6DOF sensor.
//
(NewViewPlatformBehavior vpb com.sun.j3d.utils.behaviors.vp.WandViewBehavior)
(ViewPlatformBehaviorProperty vpb Sensor6D sensor6d)
(ViewPlatformBehaviorProperty vpb ButtonAction6D 2 GrabView)
(ViewPlatformBehaviorProperty vpb ButtonAction6D 1 TranslateForward)
(ViewPlatformBehaviorProperty vpb ButtonAction6D 0 TranslateBackward)
// Default normal translation speed is 0.1 physical meters per second.
(ViewPlatformBehaviorProperty vpb TranslationSpeed
1.0 PhysicalMeters PerSecond)
// Default rotation coordinates are Sensor.
(ViewPlatformBehaviorProperty vpb RotationCoords Head)
// Nominal sensor transform for modified joystick RedBarron
(SensorProperty sensor6d Hotspot (0.00 0.6 0.00))
(ViewPlatformBehaviorProperty vpb NominalSensorRotation
((-1.0 0.0 0.0)
( 0.0 0.0 -1.0)
( 0.0 -1.0 0.0)))
// Default 6DOF sensor echo is Gnomon
(ViewPlatformBehaviorProperty vpb EchoSize 0.015)
(ViewPlatformBehaviorProperty vpb EchoType Beam)
// Default 6DOF sensor echo color is white
(ViewPlatformBehaviorProperty vpb EchoColor 1.0 0.7 0.0)
// Default 6DOF sensor transparency is 0.0 (opaque)
(ViewPlatformBehaviorProperty vpb EchoTransparency 0.4)
// Create a new view platform and set the view platform behavior.
//
(NewViewPlatform vp)
(ViewPlatformProperty vp ViewPlatformBehavior vpb)
// Now define the view.
//
(NewView view0)
(ViewProperty view0 Screen left)
(ViewProperty view0 Screen center)
(ViewProperty view0 Screen right)
(ViewProperty view0 PhysicalBody LabRat)
(ViewProperty view0 PhysicalEnvironment VirtualPortal)
(ViewProperty view0 ViewPlatform vp)
// Set the screen scale. This is scale factor from virtual to physical
// coordinates.
//
(ViewProperty view0 ScreenScalePolicy SCALE_SCREEN_SIZE)
// Alternative for explict scaling.
//
//(ViewProperty view0 ScreenScalePolicy SCALE_EXPLICIT)
//(ViewProperty view0 ScreenScale 5.00)
// Enable stereo viewing. Enable head tracking to get the position of the eyes
// with respect to coexistence. Boolean values may be specified as either
// true, True, false, or False.
//
(ViewProperty view0 StereoEnable true)
(ViewProperty view0 TrackingEnable True)