Vrui Configuration File Settings Value Type Reference

This document defines all value types used in Vrui configuration files.

Type NameDescription
boolean Logical value; can be set to the literals true or false.
enumerant One out of a fixed set of possible choices, expressed as literals. Allowed literal values are listed in the setting's description.
key name Name of a key on the keyboard, expressed as a literal. Labeled keys have their own names, and the following "special" key names are recognized: Space, Tab, Return, Backspace, Left, Up, Right, Down, PageUp, PageDown, Home, End, Insert, Delete, Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num/, Num*, Num-, Num+, NumEnter, NumSep, LeftShift, RightShift, CapsLock, LeftCtrl, RightCtrl, LeftAlt, RightAlt, LeftMeta, RightMeta, LeftSuper, RightSuper, LeftHyper, RightHyper, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Esc, Print, ScrollLock, Pause, Menu.
qualified key name Name identifying a combination of a keyboard key and a set of currently pressed modifier keys, expressed as a sequence of any number of modifier key names followed by a non-modifier key name, separated by plus signs (+). Supported modifier key names are Shift, Ctrl, Alt, Meta, Super, Hyper.
integer Positive or negative integer number. Consists of an optional plus or minus sign, followed by a sequence of at least one decimal digits.
number Positive or negative floating-point number. Consists of an optional plus or minus sign, followed by a sequence of at least one decimal digit defining the number's integer part, and an optional dot followed by a sequence of at least one decimal digits defining the number's fractional part.
string A sequence of characters enclosed in double quotes. Strings support C-style escape sequences using the backslash escape charater; e.g., \t gets translated to a TAB character, \" is a double quote, and \\ is a backslash. If a string only contains letters, digits, underscores, or escape sequences, the quotes are optional.
list A list of values of another arbitrary setting value type. A list is encoded as a pair of parentheses containing a comma-separated list of an arbitrary number of values.
point A point in 3D affine space, encoded as a list of exactly three numbers (x, y, and z components).
vector A vector in 3D affine space, encoded as a list of exactly three numbers (x, y, and z components).
plane An oriented plane (half-space) in 3D affine space, encoded as a vector (non-normalized normal vector) followed by a comma and a number (origin distance in terms of normal vector length).
3x3 matrix A projective transformation in 2D projective space, encoded as a list of exactly three vectors, which are interpreted as the matrix' column vectors.
tracker state A position and orientation in 3D affine space, encoded as a sequence of basic transformations separated by multiplication signs. The basic transformations are:
identity
Denotes an identity transformation.
translate <translation>
Translates the coordinate system by the given translation vector.
rotate <axis>, <angle>
Rotates the coordinate system about its own origin around the given non-normalized axis vector, by the given angle number in degrees.
rotateAround <pivot>, <axis>, <angle>
Rotates the coordinate system about the given pivot point around the given non-normalized axis vector, by the given angle number in degrees.
orthogonal transformation A transformation consisting of any combination of translations, rotations, and uniform scalings, encoded as a sequence of basic transformations separated by multiplication signs. The basic transformations are:
identity
Denotes an identity transformation.
translate <translation>
Translates the coordinate system by the given translation vector.
rotate <axis>, <angle>
Rotates the coordinate system about its own origin around the given non-normalized axis vector, by the given angle number in degrees.
rotateAround <pivot>, <axis>, <angle>
Rotates the coordinate system about the given pivot point around the given non-normalized axis vector, by the given angle number in degrees.
scale <factor>
Scales the coordinate system about its own origin by the scaling factor number.
scaleAround <pivot>, <factor>
Scales the coordinate system about the given pivot point by the scaling factor number.
affine transformation An affine transformation in 3D affine space, encoded as a list of exactly four vectors, which are interpreted as the column vectors of the transformation's 3x4 matrix.
color An RGB color with opacity component, encoded as a list of three or four numbers (red, green, blue, and (optional) opacity components, scaled from 0.0 to 1.0). If the opacity component is missing, it is initialized to 1.0.
material An OpenGL material property, encoded as a pair of curly braces containing a sequence of semicolon-terminated component settings. Omitted components are set to the OpenGL default values. The available component settings are:
Ambient = <ambient color>
Ambient color of the material.
Diffuse = <diffuse color>
Diffuse color of the material.
AmbientDiffuse = <ambient and diffuse color>
Ambient and diffuse color of the material.
Specular = <specular color>
Specular color of the material.
Shininess = <shininess>
Shininess exponent number of the material.
Emission = <emissive color>
Emissive color of the material.
glyph type Type of a 3D icon, encoded as a literal. Available values:
None
No icon.
Cone
A cone with the apex at the origin, oriented along the y axis.
Cube
A cube centered around the origin.
Sphere
A sphere centered around the origin.
Crossball
A sphere centered around the origin, with three cylinders oriented along the x, y, and z axes, respectively.
Box
A "wireframe" box composed of oblong rectangles as edges and cubes as vertices.
Cursor
A regular 2D mouse cursor, projected onto the screen directly behind the input device from the eye position.
screen protector device Description of a sphere around an input device that triggers a visual alarm when approaching the configured boundaries of the environment. Encoded as a set of parentheses containing a string (the name of an input device), followed by a comma and a point (the center of the sphere in the device's coordinate system), followed by a comma and a number (the radius of the sphere).
window point A point in 2D window space, encoded as a list of exactly two numbers (x and y components, scaled from 0.0 to 1.0).
window size The size of a display window in pixel units, encoded as a list of exactly two integers.
window position The position and size of a display window in pixel units, encoded as a list of exactly two integers (window position), followed by a comma and a list of exactly two integers (window size).
axis value mapper Defines a mapping from a device's raw absolute or relative axis values to the range [-1, 1] used by Vrui, using a "broken line" model. Encoded as a list of exactly four numbers: the raw value mapped to -1, a pair of raw values defining a "flat zone" such that all raw values between the first and second are mapped to zero, and the raw value mapped to 1.
axis descriptor Mapping from a tool valuator to a translational or rotational axis on a navigation tool. Encoded as a pair of parentheses containing an integer (the index of the mapped valuator), followed by a comma and a vector (the rotation axis or translation vector).
feature assignment A list of input device features (buttons or valuators) to use in a tool binding. Encoded as an opening parenthesis, followed by a string defining the name of the input device containing all following features, followed by a comma, followed by an arbitrary number of comma-separated strings defining the names of the button or valuator features on the input device to be used in a binding, followed by a closing parenthesis.