Vrui -- Virtual Reality User Interface Development Library
Vrui is a powerful high-level development toolkit for portable virtual reality applications.
Header Files
- Geometry.h
- Geometry.h contains typedefs defining the low-level geometry types used by the Vrui toolkit.
- TransparentObject.h
- TransparentObject is a base class for all objects that require a second rendering pass to render transparency using OpenGL alpha blending. The transparency pass is executed after the application's display function, and is set up in physical coordinates and with OpenGL alpha blending enabled and the depth buffer locked.
- GlyphRenderer.h
- GlyphRenderer is a helper class to quickly and easily render several kinds of common glyphs used throughout the Vrui toolkit.
- InputDevice.h
- InputDevice is a class representing input devices with an (optional) 6-DOF position/orientation, and any numbers of buttons and valuators (floating-point values ranging from -1 to 1).
- MouseCursorFaker
- MouseCursorFaker is a helper class to render a texture-based mouse cursor in cases where there is no hardware cursor, or the hardware cursor is inappropriate (such as in mouse-controlled cluster environments, or when playing back a previously recorded Vrui session).
- VirtualInputDevice.h
- VirtualInputDevice is a helper class to manage and interact with ungrabbed virtual input devices, by representing them as 3D widgets.
- InputGraphManager.h
- InputGraphManager is a class managing the bipartite Vrui input processing graph formed by input devices and the tools associated with their buttons/valuators.
- InputDeviceManager.h
- InputDeviceManager is a class managing the input devices available to a VR environment and their associated tools in cooperation with an input graph manager.
- MutexMenu.h
- MutexMenu is a class representing GLMotif popup menus that can only be popped up by one menu tool at a time.
- Lightsource.h
- Lightsource is a class representing light sources in VR environments.
- LightsourceManager.h
- LightsourceManager is a class managing any number of light sources, and mapping them to the limited number of OpenGL light sources during rendering.
- ClipPlane.h
- ClipPlane is a class representing clipping planes in VR environments.
- ClipPlaneManager.h
- ClipPlaneManager is a class managing any number of clipping planes, and mapping them to the limited number of OpenGL clipping planes during rendering.
- CoordinateTransform.h
- CoordinateTransform is a base class for transformations from "user interest" space to Vrui's navigational space. Classes derived from CoordinateTransform can be registered with Vrui's coordinate manager (see below), and are used to display coordinates in a coordinate system of interest to users of certain applications, e.g., geoid coordinates. The base class implements an identity transformation.
- OrthogonalCoordinateTransform.h
- Coordinate transformation class for orthogonal transformations (translations, rotations, uniform scalings).
- GeodeticCoordinateTransform.h
- Coordinate transformation class from geocentric Cartesian coordinates to geodetic coordinates (latitude, longitude, elevation) on a variety of geoids.
- CoordinateManager.h
- CoordinateManager allows Vrui applications to communicate their own units and coordinate systems to the Vrui toolkit. Vrui uses these definitions to provide an application-independent scale bar, and to display units and proper model coordinates (including non-linear mappings from navigation space) in measurements, e.g., those made with MeasurementTools.
- Viewer.h
- Viewer is a class representing viewers in VR environments. Viewers essentially consist of potentially headtracked eye positions that are used as projection centers when projecting 3D scenes onto screens.
- VRScreen.h
- VRScreen is a class representing fixed or device-mounted projection surfaces in VR environments. Together with viewers, screens describe how to display 3D scenes as (stereoscopic) images.
- ViewSpecification.h
- ViewSpecification is a class representing the visible space (frustum) of a VR display window, i.e., a combination of a viewer and a screen. View specifications are mostly used for view-dependent rendering and software frustum culling.
- VRWindow.h
- VRWindow is a class representing an OpenGL rendering window in a VR environment. VR windows tie together a viewer and a screen to create images of the 3D scene. VR windows contain methods to create monoscopic or stereoscopic images using several techniques.
- DisplayState.h
- Helper class to allow applications to query per-display Vrui rendering state from within a display method.
- Listener.h
- Listener is a class representing listeners in VR environments. Listeners essentially consist of potentially headtracked ear positions and head orientations that are used to create 3D sound using OpenAL.
- SoundContext.h
- SoundContext is a class representing an OpenAL sound context in a VR environment. Sound contexts tie together a listener and a sound device for 3D sound using OpenAL.
- ToolInputLayout.h
- ToolInputLayout is a helper class describing the interface of a tool class, i.e., the number of devices/buttons/valuators used by each instance of the tool class.
- ToolInputAssignment.h
- ToolInputAssignment is a helper class describing the assignment from input devices, buttons, and valuators to an instance of a tool class.
- Tools/Tool.h
- Tool is the base class for all tools, i.e., objects associating input devices, buttons, and valuators with toolkit or application functions.
- Tools/GenericToolFactory.h
- GenericToolFactory is a helper class to simplify implementing tools.
- Tools/LocatorTool.h
- LocatorTool is the base class for all tools that are meant to invoke an application action at a particular 3D position.
- LocatorToolAdapter.h
- LocatorToolAdapter is a helper class connecting a locator tool to an application object receiving events from that tool.
- Tools/DraggingTool.h
- DraggingTool is the base class for all tools that are meant to select an application object and drag it in 3D.
- DraggingToolAdapter.h
- DraggingToolAdapter is a helper class connecting a dragging tool to an application object receiving events from that tool.
- Tools/NavigationTool.h
- NavigationTool is the base class for all navigation tools, i.e., all tools that change the transformation from application or model coordinates to physical environment coordinates.
- Tools/NavigationTool.h
- NavigationTool is the base class for all navigation tools, i.e., all tools that change the transformation from application or model coordinates to physical environment coordinates.
- Tools/SurfaceNavigationTool.h
- SurfaceNavigationTool is the base class for all navigation tools that are limited to an application-specified surface. Applications can intercept the creation of surface navigation tools, and register a callback function that snaps the current navigation frame of the tool to the surface during navigation.
- Tools/MenuTool.h
- MenuTool is the base class for all tools that invoke and interact with popup menus.
- ToolManager.h
- ToolManager is a class managing the dynamic creation/destruction of tools and the association of tools to input devices, buttons, and valuators.
- Vislet.h
- Vislet is the base class for stand-alone graphical objects that can be displayed inside a VR application without the application's knowledge or support.
- VisletManager.h
- VisletManager is a class managing the available vislet classes, and vislet instances.
- Vrui.h
- Vrui.h contains namespace-global functions to query or set all relevant parts of the internal Vrui state, and defines the Vrui kernel API.
- ClusterSupport.h
- ClusterSupport.h contains namespace-global functions to simplify developing cluster-aware Vrui applications.
- Application.h
- Application is a base class for Vrui applications to simplify program development and integration.