Constraints

ANCHORS

Articulated struture

Multiple volumes attached to each other can be represented by a tree whose root face the absolute leader, the nodes of order 1 are the volumes that are attached followers, etc ...
The edges of the tree are the fasteners that consist of:
1) On one (or more) anchor points assigned to the leader
2) One anchor point associated with the follower
When the display with yes anc, the absolute leader is first positioned, then his son attached to it (by translating the anchor of every follower of anchoring corresponding leader and possibly performing dilatations and rotations) . Real-time process is automatically taken into account by the product (wired) yes anc, associated with each volume.

Method to set an anchor

`lead(id1)poi(x1,y1,z1)follow(id2)poi(x2,y2,z2);`
volume id1 is leader of volume id2 (which then becomes one of his followers). The point (x2, y2, z2) of id2 is then attached to the point (x1, y1, z1) of id1 and inherits linear transformations defined by the la matrix of id1.
Notes:
1) Must be `yes anc;` to activate anchors.
2) An arbitrary number of followers can be defined on a single leader.
3) Anchor points are added to the data structure (useful for animation: In assigning specific trajectories we can make the links soft).
4) The anchors tree is automatically built, the only constraint is to describe in descending order (from one leader to his followers).

Degrees of freedom

1) If only one anchor point is a designated leader, the link is a ball.
2) If two anchors are designated leader, the link is a rotation around an axis: the follower will pivot around the axis joining these two points.
3) If three anchor points are designated leader, the link type is fixed: Thefollower keeps a constant direction in the coordinate system linked to the leader and defined by these three points.

Access parameters anchoring

1) edit anc; command, it may appear:
* num: volume num is a root
n1 -> n2: n2 is follower of n1
2) Command edit vol(num, it may appear:
`lead;` number of its leader (none if num is a root)
`follow;` followers lisist (nono if num is a leaf)
`vertex lead;` number of the anchor point on its leader
`vertex follow;` number of the anchor point on itself
3) The following commands allow you to view and change these settings:
`vertex follow vol n;` access to number of the follower anchor point
`lead vol n;` access to number of the leader
`vertex lead vol n;` access to number of the leader anchor point
Example:
`lead vol 1=3;` assignes volume 3 as leader of volume 1
Note: In case of error (A follower has many leaders, a loop is detected, ...) a message is issued during a display the numbers of the volumes involved.
4) Command rem anc vol(id) eliminates anchorages volume id.
Notes:
Anchor points are not meaningful, but they are still in the database.
Errors may occur if, for example, anchors were removed on volume and not on his followers
5) Command ini anc removes anchors on all volumes.

reanchorage

The anchors tree can be rearranged by the command reanc vol(id) volume id becomes the new absolute leader and all links are reconstructed.

LES ATTACHS

Properties can be encapsulated in an object by the attach command, they will be executed when using this object (which in particular allows to directly use the matrix of this object if it is part of a structure anchor).

Some geometric properties can be enforced by an command adhere:

COLLISIONS

Command collision allows managing collisions between objets:
Principle
poi
vol
vol_near
vol_vol