DOM Nodes

From Virtual World Web Wiki
Jump to: navigation, search

This page is part of the Infrastructure Guide. Here we'll document the different DOM node types, their properties, methods, events and purpose. Here we're describing the actual C# classes available in the VWW.CoreLibs.DOM assembly. If you're looking for information on what's available from the server JavaScript environment, check out the World Scripting Guide and World Scripting Reference.

Nodes Hierarchy

DOMObject

DOMAnimationController
DOMAudioBinding
DOMAudioEvent
DOMAudioFont
DOMClientBehaviour
DOMCollider
DOMBoxCollider
DOMCapsuleCollider
DOMMeshCollider
DOMSphereCollider
DOMCurveValue
DOMAnimation
DOMAnimationLayer
DOMCameraEffect
DOMHookPoint
DOMMaterialHookPoint
DOMRenderableHookPoint
DOMCurve
DOMCurvePlayer
DOMCurveKeyframe
DOMTexture
DOMPhysicsJoint
DOMMaterial
DOMExternalMaterial
DOMCustomMaterial
DOMVideoMaterial
DOMWebMaterial
DOMMaterialStandard
DOMMaterialMetallic
DOMMaterialSpecular
DOMReference
DOMIKLink
DOMInterpolation
DOMLOD
DOMMirror
DOMPhysics
DOMPhysicsOperation
DOMPhysicsFace
DOMPhysicsFacePoint
DOMPhysicsFaceTarget
DOMPhysicsPathing
DOMPhysicsApproach
DOMPhysicsFollow
DOMPhysicsPathTo
DOMPhysicsPursue
DOMPhysicsSpawn
DOMPhysicsSpawnArea
DOMPhysicsSpawnAt
DOMMaterialReference
DOMTitle
DOMDocument
DOMInstanceDocument
DOMLayerDocument
DOMParticipantsDocument
DOMPersonaDocument
DOMSceneDocument
DOMTypeEditDocument
DOMViewDocument
DOMScript
DOMUnknown
DOMWeather
DOMTransform
DOMCamera
DOMEffect
DOMAudio
DOMGeometry
DOMVolume
DOMRenderable
DOMController
DOMFile
DOMVRVideo
DOMTarget
DOMGroup
DOMOceanWater
DOMDecal
DOMIKTarget
DOMLight
DOMStartPoint
DOMTerrain
DOMWater
DOMRiverWater

Remarks [edit]

DOMAnimation (Full Article)

Represents a playing animation. Must be the child of a DOMRenderable or a DOMAnimationLayer

DOMAnimationController (Full Article)

Represents an animation controller that can affect one or more skeletons defined by DOMControllers. A DOMAnimationController node can be placed in the DOM as a direct child of a DOMController in which case it automatically affects that animatable skeleton, or it can be placed somewhere else in the scene and referenced by setting the DOMController's AnimationControllerID property to the ID of this node. This allows multiple characters or objects to be animated by the same animation controller.

DOMAnimationLayer (Full Article)

Represents a layer in an animation controller. This node must be the direct child of a DOMAnimationController node. It's children must all be DOMAnimations.

DOMAudio (Full Article)

Represents an audio clip or stream playing in a scene. This node forms part of the VWW DOM Rich Media Support.

DOMAudioBinding (Full Article)

Represents an actual audio clip bound to an DOMAudioEvent in an DOMAudioFont

DOMAudioEvent (Full Article)

Represents a named event that can be fired out of animations. An DOMAudioFont defines named events and connects sound clips to those events through DOMAudioBinding

DOMAudioFont (Full Article)

An audio font defines named DOMAudioEvent and connects sound clips to those events through DOMAudioBinding. These sounds apply to the first DOMController parent that has an active DOMAnimationController. Audio fonts defined deeper in the hierarchy override those closer to the DOMController. This way you can define a default font at the controller level and then override some or all of it on a peice of clothing or attachment.

DOMBoxCollider (Full Article)

Represents a box shaped DOMCollider

DOMCamera (Full Article)

Represents a node for controlling a user's camera in a scene.

DOMCameraEffect (Full Article)

Represents a camera effect in use in a scene. When placed under the scene document, it affects all users. When placed under a participant document it affects only that user.

DOMCapsuleCollider (Full Article)

Represents a capsule shaped DOMCollider. A capsule is a cylinder with a spheres at each end

DOMClientBehaviour (Full Article)

Requests a client effect or behavior. The implementation and meaning of this node is client specific. The properties of this node can be used to convey behavior configuration.

DOMCollider (Full Article)

Represents a collider which can be used to trigger events on collision, or to prevent movement of objects through eachother or barriers.

DOMController (Full Article)

Represents a controllable player or NPC avatar.

DOMCurve (Full Article)

Represents an animation of DOM properties over time. A Curve is made up of DOMCurveKeyframe child nodes with time indexes. Each keyframe can have multiple DOMCurveValue nodes which set the value of a property at that point in time. Then a DOMCurvePlayer node "plays" the curve, projecting its animated properties onto other DOM nodes in the scene that match the CSS Selector specified. The results of a curve's playing are not guarenteed to be perfectly synchronized, but many efforts are made to ensure all clients and the server are as close as possible. This is a powerful mechanism for low-cost, high-frequency animations of the DOM with almost no network traffic.

See also: Curves

DOMCurveKeyframe (Full Article)

Represents a point in time along a DOMCurve at which property values can be specified. The values of a DOMCurvePlayer's properties which are being projected onto other nodes in the DOM will blend between the values at this node and the "next" keyframe's values. "next" depends on whether the player is looping, running in reverse, etc.

See also: Curves

DOMCurvePlayer (Full Article)

While DOMCurve, DOMCurveKeyframe, and DOMCurveValue nodes define a curve and the properties it animates, the player represents the active animation. A player transitions along a curve, assuming the property values defined by the DOMCurveValue nodes at the DOMCurveKeyframes. Values will be interpolated smoothly between keyframes using interpolation functions specified by the value nodes. The animated property values assumed by the player are then "projected" onto other nodes in the DOM via a CSS-like selector.

DOMCurveValue (Full Article)

Represents a property value at a DOMCurveKeyframe in a DOMCurve. The title of this node specifies the property which will have it's value animated. You must create a property on this object with the same name as this node's title, and of the appropriate data type. Values with the same titles at different keyframes should have the same data type. The Easing property specifies how the property value will interpolate over time.

DOMCustomMaterial (Full Article)

DOMDecal (Full Article)

Represents a decal in the scene. Currently not implemented

DOMDocument (Full Article)

Represents a serialization and management boundary in a DOM tree. Serialization does not cross document boundaries. You can construct a document from other documents (as an server instance does for example). Generally a DOMDocument represents some server managed entity that has other meaning. There are several sub-classes of DOMDocument that represent several "well known" document types that introduce relevant formal properties. DOMDocument also defines the main DOM serialization / deserialization methods

DOMEffect (Full Article)

Unused. Meant to display an "effect". Use DOMRenderable instead.

DOMExternalMaterial (Full Article)

DOMFile (Full Article)

Represents an object that can be interacted with to download a file.

DOMGeometry (Full Article)

The base class for all DOM node types that have a 3D body, like a DOMVolume or a DOMRenderable

DOMGroup (Full Article)

A editor helper object that represents a grouping of objects

DOMHookPoint (Full Article)

A hookpoint can only have one child and it's name must be unique within its parent's children collection. Hookpoints are meant to be populated at runtime with "things" (usually the layout of an Object Type) and are generally used for avatar clothing or decorations. Nested hookpoints form "hookpoint paths" which can be used to locate a node relative to a known root (like a DOMController).

DOMIKLink (Full Article)

Used to connect animation curves to DOMIKTarget targets

DOMIKTarget (Full Article)

Represents the target (IK goal) that an animation curve is blending towards via a DOMIKLink

DOMInstanceDocument (Full Article)

Represents the main container for an instance of a scene loaded by an instance host. This is the root node you'll see in Curiosity in any run-time instance.

DOMInterpolation (Full Article)

Largely superceeded by the Curves system, this node can be applied as a child to a DOMTransform derived node to cause it to move smothly (on the client side)

See also: DOMCurve

DOMLayerDocument (Full Article)

Represents the contents of an editable layer that contributes to the contents of a scene. Layer documents are direct children of DOMSceneDocuments and contain scene objects. They are the basic unit of editable world, and are stored in Object Types. They are in fact, the only DOMDocument derived node that should be written to storage anywhere.

DOMLight (Full Article)

Creates a light in the scene

DOMLOD (Full Article)

Placed under a DOMRenderable this node lets you specify different materials for each Level Of Detail (LOD) of a renderable.

DOMMaterial (Full Article)

Represents a material that can be applied to a DOMRenderable

DOMMaterialHookPoint (Full Article)

A hookpoint that can only contain DOMMaterial or DOMMaterialReference children

DOMMaterialMetallic (Full Article)

Represents a metallic variant of a material based on the Unity Standard Shader

DOMMaterialReference (Full Article)

Represents a reference to another material under the same DOMController. The title of this node should be set to the Title of the DOMMaterial to be referenced. This is usefull for allowing a clothing attachment to reference a skin material defined by the parent avatar for example.

DOMMaterialSpecular (Full Article)

Represents a specular variant of a material based on the Unity Standard Shader

DOMMaterialStandard (Full Article)

Represents a material based on the Unity Standard Shader

DOMMeshCollider (Full Article)

Represents a DOMCollider that is shaped like the mesh it's attached to. These are very accurate, but very expensive.

DOMMirror (Full Article)

Probably Unused. Makes the surface of the parent DOMRenderable mirror-like.

DOMObject (Full Article)

This is the base class for all DOM node types. A DOM Object is essentially a collection of properties (name value pairs) and a collection of child DOM Objects forming a hierarchy. Changes to properties and changes to the hierarchy cause Update events to bubble up firing at each node until the the topmost node is reached.

See also: Server Scripting

DOMOceanWater (Full Article)

Represents a large body of water

DOMParticipantsDocument (Full Article)

A container for DOMPersonaDocuments, this node is always a direct child of a DOMInstanceDocument in a runtime instance.

DOMPersonaDocument (Full Article)

Represents a connected user's run-time avatar and is always a child of a DOMParticipantsDocument in a DOMInstanceDocument in a run-time Instance.

DOMPhysics (Full Article)

Represents a physics command in the DOM. Physics commands are carried out by the elected physics host (client that carries out physics calculations for the instance, or a dedicated physics host)

DOMPhysicsApproach (Full Article)

Represents a physics command in the DOM that will cause the parent transform to move, using a navmesh agent, until it reaches some other object, optionally stopping if that object is too far away

DOMPhysicsFace (Full Article)

Represents a physics command in the DOM that will cause the parent transform to rotate until it "faces" the specified target.

DOMPhysicsFacePoint (Full Article)

Represents a physics command in the DOM that will cause the parent transform to rotate until it "faces" the specified point.

DOMPhysicsFaceTarget (Full Article)

Represents a physics command in the DOM that will cause the parent transform to rotate until it "faces" the other DOMTransform.

DOMPhysicsFollow (Full Article)

Represents a physics command in the DOM that will cause the parent transform to move, using a navmesh agent, following some other transform in the scene.

DOMPhysicsJoint (Full Article)

Represents a physics joint which can be used to attach objects together so they interact according to specified rules within the physics engine.

DOMPhysicsOperation (Full Article)

Represents a physics command in the DOM that will (likely) complete and be removed, and will not be written to storage.

DOMPhysicsPathing (Full Article)

Represents a physics command in the DOM that will cause the parent transform to move, using a navmesh agent, until some conditions are met.

DOMPhysicsPathTo (Full Article)

Represents a physics command in the DOM that will cause the parent transform to move, using a navmesh agent, until it reaches target coordinates.

DOMPhysicsPursue (Full Article)

Represents a physics command in the DOM that will cause the parent transform to move, using a navmesh agent, following some other transform in the scene until it either "catches" the other object or that object "escapes".

DOMPhysicsSpawn (Full Article)

Represents a physics command in the DOM that will cause the parent transform be placed, on the ground, near it's current position or that of a target, and enabled.

DOMPhysicsSpawnArea (Full Article)

Represents a physics command in the DOM that will cause the parent transform be placed, on the ground, within a circle of a given radius centered on it's current position or that of a target, and enabled.

DOMPhysicsSpawnAt (Full Article)

Represents a physics command in the DOM that will cause the parent transform be placed, on the ground, near it's current position or that of a target, and enabled.

DOMReference (Full Article)

Represents a reference to an Object Type. If you see one of these in the DOM it represents the failure to resolve a reference into a real object when loading DOM. This can be helpful in diagnosing broken references (usually missing Object Types)

DOMRenderable (Full Article)

Represents a renderable object: something with a mesh that can be displayed in the scene

DOMRenderableHookPoint (Full Article)

Represents a hookpoint that can only contain a DOMRenderable node.

DOMRiverWater (Full Article)

Represents a flowing body of water

DOMSceneDocument (Full Article)

Represents the contents of the scene that are loaded into an instance at run-time. This node will be a direct child of a DOMInstanceDocument, and has DOMLayerDocuments and other run-time instantiated nodes as children.

DOMScript (Full Article)

Represents a server script that is loaded into the view's JavaScript insolate and which can interact with the DOM, communicate with connected clients, and leverage server component functionality.

See also: Server Scripting

DOMSphereCollider (Full Article)

Represents a sphere shaped DOMCollider

DOMStartPoint (Full Article)

Represents a position in the room at which a user's avatar could begin play. The names (titles) of start points can be specified in VWW URLs in a manner similar to an HTTP fragment identifier used to take a user to an "anchor" in an HTML page. For example: vww://vrmeeting.space/start#Welcome would take the user to the scene called "start" and spawn them in the instance at the location of the DOMStartPoint named "Welcome"

DOMTarget (Full Article)

Represents a location that can be used to path to for various reasons (starting an animation in the right place, pathing to a good place to start an interaction, etc). This node triggers various scene editor helper functionality.

DOMTerrain (Full Article)

Represents a block of terrain rendered by the client's terrain engine. Work in progress.

DOMTexture (Full Article)

Represents a texture that can be composited with other textures to provide input to a DOMMaterial texture channel. The Title of this node also sets which material texture channel this texture is applied to.

DOMTitle (Full Article)

Represents a name tag or title displayed over something. These are useful for avatar titles, as well as naming NPCs, and other objects in a world.

DOMTransform (Full Article)

The base class for all DOM node types that have a transform (position, rotation, scale)

DOMTypeEditDocument (Full Article)

A host for the contents of an Object Type when it's being edited.

DOMUnknown (Full Article)

Represents an unrecognized node. When serialized DOM data contains an unrecognized node type, one of these wrappers is created to preserve it through the serialization system.

DOMVideoMaterial (Full Article)

Represents a material that is created real-time from a video stream

DOMViewDocument (Full Article)

Represents a component created View of some DOM which can be shared by multiple connections

DOMVolume (Full Article)

Represents an area of space similar to a DOMBoxColider that can fire events when users avatar's enter and leave. Useful for triggers

DOMVRVideo (Full Article)

Represents an object that can be interacted with to play a 360 degree optionally stereoscopic video experience.

DOMWater (Full Article)

Represents a body of water

DOMWeather (Full Article)

Represents the client-specific weather system in use in a scene

DOMWebMaterial (Full Article)

Represents a web page rendered on the surface of a 3D object