TGML Dynamics
A dynamic graphic object is an object (TGML element) whose properties (TGML attributes) are bound to, and controlled by, server variables (signals).
The TGML implementation (Graphics Services) only runs the dynamics engine in Dynamic mode. That is, bound properties are not dynamically updated in Static (edit) mode.
Server variables are connected to element attributes via Bind elements with associated rule elements. A Bind element belongs to the immediate parent element and specifies which attributes of the parent element are going to be dynamically updated (similar to animations). The rule elements belong to the immediate parent Bind element and they specify how a signal value is going to be converted to a TGML attribute value.
The rules are evaluated in sequence, in the same order as they are specified. A rule is executed (and the specified attribute is set) only if the specified conditions are fulfilled. If no matching rules are found, the bound attribute is left unaffected.
TGML supports different types of rule elements (ConvertValue, ConvertRange, ConvertText, ConvertStatus, etc.). Different types of rules can be combined in the same Bind element.
The Name attribute of the Bind element identifies the binding and is exposed to bind tools as a binding point to which the server variable is connected.
Overview of how an attribute in a graphic is bound to a server object, which in turn dynamically affects the graphic:
Bindings can be thought of as a "connection table" between the exposed Bind elements and the server variables. The TGML implementation (Graphics Services) only has knowledge about the Name of the Bind elements.
Subscriptions are set up using the names of the Bind elements. When the value of a bound signal is updated, it will be experienced as if the binding point was updated (the signal identity is "hidden" behind the binding point). It is up to the server, or the communication proxy depending on the binding implementation, to resolve the name.
A TGML document can contain multiple Bind elements with the same Name. However, the TGML implementation is only going to expose the Name once to the bind tool in the Graphics Editor (unique binding point). This makes it possible to have multiple presentations of a signal, using a single binding point.
Multiple Bind elements with the same Name:
For more information, see the following sections: