Functions and types available to Lua plugins and the Visionary Render events system / script console.
Documentation helper for multi-return functions. Example usage: pos, rot, scale = vrNodeDecomposeTransform(node)
A box.
A matrix.
A node in the tree.
A plane.
A quaternion.
A ray.
A sphere.
A vector.
Construct an axis aligned bounding box.
The minimum value of the bounding box.
The maximum value of the bounding box.
A new box enclosing the min/max points
Returns the largest dimension of an axis aligned bounding box.
Returns an axis aligned bounding box that contains two other bounding boxes.
Construct an axis aligned bounding box, using a position and a size.
The position of the bounding box.
The size of the bounding box.
A new box enclosing the pos/size points
Returns an axis aligned bounding box transformed by a matrix.
Aborts a suspended script.
The name of the script (reported by vrListSleepingScripts)
Invokes the Activate event of a Node optionally setting the __Other register.
The node to put in the __Self register of the activated event
The node to put in the __Other register of the activated event
Adds an observer and callback function to execute for events (e.g. 'Activate', 'Touch', 'Break', 'Click', 'DoubleClick', etc.)
A unique ID for use in vrRemoveObserver()
The type of event to observe, such as 'Activate' or 'Touch'
The node to observe for new events
A Lua function to call when events are activated. This function should have a signature of function(). It can be a string name of a global function or a Lua function object
Adds an observer and callback function to execute for global events (e.g. 'KeyPress', 'KeyRelease', 'PoseEntered', 'PoseLeft', etc.)
The type of global event to observe, such as 'KeyPress' or 'PoseEntered'
A Lua function to call when global events are activated. This function should have a signature of function(). It can be a string name of a global function or a Lua function object
Adds an observer of events from a MetaNode. This notifies the script whenever a node of type metaNode is created.
A unique ID for this observer. Use this with vrRemoveObserver.
The type of node to observe.
Table of callbacks. Each value can be a string name of a global function or a lua function object. Possible keys are:
nodeCreated - called when a node is created. This function should have a signature of function(meta, newnode).
nodeRenamed - called when a node's name is changed. This function should have a signature of function(meta, node).
nodeParentChanged - called when a node's parent is changed. This function should have a signature of function(meta, node, oldParent, newParent).
nodeAddingToRecycleBin - called when a node is added to the recycle bin. This function should have a signature of function(meta, node).
nodeRestoredFromRecycleBin - called when a node is restored from the recycle bin, e.g. with an undo command. This function should have a signature of function(meta, node).
nodeDestroying - called when a node is finally deleted, usually when closing the scene. You are more likely to want nodeAddingToRecycleBin. This function should have a signature of function(meta, node).
Adds an observer of events from a node. This notifies the script in certain circumstances - see the callbacks parameter.
The node to observe.
Table of callbacks. Each value can be a string name of a global function, or a lua function object, and should have a signature of function(node). Possible keys are:
valuesChanged - called when any of the node values change.
addingToRecycleBin - called when the node is sent to the recycle bin.
restoredFromRecycleBin - called when the node is restored from the recycle bin, e.g. with an undo command.
destroying - called when the node is finally deleted, usually when closing the scene. You are more likely to want addingToRecycleBin.
Adds a new boolean array property to an unfinished metanode.
The name of the metanode
The name of the property
The length of the array
The default value(s) to apply to the array elements
Adds a new character array property to an unfinished metanode.
Adds a new double array property to an unfinished metanode.
Adds a new float array property to an unfinished metanode.
Adds a new integer array property to an unfinished metanode.
Adds a new world float array property to an unfinished metanode.
Adds a new boolean property to an unfinished metanode.
The default value to apply to the property
Adds a new character property to an unfinished metanode.
The minimum value that can be assigned to the property
The maximum value that can be assigned to the property
Adds a new double property to an unfinished metanode.
Adds a new float property to an unfinished metanode.
Adds a new integer property to an unfinished metanode.
Adds a new link property to an unfinished metanode.
A comma-separated list of metanode types that can be linked to (e.g. "Assembly" or "Visual,Sequence")
Adds a new mat3d property to an unfinished metanode.
Adds a new mat3f property to an unfinished metanode.
Adds a new mat3w property to an unfinished metanode.
Adds a new mat4d property to an unfinished metanode.
Adds a new mat4f property to an unfinished metanode.
Adds a new mat4w property to an unfinished metanode.
Adds an observer of one or more properties of a metanode. The callback function will be executed once per update whenever the value of a specified property is changed.
A unique key for this observer. This can be passed to the vrRemoveObserver function to remove this observer
A Lua function to execute whenever a specified property is changed. This function should have a signature like "function(node, value1, ...)" - i.e. with a value argument for each observed property. It can be a string name of a global function or a Lua function object
The name of the metanode to observe for property changes (i.e. "Assembly")
A comma-separated list of properties to observe (e.g. "Enabled" or "Enabled,Transform")
The user associated with this observer (optional - defaults to current user)
Adds a new string property to an unfinished metanode.
Adds a new vec2d property to an unfinished metanode.
The default x value to apply to the property
The default y value to apply to the property
The minimum x value that can be assigned to the property
The minimum y value that can be assigned to the property
The maximum x value that can be assigned to the property
The maximum y value that can be assigned to the property
Adds a new vec2f property to an unfinished metanode.
Adds a new vec2i property to an unfinished metanode.
Adds a new vec2w property to an unfinished metanode.
Adds a new vec3d property to an unfinished metanode.
The default z value to apply to the property
The minimum z value that can be assigned to the property
The maximum z value that can be assigned to the property
Adds a new vec3f property to an unfinished metanode.
Adds a new vec3i property to an unfinished metanode.
Adds a new vec3w property to an unfinished metanode.
Adds a new vec4d property to an unfinished metanode.
The default w value to apply to the property
The minimum w value that can be assigned to the property
The maximum w value that can be assigned to the property
Adds a new vec4f property to an unfinished metanode.
Adds a new vec4i property to an unfinished metanode.
Adds a new vec4w property to an unfinished metanode.
Adds a new boolean vector property to an unfinished metanode.
Adds a new character vector property to an unfinished metanode.
Adds a new double vector property to an unfinished metanode.
Adds a new float vector property to an unfinished metanode.
Adds a new integer vector property to an unfinished metanode.
Adds a new string vector property to an unfinished metanode.
Adds a new world float vector property to an unfinished metanode.
Adds a new world float property to an unfinished metanode.
Adds an observer of a setting. This notifies the script whenever the setting changes.
A unique key for this observer. Use this with vrRemoveObserver
Lua function to call when a node is created. This function should have a signature of function(value). This can be a string name of a global function, or a Lua function object
Path to the setting to observe (relative to the registry root)
The user that this observer belongs to (defaults to the current user)
Adds a button to a toolbar dock group.
The toolbar dock to add the button to.
The toolbar dock group to add the button to.
The name of the button node.
The button type.
The button caption.
The icon for the button.
The lua command for the button.
The user parameters for the lua command.
The cluster scope of the button.
The status text displayed while hovering over the button
Adds a new group for toolbar buttons to be attached to.
The tool tab node to attach the button group to
The name of the button group
Whether to allow the group to scroll
the group node
Adds a docked window to a notebook that toolbars can be added to.
The notebook uinode to dock to
The title of the frame
The icon of the frame
the dock node
Add an observer to the SGNode of a vrtree node.
Lua function to call when the nodes transform changes. This function should have a signature of function(node, transform). This can be a string name of a global function, or a lua function object
Lua function to call when the nodes enabled state changes. This function should have a signature of function(node, enabled). This can be a string name of a global function, or a lua function object
THe user associated with this observer.
Calculates the angle of an arc in radians.
The length of the arc
The radius of the circle
The angle
Create an annotation at the specified location, linked to the specified object.
World location of the annotation point
World rotation of the annotation point
Object being annotated
The new annotation
Create a comment on an annotation.
The new comment
Create a viewpoint on an annotation.
The new viewpoint
Delete an annotation and all associated comments and viewpoints.
Delete a comment from an annotation.
Delete a viewpoint from an annotation.
Activates an interactive editor for editing an annotation comment.
Gets the text from an annotation comment.
Lists all annotations in the scene.
List of annotation nodes
Lists all comments in an annotation.
List of comment nodes
Lists all viewpoints in an annotation.
List of viewpoint nodes
Flies to and returns the next annotation after the currently active one.
The number of seconds to spend flying to the viewpoint
Flies to and returns the previous annotation before the currently active one.
Sets the specified annotation as the active one and flies to its default viewpoint.
Sets the text in an annotation comment.
Sets the default viewpoint for an annotation.
Toggles the visibility of annotation comments and other information gizmos.
Recaptures the view from the specified viewpoint.
Adds an app command and binds a lua function call to it.
Binds a lua function to an app command.
Gets the Visionary Render application directory.
Absolute path to the folder containing visren-app.exe
Applies a force to an object causing a dynamics response.
Returns whether or not two items are approximately equal.
Override the default epsilon value used for comparing floating point values
Calculates the length of an arc.
The angle to measure
The length
Calculates the radius of an arc.
The angle of the arc
The radius
Arranges assemblies into a grid based on their bounds.
ViewSelectionContainer holding a selection of nodes to arrange
Type of grid (alignment):
gridXY
gridXZ
gridYZ
Rotates the assembly so that it is looking at the given position.
New position for the assembly
Position the assembly is looking at along it's Z axis
World up vector
Converts boolean values to an integer.
Values (1 or 0, or true or false) that make up the bit field.
Integer composed of the individual bits provided
Applies delta to the camera as if the mouse was used to move it.
Amount of force to apply to positional movement
Amount of force to apply to rotation
Moves the camera by simulating mouse movement.
Distance of horizontal mouse movement. Negative values are left, positive are right
Distance of vertical mouse movement. Positive values are up, negative are down
The mode of mouse control:
LOOK
PAN
ORBIT
Resets the delta of the camera.
Bool whether to apply the reset or not
Connects to a users body.
The user node to connect to
Flies the body to the world position of node, over time seconds.
Whether or not to apply the immersive flyto animation
Whether to add this flyto location to the history for vrBodyStepBack/vrBodyStepForward
Flies the body to a position where it can see the whole of node from that angle, over time seconds.
The node to fly to
The number of seconds to fly
Optional, defines how much of the screen the object will take up. 0.0 to 1.0
Flies the body to a position where it can see the whole of node, over time seconds.
Flies the body to a position where it can see the whole of a bounding sphere, over time seconds.
The centre of the sphere
The radius of the sphere
defines how much of the screen the object will take up. 0.0 to 1.0
Flies the body to a position where it is looking at the selected object from the specified direction, over time seconds.
A unit direction vector in world coordinates
Flies the body to a specific position and rotation, over time seconds.
Whether to fade the view when moving to this location
User to move (defaults to local user)
Returns the object to which the view is currently connected.
Gets the user's body position and rotation.
The user to query (defaults to local user)
User's world position
User's world rotation
Rotates the body so that it is looking at subjectNode, over time seconds.
Sets the orientation of the body.
X,Y,Z rotation values in degrees
Sets the camera's orbit point.
The position of the orbit point
Sets the pitch of the body.
Pitch in degrees
Sets the roll of the body.
Roll in degrees
Sets the body position and rotation instantly.
World position
World rotation
Steps back to the previous viewport or camera position.
Steps forward to the next viewport or camera position.
Creates or updates the PhysicalScreen and Viewport nodes for a curved screen.
The radius of the curve in metres
The curvature of the screen in degrees
The height of the screen in metres
The number of viewports to split the curve into
Whether to apply distortion to wrap the image onto a smoothly curved screen, or leave the segments facetted
The user to create the configuration for
Captures the current state of the Lua global environment.
Captures the view from a specified viewpoint into a texture.
Viewpoint node to capture
Size of image to capture to (square)
Name of a Lua function to call with the complete catured texture
Name of a Lua function to call to create a texture node
Clears the selection in the specified selection group.
The selection group to clear
true if the selection was cleared
Closes the specified pane of the given notebook.
Specifies the name of the notebook.
Specifies the name of the pane.
Closes the specified sequence in the sequencer window.
Returns true if the local user is a cluster master.
DEPRECATED - use vrShowPropertyWindow.
DEPRECATED - use vrShowScriptWindow.
DEPRECATED - use vrPopupToolsWindow.
DEPRECATED - use vrResetWindows.
DEPRECATED - use vrSelectNodes.
DEPRECATED - use vrShowSequencer.
DEPRECATED - use vrShowSettingsWindow.
Returns true if the local user is a cluster slave.
DEPRECATED - use vrTriggerRename.
Returns true or false if the specified mode is available.
Immersive mode value
true if the mode is availble
Constrains a node with a TransformLimit to a bounding box.
The node to Constrain
Returns a copy of a Vector, Matrix, Ray, Sphere, AABBox, Quaternion or Plane.
Copies the texture data from a node onto the Windows clipboard.
Texture node to copy
Copies a node, and optionally its children, and adds that as a child of another node.
The node to copy from
The node which will become the parent of the copy
Whether to also copy descendants
Whether to also copy ancestors (excluding their children) that lead to fromNode. In this case the return value is the clone of the oldest ancestor
Whether the new copy is able to be saved in files
Whether the new copy should have an undo history
The new copy of the node
Copies the property values from one node to another of the same MetaNode type.
The node to copy properties from
The node to copy to
Bitmask where any bits set to 0 mean that property will not be copied. Use vrBitsToInteger to create this bit mask
Copies the specified selection group to the clipboard.
Copies the specified node to the clipboard.
Creates a new gradient.
Creates a new metanode.
The flags to apply to the metanode
Creates a new node and attaches it to a parent node.
The type of node to create
The name of the newly created node
The parent of the newly created node
Any additional flags to set on the new node
The sibling to insert this before (defaults to inserting at the end of the parent's children)
The newly created node
Adds a child sequence to a selected node or the Scenes node.
Creates a new shape and attaches it to a parent node.
Type of shape to create:
plane
cube
sphere
cubicsphere
disc
cone
cylinder
arrow
sponge^3
sponge^4
torus
knot
room
room2
axis
Parent of the new node
The new assembly node referencing the new shape model
Creates vertex and index nodes of a shape and adds them to the Mesh node passed in.
Mesh node onto which the data should be added
The Mesh node passed in
Create the user interface components from the user interface metanode.
The user interface metanode
Creates a viewpoint at the current camera position.
Parent of the new viewpoint node. If not specified, viewpoint is created under the root ViewpointList node in the scenes tree
The name of the new viewpoint
The new viewpoint node
Returns the cross product of two vectors. Both vectors must be the same type.
Vector 1 {x, y} or {x, y, z}.
Vector 2 {x, y} or {x, y, z}.
Gets the first assembly currently under the mouse cursor.
Gets the first geogroup currently under the mouse cursor.
Gets the first model currently under the mouse cursor.
Gets the first visual currently under the mouse cursor.
Makes the specified node unpickable with the cursor.
True makes it unpickable, false makes it pickable.
Gets the specified file path from the Visionary Render application data directory, or an empty string if it does not exist.
Path to the data file relative to the application data directory
Absolute path to the specified data file
Deletes the children of a node.
The node to delete the children of
Deletes a node and, if present, its children.
The node to delete
Recursively deletes all unreferenced nodes in this branch.
Node to start deleting from
Prints to the log a description of the node, its property names and values.
Saves the tree from a specified node down.
The node to start saving from
Path to the file to save as
True removes the UUIDs from nodes into the file.
Returns the dot product of two vectors. Both vectors must be the same type.
Enables networking capabilities.
Makes a button available when the specified mode is avaliable.
Button node to enable
Makes a button available when an Oculus Rift is connected. Note: this function is for the legacy Oculus mode without Touch controllers.
Makes a button available when an Oculus Touch is connected.
Makes a button available when an OpenVR HMD is connected.
Makes a button available when a zSpace device is detected.
Extracts binary data from texture or audio nodes.
The node to extract from
Directory or file to save data to
Whether to overwrite existing files on disk
Returns true if the specified file exists.
Relative or absolute path to test
True if the file exists
Sets the filter for a specified view.
The name of the view
The type to filter
Finds and optimises model nodes.
Finishes a metanode (call this after creating it and adding properties, etc.)
Returns true if the specified folder exists.
True if the folder exists
Forks the application into another process.
Imports a file using an importer registered with the gallery.
Specifies the name of a gallery asset type.
Specifies the name of a registered importer, or an empty string to use all importers.
A prompt to display in the file dialogue.
The parent node for the imported data.
Returns a list of all nodes of given type in the scene and optionally under a given node.
The type of node to list
The node to start searching from
Array of nodes of the specified type
Generates a QR code and saves it to a file.
The content of the QR code
Where to save the generated QR code
The border size in modules, between 0 and 16 (optional, default: 4)
The number of image pixels per module of the QR code, between 1 and 64 (optional, default: 32)
The minimum level of error correction to include, between 0 (low) and 3 (high) (optional, default: 0)
Generates a lightning polyline.
Performs a geometry operation.
The type of operation:
weld
normals
tangents
uv
tess
sort
invert
optimise
split
explode
prune
sieve
recentre
transform
merge
The node to perform the operation on
Gets the node which activated the event.
DEPRECATED.
Gets the entire Lua API reference, either to a string or a file.
Whether to format the API docs in doxygen format
Path to file to write to instead of returning the string
Success status
Lua API Documentation
Gets the body currently controlling the user's view.
User's body to get (defaults to local user)
Returns the node containing the clipboard content, or nil if nothing is on the clipboard.
Returns whether or not a command line switch was specified.
The name of the command line switch
True if the command line option is present
Returns the value of a command line switch.
Returns a list of contact points and normals between two nodes.
Array of contact information.
Get the mouse cursor's current position.
World position of the mouse cursor
Extracts the forward vector from the inverse of the current view matrix.
Viewport to get the view matrix from (defaults to local user's default viewport)
Gets the gradient colour (as RGB value) at the specified position.
Return the user that is holding the node.
The node that is being held
The user that is holding the object
Gets the library in which browser icons are stored.
Whether to create the library if it doesn't already exist
Gets the file extensions associated with an importer plugin.
Array of file extension names
Gets the names of all installed data importer plugins.
Array of importer names
Get the position of the cursor when the mouse was last clicked.
The user to obtain the last click of. Uses the local user if not specified.
World position where the mouse was last clicked
Returns the last directory selected.
Returns the selection group that was added to.
Gets the local body, regardless of any remote connections.
Gets an existing node or creates one (creation attaches it to a parent node).
The type of node to find/create
The name of node to find, or set on the newly created node
The parent node
The first child of parent with specified name and type, or the newly created node if there wasn't a match
Get the node that owns this Vector, Matrix, Ray, Sphere, AABBox, Quaternion or Plane.
The owner of this data (the node that will be affected by changes to its data)
Returns the list of recent files.
Array of paths to recently opened files
Returns the list of recent folders.
Array of paths to folders from which files have recently been opened
Returns the list of recent import files.
Array of paths to files that have recently been imported
Returns the list of recent import folders.
Array of paths to folders from which files have recently been imported
Returns the name of the selected tree frame.
Gets the current tracked eye node.
Gets the current tracked hand node.
-1 or nil for default, 0, for left hand, 1 for right hand
Gets the offset from the body to the user's standing position.
Gets the user's current viewport layout.
user whose viewport should be queried (defaults to local user)
Returns the revision number of Visionary Render being used.
Returns the version number of Visionary Render being used.
Version string formatted Major.Minor.Patch
Attaches a target node to the hand.
The node to attach to the hand
Whether to match the position of the grabbed object to the hand
Whether to match the rotation of the grabbed object to the hand
Whether to match the scale of the grabbed object to the hand
Whether to release any other objects that were in the hand
The user whose hand the object should be attached to, or nil for the current user
Adds a node to the specified group.
The group node
The node to add to the group
Checks whether a group contains a node of a specified type.
The type of node to find
Removes a node from the specified group.
The node to remove from the group
Creates a snapshot of the specified group.
The snapshot node that was created/updated
Gets the Groups root node under the Scenes tree.
When true, the root node will not be created if it does not exist
Queries whether or not we have a named permission.
The permission to query
The originator
true if the permission is present
Suppresses all modal dialogue message boxes.
Whether to suppress the dialogue messages or not
Adds an undo point in to the History.
Erases the undo history.
Undoes the history to the previous history mark.
Redoes the history to the next history mark.
Converts a HSV coiour (vec3f) to an RGB colour (vec3f)
The input colour in HSV
Imports an asset library.
Path to the asset library file
Executes the specified piece of Lua in a coroutine.
Lua code to execute
true if the coroutine is started successfully
Converts an integer to a boolean value for each bit.
The integer to split into bits
32 bools, one for each bit in the number
Returns true if running in a cluster configuration.
Returns true if the DEBUG compilation flag was defined.
Returns true if the scenegraph uses double precision values for matrices etc.
Returns true if the supplied node contains a script property supported by the script editor.
node to check
Returns true if stereo 3D is available in the current instance of Visionary Render.
Stereo mode to check. Default (0) checks for quad buffered stereo support. All other values return true
Returns true if the system node is an ancestor of node.
Tests whether a named Tool is enabled.
The name of the tool that is tested
The user the tool belongs to. If none is specified, the current user is used
true if it is enabled
Gets the enabled state of the user's tracking.
Launches a command or application asynchronously.
The command to execute.
True if the process should pipe its output to the log.
A maximum time in seconds the process can run for before being force-terminated.
True if the process started successfully.
Returns the length of a vector.
Vector {x, y} or {x, y, z}.
Returns the squared length of a vector.
Returns the Libraries node the tree.
Links to another application instance forming a Peer-To-Peer network.
IP address or hostname to connect to
TCP port to connect to
List all Lua VR extension functions.
List of function names separated by new lines
Lists the scripts currently suspended, awaiting resume.
Whether to display additional details about each script
Array of script identifiers
Loads an avatar from a file and places it as a child to parent node.
Loads an avatar from a file and places it in a scene to edit. Can be saved by using Developer->Save Avatar.
Add sub-folders of the specified folder to the gallery.
Specifies the path to the folder to search.
Loads a Visionary Render format file.
The node on which to load the contents of the file (use vrTreeRoot if loading a full scene)
The full path to the file
True loads older format files that may have missing information. Default (false) will fail to load older files.
DEPRECATED - remains for compatibility.
True prevents the loaded nodes from being saved.
True prevents the loaded nodes being added to the undo history.
True ignores UUIDs from file.
Returns the local user's node.
Creates an arrow shape.
Creates a box shape.
Creates a cylinder shape.
Creates an ellipsoid shape.
Creates a plane shape.
Creates a torus shape.
Return an identity 3x3 Matrix.
Return an identity 4x4 Matrix.
Return a frustum projection matrix.
Return an orthographic projection matrix.
Return a 2D orthographic projection matrix.
Returns the determinant of the matrix.
The matrix to get the determinant of.
Get the value of an element of a matrix.
The matrix to select the element from
The column of the element to select.
The row of the element to select.
Returns the inverse of a 4x4 matrix.
The matrix to take the transpose of.
Returns an orthogonal matrix.
The matrix to orthonormalise.
Orthogonal mat3 or mat4 depending on the type passed in
Return M rotated on the X axis by angle V.
The matrix to rotate.
The angle to rotate M by.
Return M rotated on the Y axis by angle V.
Return M rotated on the Z axis by angle V.
Return M scaled by vector V. If V is a scalar then a vector in which x=v, y=v, z=v will be used.
The matrix to scale.
The vector or scalar to scale M by.
Set the value of an element of a matrix.
The matrix of whose elements to set.
The value to set the element.
Get a string representation of a matrix.
The matrix to stringify
Return M translated by the vector V.
The matrix to translate.
The vector to translate the matrix by.
Returns the tranpose of a 3x3 matrix, or a 4x4 matrix with the 3x3 component transposed.
vrmat3 or vrmat4 depending on the type passed in
Merges a Visionary Render format file with the current scene.
Path to the file to merge
Merge Analysis settings node
Displays a message box to the user.
The main body of the message.
The text to put in the title bar.
String indicating what kind of input is required, and an icon to show.
"okcancel,warning" would display a box with OK and CANCEL buttons, with a warning icon.
"yesno,question" would display a box with YES and NO buttons, with a question icon.
"abortretryignore,error" would display ABORT, RETRY and IGNORE buttons, with an error icon.
Returns one of the following based on selected button: cancel, continue, no, ok, retry, tryagain, yes
Returns true if there is a metanode with the given name.
The metanode name to query
Whether to query versioned metanode names
True if exists
Gets the name, type and type description of a MetaNode property.
The type of the property
The description of the type of property
The number of elements in the property (e.g. greater than 1 for arrays)
The index of the property (zero based).
Whether the property can be saved in a file
Gets the number of properties defined by a MetaNode.
The number of properties on the metanode
Tests whether any modifier keys are pressed.
Modifier ID. 0 = Ctrl, 1 = Shift, 2 = Alt
true if the modifier key is currently being pressed
Sets whether failed calls to vrLinkNetwork should retry until the user manual aborts them.
Whether to retry failed calls to vrLinkNetwork
Clears an array property.
The node or property to modify
If a node was specified, the name of the array property
Gets the value of an element of an array property.
The node or property to read the element from
The index of the array element (zero based)
The value in the array at the specified index
Gets the size of an array property.
The node or property to read
The size of the array property
Pops a value from the end of an array property.
Number of values to pop (default: 1)
Pushes a new value to the end of an array property.
Values to insert into the array. Specify as many as needed as individual values, tables or vectors.
Sets the values of an array property to a new array.
Sets the value of one or more existing element of an array property.
The index of the first element to set
The value(s) to set at the specified index
Sets the size of an array property.
New size of the array property
Captures the transform of a node, overwriting any existing saved transform.
The node to capture
True captures all the child transforms too.
True overwrites any exisiting saved transform. False will only create a new one if there is not a saved one already.
Compose the nodes local transform property from seperate position, rotation and scale tables / vectors.
The node to set the local transform of
The local position
The local rotation
The local scale
The name of the property containing the transform
Compose the nodes world transform property from seperate position, rotation and scale tables / vectors.
The node to set the transform of
The world position
The world rotation
The world scale
Copies the value of a property from one node to another of the same MetaNode type.
The name of the property to copy
Decomposes the nodes local transform property into seperate postion, rotation and scale tables / vectors.
The node to get the transform of
Decomposes the nodes world transform property into seperate postion, rotation and scale tables / vectors.
Finds a descendant of a node by path.
The node to search from
The path or name of the node to search from
Whether to match case in the path
The node at the specified path, or false if not found
Calls a function for each child of a node.
The function to call for each child node. This function should have a signature of function(node). This can be a string name of a global function, or a lua function object. If the function returns a value other than nil, the function will not be called for further children and the value will be returned to the caller
Calls a function for each child of a node that matches a specified type.
The type of child nodes to find
Gets the first ancestor of the specified type.
The node to get the ancestor of
The type of ancestor to look for
Ancestor node of the specified type, or false if there isn't one
Gets all nodes that link to this node.
The node to look for references to
Array of nodes that have link properties pointing to this node
Gets the first child of a node.
The node to get the child of
The type of child to get
The name of the child to get
The first child node, of the type in the metaType parameter, if specified, or false if there are no suitable child nodes
Gets the combined bounding box of all a nodes children, relative to that node.
The min point of the bounding box
The max point of the bounding box
Gets a nodes child by its zero-based index. Note: this function may result in poor performance when iterating over lots of nodes - use vrNodeGetChild() and vrNodeGetSibling() instead (see the Best Practices section of the Programming Guide for more info).
The index of the child (zero based)
The specified child node, or false if out of range
Counts the children of a node. Note: this function may result in poor performance when iterating over lots of nodes - use vrNodeGetChild() and vrNodeGetSibling() instead (see the Best Practices section of the Programming Guide for more info).
The node whose children to count
The number of direct child nodes
Gets the local bounding box of a node.
Gets the centre of the local bounding box of a node.
Gets the centre of the local bounding sphere of a node.
Gets the local bounding box and sphere of a node.
The dimensions of the local bounding box
The radius of the bounding sphere
Queries whether or not this node's last modification was made by the local visionary render instance.
The node to query.
Gets the local position of the node.
The node to get the vector from
The name of the property to get
The vector value
Gets the local x position of the node.
The node to read the value from
The name of the property to read
The value of the vector element
Gets the local y position of the node.
Gets the local z position of the node.
Gets the local rotation of the node.
Gets the local x rotation of the node.
Gets the local y rotation of the node.
Gets the local z rotation of the node.
Gets the local scale of the node.
Gets the local x scale of the node.
Gets the local y scale of the node.
Gets the local z scale of the node.
Gets the name of the MetaNode that a node is an instance of. This can also be referred to as the node type.
Node to get the type of
Whether to get the full versioned metanode name rather than the unversioned name
The node type
Gets the name of a node.
The node to get the name of
The name of the node
Queries whether this node can be recorded in the history for undo/redo operations.
The node to query the 'no history' flag of
true if the node is flagged as 'no history', i.e. true if the node cannot be recorded for undo/redo
Queries whether this node can be saved in a VRText/VRNative file.
The node to query the 'no save' flag of
true if the node is flagged as 'no save', i.e. true if the node cannot be saved.
Queries whether this node can be affected by simulations, such as physics and collision.
The node to query the 'no simulation' flag of
true if the node is flagged as 'no simulation', i.e. the physics system ignores this node
Gets the parent of a node.
The node to get the parent of
Gets the encoded path to a node relative to the tree root.
The node to get the path of
The encoded path (special characters are encoded, e.g. space = %20
Gets the world position of the node.
The node to get the world vector from
Gets the world x position of the node.
The node to get the x value of
Gets the world y position of the node.
The node to get the y value of
Gets the world z position of the node.
The node to get the z value of
Gets the previous sibling (adjacent) node to a node.
The type of sibling to get
The previous sibling node, of the type in the metaType parameter, if specified, or false if there are no suitable siblings
Gets the encoded path to a node, relative to another node.
The node to get the path relative to
The encoded relative path (special characters are encoded, e.g. space = %20
Gets the position, rotation and scale of the world transform of one node relative to another.
The relative world position
The relative world rotation
The relative world scale
Gets the world rotation of the node.
Gets the world x rotation of the node.
Gets the world y rotation of the node.
Gets the world z rotation of the node.
Gets the world scale of the node.
Gets the world x scale of the node.
Gets the world y scale of the node.
Gets the world z scale of the node.
Gets the sibling (adjacent) node to a node.
The next sibling node, of the type in the metaType parameter, if specified, or false if there are no suitable siblings
Gets the last child of a node.
The last child node, of the type in the metaType parameter, if specified, or false if there are no suitable child nodes
Gets the list of traits that this node has. Can also be thought of as the base class of a node (e.g. Texture, Viewport, etc). This function is expensive and can affect performance. To check a specific trait use vrNodeHasTrait.
Node to get the traits of
Array of traits that this node has
Gets the value of a property of a node.
The node to read the property from
The value of the property
Gets the value of a property of a node finding the property by its index.
The index of the property to read
Checks if the node is of a type with a specific trait. This is a lot faster than vrNodeGetTraits.
The node to check the traits of
The name of the trait to check
true if the node has the specified trait
Query whether the first specified node is an ancestor of the second.
The first node
The second node
true if the first node is an ancestor of the second
Returns true is the node is in the group.
The node in question
The Group node in question
True or False
Query whether the specified node belongs to the local network user.
The node to query
true if the node belongs to the local user
Returns true if the node's meta type is filtered in the specified view.
The view selection node
The node to query the filter state of
Restores the captured transform of a node.
The node to restore
True restores all the child transforms too.
Finds the root tree node. This is almost always equivilent to vrTreeRoot.
The node to get the root of
The root node
Sets the local position of the node.
The node to set the vector on
The value to set
The name of the property to set
Sets the local x position of the node.
The node to set the value on
Sets the local y position of the node.
Sets the local z position of the node.
Sets the local rotation of the node.
Sets the local x rotation of the node.
Sets the local y rotation of the node.
Sets the local z rotation of the node.
Sets the local scale of the noed.
Sets the local x scale of the node.
Sets the local y scale of the node.
Sets the local z scale of the node.
Sets the name of a node.
The node to set the name of
The new name for the node
Specifies whether this node can be recorded in the history for undo/redo operations.
The node to set the 'no history' flag of
Whether the 'no-history' flag should be active, i.e. true if the node should not be recorded.
Specifies whether this node can be saved in a VRText/VRNative file.
The node to set the 'no save' flag of
Whether the 'no-save' flag should be active, i.e. true if the node should not be saved.
Specifies whether this node should be affected by simulations, such as physics and collision.
The node to set the 'no simulation' flag of
Whether the 'no simulation' flag should be active, i.e. true if the node should not be simulated.
Sets the parent of a node.
The node to set the parent of
New parent. If this is nil, the parent is cleared, effectively deleting the node from the tree.
Specifies where to add the node in the parent's list of children, or nil to add it at the end of the list.
If true, the node's position, rotation and scale in the world will be maintained.
Sets the world position of the node.
Sets the world x position of the node.
The node to set the x value on
Sets the world y position of the node.
The node to set the y value on
Sets the world z position of the node.
The node to set the z value on
Sets the position, rotation and scale of the world transform of a node relative to another.
XYZ Position specified in a table {x, y, z}.
Euler Rotation specified in a table {x, y, z}.
XYZ Scale specified in a table {x, y, z}.
Sets the world rotation of the node.
Sets the world x rotation of the node.
Sets the world y rotation of the node.
Sets the world z rotation of the node.
Sets the world scale fo the noed.
Sets the world x scale of the node.
Sets the world y scale of the node.
Sets the world z scale of the node.
Sets the value of one of the properties of a node.
The node to get the property on
The name of the property.
The new property value to set. This value type should match the property type.
Sets the value of one of the properties of a node finding the property by its index.
The node to set the property on
The index of the property
Returns normalised vector/matrix.
Vector2 or Vector3 or Mat3 or Mat4
Normalised vector or matrix depending on the type passed in
Opens the specified pane of the given notebook.
Parse JSON data into a Lua table.
JSON data
The parsed data in Lua tables matching the original JSON structure
Converts an XML string into a hierarchy of nested LUA tables.
The XML to parse
Table representing the document structure
Pastes the contents of the clipboard as a child to the target node.
Pastes the contents of the clipboard as a child to the selection group.
Pastes the nodes on the clipboard as a link into the target property of the specified selection group.
Pastes the contents of the clipboard as a sibling to the specified node.
Pastes the contents of the clipboard as a sibling to the specified selection group.
Pastes the nodes on the clipboard as a link into all matching nodes and target properties.
Returns a plane.
The normal of the plane.
The distance from origin.
Returns a plane created from a matrix.
Returns a plane created from a triangle defined by 3 points.
Returns the distance a point is from the plane. A negative value means that the point is behind the plane. A positive value means the point is in front. A zero means it is on the plane.
Returns whether or not a line made of two points will intersect a plane.
true if the line intersects the plane
Returns how far along the ray an intersection point with this plane is.
Returns a plane transformed by a matrix.
Gets the Visionary Render plugins directory.
Absolute path to the plugins directory in the application install folder
Convert polar coordinates to degrees.
Convert polar coordinates to radians.
Pops up the gallery window.
Pops open the property window.
Selection to display the properties of
Pops up the tools window.
Moves a node to the user's current position and orientation.
The node to move
Posts a command to be processed by Visionary Render.
The command to post
Parameter to pass to the command
User to run the command as (default: local user)
Presents a message box to the user.
The message to display
Returns the cluster master's user node, or the local user node if unclustered.
Begins showing the progress display.
When the only argument, string message to display
When not the only argument, integer progress value for bar display
The maximum range of the progress bar
Ends the progress display.
Create Nodes under user tree to indicate when progress events are occuring.
Whether to enable progress messages
Updates the progress display.
Transforms a vector by the inverse of the current projection matrix.
Viewport to get the projection matrix from (defaults to local user's default viewport)
Transforms a vector by the current projection matrix.
Adds a file to the end of the list of recent files and its folder to the end of the list of recent folders.
Adds a file to the end of the list of recent imports and its folder to the end of the list of recent import folders.
Return an identity quaternion.
Returns the dot product of two quaternions.
Return a quaternion constructed from a rotation around an axis.
The axis to rotate around.
The angle to rotate by.
Return a quaternion constructed from euler angles.
The X, Y and Z angles to construct the quaternion from.
Returns a quaternion constructed from a 4x4 matrix.
The matrix to construct with (mat3 or mat4).
Returns the linear interpolation between two quaternions.
Returns the spherical interpolation between two quaternions.
Returns a ray.
The origin of the ray.
The direction the ray is pointing.
Releases a node attached to the hand. This works in conjunction with vrGrabObjectWithTrackedHand and the TrackedManipulatorTool.
The node to release, or nil to release all objects from the specified hand(s)
-1 for any hand, 0, for left hand, 1 for right hand
The user holding the node, or nil to deduce the user automatically
Finds audio nodes and reloads the audio data from the associated files.
Recursively finds texture nodes and reloads the texture data from the associated files.
The node to start searching from. Can be an individual texture node.
Removes an observer.
The unique ID specified when adding the observer.
Removes a recent file, folder or import from the corresponding list.
The filename to remove
Either 'RecentFiles' or 'RecentFolders'
Removes the TransformLimits on a node.
The node to remove the limits from.
The Type of TransformLimit to remove. Arguments are: "Position", "Rotation", "Scale".
Invokes a dialog to select a folder.
Caption to present on the dialog
Path to the initial directory to browse (default: the last directory something was opened from)
Absolute path to the selected folder
Invokes a dialog to load a file.
Caption to present on the dialog (optional, default: 'Select File')
Path to the initial directory to browse (optional, default: the last directory something was opened from)
Windows-style file filter string with | in place of null chars (optional, default: 'All Files (*.*)|*.*|'
Default file extension to filter by (optional, no effect when using default filterStr)
Absolute path to the file selected by the user in the dialog
Invokes a dialog to save a file.
Path to the initial directory to browse. (optional, default: the last directory something was opened from)
Windows-style file filter string with | in place of null chars. (optional, default: 'All Files (*.*)|*.*|'
Default file name to provide in the file name control on the dialog (optional)
Absolute path to the file selected by the user in the dialog (this file may not exist)
Refreshes the scale of the PRS manipulator.
Resets the windows to their initial positions and states that they were when the application was started.
Restores the captured state of the Lua global environment.
Saves a Visionary Render format file.
The node to start saving from (use vrTreeRoot for a full scene save)
The path to the output file
True creates new UUIDs from nodes into the file.
Returns the Scenes node from the tree.
Inserts text into the currently visible script editor tab and advances the insert cursor position.
text to append
Clears the script editor output.
Copies the selected text in the currently visible script editor tab to the clipboard.
Copies the selected text in the currently visible script editor tab to the clipboard and then erases it.
Deletes a single character from behind the insertion point in the currently visible script editor tab and steps the cursor backwards (backspace behaviour)
Deletes a single character at the insertion point in the currently visible script editor tab and leaves the insertion point where it is (delete behaviour)
Deletes the selected text from the currently visible script editor tab.
Finds some text in the currently visible script editor tab.
text to find
character position to start searching from
The position of the first match
Returns the current line number (zero based) in the currently visible script editor tab.
Gets the text insert cursor position in the currently visible script editor tab.
Gets the text mark cursor position in the currently visible script editor tab.
Inserts text into the currently visible script editor tab.
text to insert
Reads the clipboard, translates the contents and inserts them at the insertion point in the currently visible script editor tab.
Selects all the text in the currently visible script editor tab.
Selects the word surrounding the current insertion point in the currently visible script editor tab.
Set the cursor at the start of the specified line in the currently visible script editor tab.
Line number
Places the text insert cursor in the currently visible script editor tab underneath the mouse cursor.
Sets the text insert cursor position in the currently visible script editor tab.
Character position in the text
Specifies where the position is relative to; either 'current', 'start' or 'end'
Sets the text mark cursor position in the currently visible script editor tab. This is for highlighting text.
Sets the search query for a specified view.
The string to insert into the search box
Navigates to an entry in the selection history.
The selection group containing the now current selection
Navigates to the next selection.
Number of steps in the selection history to move
Selects a node by adding it to the specified selection group.
The selection group to add to
The node to select
true if the node was selected
Selects the specified array of nodes in the most appropriate view.
Nodes to select. Can be one node or an array of nodes
Views to consider selection in. Can be empty to consider all views. Accepts selection group names
Specifies whether to also display the properties window for the new selection
The view that the nodes were selected in
Navigates to the previous selection.
Specify a lua function to be called when user tries to quit the application.
Name of the Lua function. This function should return false if it wants to block the exit.
Sets the config to the specified mode, if its available.
Shows or hides the windows over the 3D scene.
user whose gui should be affected (defaults to local user)
Sets the browser icon for a node to the current view.
Sets the browser icon for a node to the default icon.
Sets the browser icon for a node to a texture.
The texture node
Sets an identifier for the Lua execution.
Name to identify the current Lua execution
Overrides the default Lua timeout for scripts, until the next script event is triggered.
Number of seconds to wait before timing out. A value of 0 means it never times out.
Sets the currently selected tree view frame by name.
Set the text and duration of the text in the status bar.
Text to display
Number of seconds to display the status message
Creates a scene setting as an override to an existing setting or a scene-only setting.
Path to the setting (relative to the registry root)
Default value if the scene setting is not an override
Function to call when the setting value changes
Function to call when the node has been created, which may not be immediately
Hint at which number type should be used instead of a double to create a scene-only setting (int, float, world)
Creates a new double array user setting.
The length of the array (2, 3, 4, 9 or 16)
The user that this setting belongs to (defaults to the current user)
Creates a new float array user setting.
Creates a new integer array user setting.
The length of the array (2, 3 or 4)
Creates a new boolean user setting.
The default value to apply to the setting
Creates a new double user setting.
The minimum value that can be assigned to the setting
The maximum value that can be assigned to the setting
Creates a new float user setting.
Creates a new integer user setting.
Creates a new link user setting.
Creates a new string user setting.
Gets an application setting from the user registry, or a scene override if it exists.
Gets an application setting node from the user registry, or a scene override if it exists.
Gets the node associated with the root of the settings hierarchy.
The user settings root node, or nil
Gets the root of the settings overrides in the scenes tree if it exists.
The scene overrides root node, or nil
Reads the value of a setting.
Path to the setting (relative to the registry root
Removes a scene setting.
True if the setting was removed
Assigns a custom caption to a setting, allowing the text displayed in user interface to be different from the setting name.
The caption to be displayed in the user interface
Assigns a filter to a setting. The meaning of the filter depends on the setting type.
List of allowable file extensions for a file property or node types for a link property
Assigns a step size to a numerical setting.
The step size
Assigns a type to a setting, which determines how the setting is presented in the user interface.
The type name (e.g. 'image', 'file', 'slider', 'colour', 'rect', 'sphere', 'matrix', etc.)
Writes the value of a setting.
Sets the Enabled state of a named Tool.
The name of the tool that its Enabled state is being changed
The state that we are applying to the tool (true/false)
Sets the tracked eye to the specified node.
Sets the tracked hand to the specified node.
0 for left hand, 1 for right hand
Adds transform limits onto a node.
The node to add the limits to.
The Type of TransformLimit to add. Arguments are: "Position", "Rotation", "Scale".
The Type of constraint to set. Arguments are "Lock", "Limit", "Step".
Sets the user's current viewport layout.
user whose viewport should be updated (defaults to local user)
Returns true if the camera position should be saved into documents.
Pops up the applicaiton annotation review window for the specified annotation node.
The annotation node to show
Shows a type in the gallery window.
Specifies the name of the type to show.
Pops up the application gradient editor for the specified gradient node.
The gradient node to show
Show or hide a GUI frame.
The frame node
True to show, false to hide
Invokes a dialog that shows the importer settings for the given node.
Importer node
Navigates to the next selection and shows the properties of the nodes.
The number of steps forward in the selection history to go
Pops up the application property editor for the specified view selection.
Navigates to the previous selection and shows the properties of the nodes.
The number of steps back in the selection history to go
The selection group to show properties for
True if the properties window should be shown if currently hidden
Pops up the application script editor for the specified script node.
The script node to show
Shows the specified sequence in the sequencer window.
Shows the sequencer window.
The sequence node to show
Pops up the application settings for the specified settings group.
The setting category node to show
Zero-indexed tab number to show
Return a smoothly interpolated value between A and B.
The lowest value.
The highest value.
How much to interpolate.
Applies the specified snapshot.
Returns a sphere.
The center of the sphere.
The radius of the sphere.
Returns a sphere that encapsulates two spheres.
Returns a sphere transformed by a matrix.
Returns file directory, name, and extension.
File Directory
File Name
File Extension
Identifies a Virtalis Hub URL and splits out the server name, artifact ID and artifact name.
The Virtalis Hub URL
Gets the subdirectories of a directory.
Path to the directory to scan
Array of subdirectory names
Enables or disables dynamics.
Returns the SystemsLib node from the tree.
Returns whether or object A completly contains object B.
A sphere or AABB
A sphere, AABB, or vec3
true if b is inside a
Returns whether or not two objects are intersecting one another.
True if the objects are intersecting
Toggles the visibility of the windows over the 3D scene.
If the current pane is visible it will be hidden, if it's hidden it will be made visible (and selected).
true if the pane is set to visible
Toggles the current viewport between perspective and orthographic views.
Toggles the subtree stats display in the properties window.
Toggles the Enabled state of a named Tool.
The name of the tool that its Enabled state is being toggled
Gets the first assembly currently under the tracked cursor.
Transforms a vector by the world rotation of the node.
Selects or deselects all nodes between the specified node and the last selected node without affecting the rest of the selection.
The selection container that the selection was made in
Selects (or deselects the currently selected) node without affecting the rest of the selection.
Selects all nodes between the specified node and the last selected node.
Returns the root node.
Searches the tree and returns a table of results matching the query.
A query in the format [and|or] [name|type|type.prop] [equals|not|contains] (see the Advanced Query section of the user manual for further information).
Array of nodes matching the search query
Selects the specified node in the specified view (or any view if nil).
Collapses the current selection.
Collapses the current selection and its descendants.
Expands the current selection.
Expands the current selection and its descendants.
Selects all siblings.
Selects children.
Inverts selection.
Selects parent(s) of the current selection.
Selects siblings (of same type).
Triggers a node rename in the tree view.
The node to rename
Create menu item frames for children of the menu node.
The menu node parent
Updates a menu to display the current selection history.
Gets the current user's documents directory.
Absolute path to the user's Visionary Render documents folder
Gets the current applications users plug-ins directory.
Absolute path to the plugins directory in the user's documents folder
Returns the 'Users' node from the tree.
Returns whether or not we are using a HMD.
Returns a 2 dimensional vector.
The X component of the resulting vector
The Y component of the resulting vector
Returns a 3 dimensional vector.
The Z component of the resulting vector
Returns a 4 dimensional vector.
The W component of the resulting vector
Transforms a vector by the inverse of the current view matrix.
Transforms a vector by the current view matrix.
INTERNAL.
Yields the Lua execution back to the application for the (approximate) specified time.
Number of seconds before resuming execution of this script, or 0 for one frame
No Results.