Observers

Describes how observers are notified of tree changes

The core of VRTree implements the Observer pattern to perform change subscription / notification. Node instances can be observed, meaning that callback functions are called in repsonse to changes to the tree structure or other node data.

The following observed events are exposed by the C API:

Event

Description

Node Creation

Called immediately when a node is created

Node Destruction

Called immediately when a node is destroyed. Note that deleting nodes usually puts them in the recycle bin, which does not trigger this event.

Property Value Change

Called during the next notify traversal (not immediately) when a property of a node changes. Multiple property changes are queued up into a single call to this callback, and the VRIsDirty function is used to determine whether a particular property has changed. It is important that this callback does not directly make further property modifications, as those may be missed by other observers that had already been notified during this traversal.

Node Rename

Called immediately when a node is renamed

Node Child Added

Called immediately when a node is added as a child of the observed node

Node Child Removed

Called immediately when a node is removed as a child of the observed node

Node Parent Change

Called immediately when a node's parent changes (i.e. when the observed node is moved somewhere else in the tree)

The Lua API (and by extension the C API via FFI) provides some additional observers to respond to internal scenegraph events, monitoring world transform and world enabled state of assemblies.

This is discussed in this article: Lua Observers


No Results.

Getting StartedArchitectureBest PracticesHow ToAdvanced TopicsChangelogvrtree_cppCoreForeign Function InterfaceMetanodesMigrationsObserversPropertiesTreeUtilitiesAPI DefinitionsVR ExchangePluginsLua API