attach


attache une propriété


Principle
Syntaxe
Exemples
Voir aussi

















































Principle

       Toute commande multiple com1(p1) obj(id) com2(p2) ... comn(pn) peut être encapsulée dans l´objet id par:
attach(0)com1(p1) obj(id) com2(p2) ... comn(pn)
Cette commande sera alors exécutée automatiquement à chaque image d´une animation.
Remarques:
1) Les paramètres pi sont évalués lors de l´encapsulation et ne pourront donc pas varier.
2) Pour les faire varier exécuter com1(p1) obj(id) com2(p2) ... comn(pn) dans un callback ou la référencer dans une fonction local de l´objet id
3) Une telle instruction est exécutée lors de l´affichage et est caractérisée par un flag:
attach: retourne ce flag (1: en cours d´exécution, 0: exécution terminée).
attach(f): permet de forcer ce flag.
yes attach doit être actif.















































Syntaxe

attach(0)com1(p1)...obj(id)...

Ajoute la propriété attach com1(p1)...obj(id)... au bloc attach de l´objet id de type obj.
Options:
abs: si la même propriété a déjà été créée, elle est seulement updatée, sinon elle est ajoutée.
back: exécute attach aprè le calcul des matrices (par défaut).
front: exécute attach avant le calcul des matrices.
Remarques:
1) Préciser cette option si l´on veut ajouter des propriétés ne différant que par leurs paramètres, comme par exemple:
attach(0)vertex(1,2,3)vol(1)vertex(1,2,3)vol(2);
attach(0)vertex(4,5,6)vol(1)vertex(1,2,3)vol(3)abs;

2) Par contre il ne faut pas la préciser si l´on veut modifier les paramètres d´une propriété existante, comme par exemple:
attach(0)vertex(1,2,3)vol(1)vertex(1,2,3)vol(2);
à l´image suivante on veut déplacer ces sommets sur les sommets (4,5,6) du volume 2:
attach(0)vertex(1,2,3)vol(1)vertex(4,5,6)vol(2);
3) attach(0)interpol secx(x1,x2)vol(id) est exécuté avant l´affichage, ce qui permet de traiter d´autres propriétés comme envelope vertex.

attach(num)vol(id)

Retourne la propriété numéro num du bloc attach du volume id.
Remarque: il s´agit d´une string de caractères, valable seulement pour consultation, et ne pouvant pas être utilisée comme propriété.

attach(num)com1...vol(id)...

Modifiee cette propriété.















































Exemples

Display
Extension
Paramètres variables d´un volume
Vue adaptative
Autres exemples

Display vertex

attach(0)displ vertex(0)vol(id);
       affiche les sommets s du volume id (tous si s=0 ou est absent).

Extension sur un volume déformable

Si un volmue id est muni d´une extension et que la géométrie de ses points de contrôle est modifiée faire:
attach(0)generate ext vol(id);
Remarques:
1) Même chose pour un fractal.
2) il faut activer yes attach, yes ext ou yes frac.

Paramètres variables d´un volume

Les variations de certains paramètres d´un volume (ou de sommets de ce volume) peuvent dépendre des variations d´autres paramètres d´un autre volume (voir transformations associées:
attach(0)vertex(s1)T1(p11,p12)vol(id1)T2(p21,p22)vol(id2);
       En animation les paramètres T1 des sommets s1 du volume id1 varieront entre p11 et p12 lorsque les paramètres T2 du volume id2 varieront entre p21 et p22.
attach(0)exec("liste d´instructions")vol(id); permet d´exécuter liste d´instructions à chaque image.

Vue adaptative

attach aim poi(x,y,z)spring(.1,-.1)dist(200)view(1);
définit une vue adaptative dynamique par un ressort tendant à amener la fuite sur le point (x,y,z).
attach aim vol(1)spring(.1,-.1)dist(200)view(1);
définit une vue adaptative dynamique par un ressort tendant à amener la fuite sur le CG du volume 1.

Autres exemples

Toute commande d´affichage impliquant un objet possiblement transformé par sa matrix, comme displ axis vol, ne tient pas compte de cette transformation, pour qu´elle en tienne compte encapsuler la propriété par attach displ axis vol(id) qui sera exécutée lors de l´affichage du volume.

attach(0)dila(1,1,1, 2,1,3)vertex[6,12]ini vol(2)rota(0,PI)vol(2);
Les coordonnées des sommets [6,12] du volume 2 seront multipliées par (x,y,z) (entre (1,1,1) et (2,1,3)) quand son angle varie dans (0,PI).

a=limit rota vol(humerus_g);attach(0)rotz(-PI,0)vol(radius_g)rota(a)vol(humerus_g)coe(2);
Tourne le volume radius_g en fonction de la rotation du volume humerus_g.

a=limit rota vol(humerus_g);attach(0)rotz(-PI,0)vol(radius_g)speed(-1,1)rota vol(humerus_g)coe(10);
Tourne le volume radius_g en fonction de la vitesse de rotation du volume humerus_g.















































Voir aussi

edit attach
exec attach
ini attach
no attach
yes attach