Commandes

Principe

Les objets

Les transformations

















































Principe

Le langage

Noms des commandes

Multiplicité d´une commande

Évaluations

Affectations

Première commande

Le langage

        Le langage interne d´ANYFLO est une extension simplifiée du langage C, outre les fonctionnalités de ce langage, il possède plusieurs centaines de commandes pouvant rentrer dans une expression syntaxiquement correcte et être interprétées.

Noms des commandes

La taille des noms des commandes a été réduite autant qu´il était possible afin d´en faciliter l´écriture dans les fonctions:

Deux caractères:
CG: centre de gravité.
GO: commande de debug.
if: condition.
NF: nombre de facettes.
NL: retour à la ligne (new line).
no: non.
NP: nombre de points.
PI: nombre pi.

Trois caractères:
aba: abandon.
abs: valeur absolue.
acc: accélération.
aim: axe de visée.
add: ajouter.
anc: ancrage.
ang: angle.
arc: arc de cercle.
ang: angle.
box: boite.
coe: coefficient.
col: couleur (color).
cos: cosinus.
cut: couper.
dec: décéléré.
tran: déplacement.
dim: dimension.
dist: distance.
dup: dupliquer.
end: fin.
ent: entier.
exp: exponentielle.
ext: extension.
eye: oeil.
fac: facette.
foc: focale.
fog: brouillard.
for: boucle.
hom: homothétie.
hsv: teinte saturation valeur (hue saturation valeur).
ini: initialisation.
int: partie entière.
inv: inverse.
law: loi.
log: logarithme népérien.
lut: look up table.
pan: panoramique.
poi: point.
put: poser.
rem: supprimer (remove).
rev: surface de révolution.
see: voir.
sin: sinus.
spe: spécial.
sum: somme (sum).
tan: tangente.
var: variable.
vol: volume.
win: fenêtre (window).
yes: oui.

Quatre caractères:
acos: arc cosinus.
alea: déformation aléatoire reproductible.
alex: déformation aléatoire en x reproductible.
aley: déformation aléatoire en y reproductible.
alez: déformation aléatoire en z reproductible.
asin: arc sinus.
atan: arc tangente.
auto: variable automatique.
axis: axe.
back: fond.
ball: boule.
case: étiquette d´un switch.
char: type caractère.
clip: coupe.
cosh: cosinus hyperbolique.
cube: cube.
cutx: couper en x.
cuty: couper en y.
cutz: couper en z.
demo: démo.
dila: dilatation.
dilx: dilatation en x.
dily: dilatation en y.
dilz: dilatation en z.
disk: disque.
dist: distance.
draw: dessiner.
edit: édition.
else: sinon.
exec: exécution.
exit: quitter.
font: fonte de caractères.
frac: fractal.
geod: surface géodésique.
goto: branchement inconditionnel.
grep: rechercher.
grid: grille.
help: aide.
hole: trou.
lead: leader.
left: gauche.
line: ligne.
link: é:diteur de liens.
list: liste chainée.
LIST: commande debug.
mass: masse.
menu: menu
meta: méta commande.
move: position.
name: nom.
near: voisin.
pend: pendulaire.
pers: perspective.
pipe: tuyau.
play: jouer.
pull: tirer.
puls: pulsation.
quat: quaternion.
rand: aléroire entier non reproductible.
read: lire.
ring: sonne.
roll: roulis.
rota: rotation.
rotx: rotation en x.
roty: rotation en y.
rotz: rotation en z.
secx: section en x.
secy: section en y.
secz: section en z.
sinh: sinus hyperbolique.
sort: trier.
sqrt: racine carrée.
STOP: commande debug.
tanh: tangente hyperbolique.
syma: symétrie.
symx: symétrie en x.
symy: symétrie en y.
symz: symétrie en z.
text: texte.
time: temps.
traj: trajectoire.
type: type.
unit: unitaire.
wait: attente.
zbuf: zbuffer.
zoom: zoom.

Cinq caractères:
above: dessus.
acos: arc cosinus hyperbolique.
alias: alias.
asinh: arc sinus hyperbolique.
atanh: arc tangente hyperbolique.
atof: chaine -> float.
atoi: chaine -> integer.
audio: audio.
break: sort d´un bloc.
brush: pinceau.
clean: nettoyer.
close: fermer.
coord: coordonnées.
debug: debug.
depth: profondeur.
displ: afficher (displ).
error: erreur.
field: champ.
float: tytpe flottant.
fopen: ouverture d´un fichier.
force: force.
frame: cadre.
fread: lecture d´un fichier.
front: devant.
illum: éclairement (illumination).
image: image.
inclu: contenu.
input: entrée au clavier.
limit: limite.
light: lumière.
motif: motif.
mouse: souris.
pixel: pixel.
print: imprimer.
prism: prisme.
rand2: aléroire entier non reproductible dans un intervalle.
randf: aléroire flottant non reproductible.
right: droite.
reanc: réancrage.
scale: échelle.
scene: scène.
speed: vitesse.
split: fendre.
stock: stocker.
validate: valider.
video: vidéo.
while: boucle.
write: écrire.

Plus de cinq caractères:
adhere: adhérer.
adjust: ajuster.
alphabet: alphabet.
ambiance: ambiance.
animate: animer.
attach: attacher.
average: moyenne.
behind: derrière.
;bellow: dessous.
bitmap: bitmappe.
calloc: réservation mémoire.
camera: caméra.
center: centre.
collision: collision.
compile: compilation.
concat: concaténer.
contour: contour.
default: étiquette d´un switch.
device: périphérique, capteur.
directory: dossier.
deformation: déformer.
dynamic: dynamique.
envelope: enveloppe.
extern: variable externe.
fclose: cloture d´un fichier.
follow: suiveur.
format: format.
fwrite: écriture d´un fichier.
generate: générer.
genetic: génétique.
getline: lecture d´une ligne.
getword: lecture d´un mot.
global: variable global.
graphic: graphique.
heritage: héritage.
history: historique des lignes de commandes.
inside: intérieur.
interaction.: interaction.
interpol: interpoler.
intersection: intersection.
lattice: treilles.
local: variable local.
luminance: luminance.
malloc: réservation mémoire.
matrix: matrice.
memory: mémoire.
message: message.
morphing: morphing.
motionblur: flou de mouvement.
neuron: neurone.
network: réseau neuronal.
normal: normale.
number: numéro.
particule: particule
period: période.
precision: precision.
number: objet.
palette: palette.
product: produit.
radius: rayon.
rand2f: aléroire flottant non reproductible dans un intervalle.
rectangle: rectangle.
return: retour d´une fonction.
scalar: produit scalaire.
screen: écran.
segment: segment.
shadow: ombre.
simple: simple.
smooth: lisser.
sphere: sphère.
spring: ressort.
static: variable statique.
status: oui/non d´une commande.
stereo: stéréoscopie.
string: chaine de caractères.
stringf: float -> chaine de caractères.
switch: branchement multiple.
system: système.
vertex: sommet.
vector: produit vectoriel.

Multiplicité d´une commande

Commandes simples:
Une commandes simple est un nom de commande éventuellement suivie de paramètres.
Exemple:
        screen; Efface l´écran avec la couleur courante du fond.
        screen(r,v,b); Efface l´écran avec la couleur (r,v,b)
Commandes multiples:
Une commande multiple est une suite de noms de commandes suivies éventuellement de paramètres:
Exemple:
        alea(20,30,40) vol(1); Bruite aléatoirement de 20 (en x), de 30 (en y) et de 40 (en z) les sommets du volume numéro 1.

Évaluations

Une commande ´com1(p1) com2(p2) .... comn(pn)´ est évaluée, c´est à dire qu´elle retourne une valeur et/ou exécute une action.
Exemples: poi(3) vol(1); Retourne les coordonnées du point 3 du volume 1
        $poi(3) vol(1); Imprime les coordonnées du point 3 du volume 1

Affectations

Une commande ´com1 com .... objet(id)=val´ affecte à la propriété ´com1 com2 ...´ de l´objet id la valeur val.
Exemples:
       
poi(3) vol(1)=100,50,0; Affecte la valeur (100,50,0) au point 3 du volume 1
        col vertex(3) vol(1)=0,1,0; Affecte la couleur verte au sommet 3 du volume 1

Première commande

La première commande d´une commande multiple détermine le type de traitement:
Si c´est un objet celui-ci est construit, exemples:
        1) cube(1); construit le cube par défaut de numéro 1.
        2) cube(1)col(0,1,0); construit le même cube de couleur verte.
Si c´est une transformation celle-ci s´applique nécessairement à un objet, exemples:
        1) tran(0,100,0)vol(1); déplace de (0,100,0) le volume numéro 1 (en modifiant ses cooedonnées).
        2) tran(0,100,0)matrix vol(1); déplace de (0,100,0) la matrice du volume numéro 1 (sans modifier ses coordonnées).
Si c´est une propriété celle-ci s´applique nécessairement à un objet, exemples:
        1) col vol(1)=1,0,0; donne la couleur rouge au volume numéro 1.
        2) illum vol(1); retourne les coefficients d´éclairement du volume numéro 1.

Les objets

Les objets du langage

Les objets d´anyflo

Propriétés d´objets

Accès aux propriétés d´objets

Les objets du langage

Chaînes de caractères, exemple "AB"
Tableaux de chaînes, exemple: "MOT1 MOT2 MOT3"
Nombres flottants, exemple: 1.0
Tableaux de nombres, exemple (1,2.5,-1.0,.3)
Tableaux hybrides, exemple: [1,3],"AB",0
Variables, exemple x=[1,5], elles peuvent être automatiques, externes, globales ou statiques.
Fonctions mathématiques, exemple cos, sin, log.
Fonctions spéciales, exemple distance, scalar.
Fonctions écrites par l´utilisateur.

Les objets d´anyflo

Ils sont caractérisés par un type
Ils sont connus à leurs création par leur identificateur.
Exemples:
        cube(7)dim(200); Crée le volume de type cube, de côté 200, et de numéro 7.
        ball("BB")dim(100)secy(12); Crée la boule de nom BB, de centre (0,0,0), de rayon 100, et de 12 sections en y.

Propriétés d´objets

Les objets peuvent être munis d´un nombre quelconque de propriétés arbitraires. À leur création certaines propriétés peuvent être définies automatiquement.
Par exemple cube(7)dim(200); crée un objet de type cube comportant:
        une propriété ´poi´ constituée de 8 points.
        une propriété ´fac´ constituée de 6 facettes.
Après création d´un objet des propriétés peuvent lui être ajoutées, exemples:
        illum vol(7)=1; Affecte la couleur rouge au volume 7.
        poi(0) vol(7)=0,0,0; Ajoute le point (0,0,0) au volume 7.

Accès aux propriétés d´objets

Évaluation:
        poi(3) vol(1); Retourne les coordonnées du point 3 du volume 1.
        illum vertex(3) vol(1); Retourne la couleur (r,v,b) du sommet 3 du volume 1.
Affectation:
        poi(3) vol(1)=100,50,0; Affecte (100,50,0) au point 3 du volume 1.
        illum vertex(3) vol(1)=0,0,1; Affecte le bleu comme couleur du sommet 3 du volume 1.
Création:
        illum screen vol(1)=1,0,1; Crée la propriété ´illum screen´ du volume 1 et lui affecte la valeur (1,0,1)
        func vol(1)="toto"; Affecte la fonction toto() au volume 1.
        local(0) vol(1)=func "toto"; Ajoute la fonction local toto() au volume 1.

Les transformations

Transformations d´objets

Les commandes de transformations

Liste des commandes

Transformations d´objets

Toute commande multiple commençant par une commande de transformation et comportant un type d´objet, transforme cet objet
Exemples:
        tran(100,0,0)vol(1); Déplace le volume 1 de (100,0,0)
        alea(20,30,50)vertex[1,100] vol(1); Bruite respectivement de 20(en x), de 30 (en y) et de 50 en z) les sommets (1,2,...,100) du volume 1.

Les commandes de transformations

see manuel des transformations.

Liste des commandes

Commandes de l´interpreteur
Commandes d´anyflo