Vizard's linking system allows you to quickly create hierarchical-like relationships between 3D geometry node objects and non-node objects. Links make a destination object take the position, orientation or scale of a source object. For example, linking an orientation sensor to a view causes the view to take the orientation of the sensor.
Links can have operators applied to them to offset the destination object's position, orientation or scale.
The linkable Vizard objects are <node3d>, <sensor>, <viewpoint>, <bone>, and <animationpath>. The viz.link(<source object>, <destination object>) method works by adding a task to Vizard's update-cycle to replace the destination object's transform matrix (position, orientation and scale data) with the source object's transform matrix. By default, links do not affect the scale of the destination object.
You can also associate operators with links to offset the position and orientation of the destination object. For example, operators allow you to make a view and follow an avatar from an over-the-shoulder perspective rather than at the avatar's exact position. There are two kinds of operators, pre and post.
The effective difference between pre and post operations:
\examples\linking\basicLinking.py
\examples\linking\grabbing.py
\examples\linking\mergeLinking.py
Advanced linking - Discusses the implementation of links with matrix mathematics.
Operators on links- More operator examples and implantation discussion.
Link command table- List of relevant link commands.
Transform Basics- Introduces the position/orientation/scale transforms associated with all 3D nodes.