Home           
Les opérateurs dans MEL
 

<< Les variables   Les structure de contrôle en MEL >>

Nous allons voir ici les différents opérateurs utilisables avec MEL. Les opérateurs permettent d'effetuer une opération.

Les opérateurs arithmétiques

Exemple Fonction
!$a Non $a : vaut 1 si $a vaut 0, vaut 0 sinon.
-$a Négation de la valeur.
$a + $b addition de 2 nombres.
$a - $b Retranche $b à $a.
$a * $b Multiplie $a par $b.
$a / $b Divise $a par $b (retourne une valeur entière si les les 2 nombres sont des entiers.
$a % $b Retourne le reste de la division de $a par $b.
pow($a,$b) $a à la puissance $b.

Voila les opérateurs qu'il est possible d'utiliser sur les nombres, entiers ou flottants.

Il est aussi possible de calculer le produit vectoriel de deux vecteurs grâce à l'opérateur '^'.

vector $A= <<1, 1, 1 >>;
vector $B = <<2, 0, 0 >>;
vector $vect3;
$vect3 = $A ^ $B;
// Result: <<0, 2, -2>> //

Petit rappel : le produit vectoriel de 2 vecteurs permets d'obtenir le vecteur perpendiculaire au plan formé par les 2 premiers vecteurs.

Les opérateurs d'assignation

Nous allons voir qu'en plus de l'opérateur =, il existe d'autres opérateurs d'assignation. Ces opérateurs sont en fait des combinaisons de l'opérateur = et des opérateurs arithmétique et des opérateurs sur les bits vu précédemment.

Par exemple $a += $b équivaut à $a = $a + $b. Ils permettent une facilité d'écriture.

Les opérateurs de comparaison

Exemple Fonction
$a == $b Renvoie 1 si $a et $b sont égaux.
$a != $b Renvoie 1 si $a et $b sont différents.
$a <> $b Renvoie 1 si $a et $b sont différents.
$a < $b Renvoie 1 si $a est strictement plus petit que $b.
$a <= $b Renvoie 1 si $a est plus petit ou égal à $b.
$a > $b Renvoie 1 si $a est strictement plus grand que $b.
$a >= $b Renvoie 1 si $a est plus grand ou égal à $b.
$a && $b Renvoie 1 si $a et $b sont vrais.
$a || $b Renvoie 1 si $a ou $b est vrai.

Quand la condition est fausse, le résultat est 0.

Les opérateurs d'accès

Les opérateurs d'accès sont []. Ils ont été vus dans le précédent tutorial.

Les opérateurs d'évaluation

Les opérateurs d'évaluation sont très important en MEL. Ils permettent d'utiliser les fonctions MEL dans MEL!

Nous avons déjà vu ` `. Pour illustrer la différence entre les différentes méthode pour évaluer une expression, nous allons utiliser la fonction ls. Cette fonction permet de lister les objets de la scène.

Les opérateurs ` `

` ` permet d'évaluer une commande MEL. Par exemple :
string $tableau_de_retour[];
$tableau_de_retour=`ls`;
print($tableau_de_retour);

Ce code affiche :
time1
renderPartition
renderGlobalsList1
defaultLightList1
defaultShaderList1
postProcessList1
defaultRenderUtilityList1
lightList1
...
Le type du code de retour des opérateurs ` ` dépend de la fonction passée dans ` `.

Ici l'expression passée dans les opérateurs ` ` doit être écrite au format UNIX.

Les opérateurs ()

Au lieu d'utiliser les opérateurs ` `, il est possible d'utiliser les opérateurs ().
string $tableau_de_retour2[];
$tableau_de_retour2= ls();
print($tableau_de_retour2);

Ce code affiche :
time1
renderPartition
renderGlobalsList1
defaultLightList1
defaultShaderList1
postProcessList1
defaultRenderUtilityList1
lightList1
...
Ici, les paramètres de l'expression sont passés dans les ().

La fonction eval

La fonction eval permet d'évaluer une expression contenue dans une chaîne de caractères.
string $commande= "ls -cameras";
string $tableau_de_retour3[];
string $tableau_de_retour4[];
$tableau_de_retour3 = eval("ls -cameras");
$tableau_de_retour4 = eval($commande);

Les 2 variables $tableau_de_retour3 et $tableau_de_retour4 contiennent les mêmes valeurs.

eval retourne toujours un tableau de string. Il n'est cependant pas obligatoire de récupérer cette valeur de retour.

 

<< Les variables   Les structure de contrôle en MEL >>
  eXTReMe Tracker