org.scijava.java3d.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 j3dutils Show documentation
Show all versions of j3dutils Show documentation
Utility functions for the Java 3D Graphics API
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 org.scijava.java3d.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 org.scijava.java3d.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 org.scijava.java3d.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)
© 2015 - 2024 Weber Informatics LLC | Privacy Policy