FFL.MAC est une extension du langage PT destinée à l'écriture de fichiers .FFL (Filter Factory Library) et à la génération de documentations concernant ses fichiers.
FFL.MAC introduit un certain nombre de macros spécifiques qui complètent ou se substituent aux macros PT standards.
| Code | Résultat |
_bFilter(<Title>,<FileName>,<Cat>,<Author>)
|
<Title>: nom du filtre
<FileName>: nom de la page et le nom du fichier (1 mot)
<Cat>: catégorie
<Author>: nom de l'auteur.
|
_Description(
<Text>
) |
_Description est facultatif.
<Text>: texte descriptif du filtre.
|
_Sliders(
<h0>,<v0>,<d0>,
... <h7>,<v7>,<d7>) |
_Sliders définit les 8 paramètres.
<hi>: texte de l'entête du i-ième paramètre.
<vi>: est la valeur initiale du i-ième paramètre.
<di>: description du i-ième paramètre.
|
| _bAuxVar
_nAuxVar( <num>,<Text>)
... _eAuxVar |
définit les variables auxilliaires.
<num>: numéro de la variable.
<Text>: description de la variable.
|
_Functions(
<di>,<fi>,
<dr>,<fr>,
<dg>,<fg>,
<db>,<fb>,
<da>,<fa>) |
décrit et définit les fonctions du filtre.
calculs préliminaires. rouge vert bleu opacité |
| _eFilter |
Chaque filtre (cf. format d'écriture d'un filtre)
doit impérativement employer,
avant (la définition des fonctions,funct)
l'une des macros
_Sliders<i> (0,<=<i><=8), _NoSliders, _Sliders
qui définissent les paramètres du filtre.
_NoSliders, _Sliders sont respectivement équivalents à _Sliders0 et _Sliders8
_NoSliders
_Sliders<i>(h0,v0,d0,..,h<i-1>,v<i-1>,d<i-1>)
Les arguments h
définissent les entêtes des paramètres
tels qu'ils apparaissent dans GIMP.
Les arguments <i>v
définissent les valeurs initiales (ou valeurs par défaut) des paramètres.
Les arguments <i>d
permettent de nommer et de décrire les paramètres.
<i>
_Sliders5(
Red,255,_Math(i\[0\]) rouge de la couleur attractrice,
Green,255,_Math(i\[1\]) vert de la couleur attractrice,
Blue,255,_Math(i\[2\]) bleu de la couleur attractrice,
Min. Radius, 64,_Math(m),
Max. Radius,128,_Math(M)
)
Un nouvel environnement (_bAuxVar, _eAuxVar, _nAuxVar) a été ajouté afin de documenter l'emploi des variables auxilliaires.
_bAuxVar
_nAuxVar(<num>,<d>)
_eAuxVar
L'argument <num> définit le numéro de la variable
et <d> est sa description.
_bAuxVar
_nAuxVar(0,_Math(d)"," la distance entre les couleurs)
_eAuxVar
Chaque filtre (cf. format d'écriture d'un filtre) doit impérativement employer, en fin de page, l'une des fonctions _Functions, _LargeFunctions, _SmallFunctions qui définissent les formules du filtre.
_Functions(di,fi,dr,fr,dg,fg,db,fb,da,fa)
_LargeFunctions(di,dr,dg,db,da)
_SmallFunctions(fi,fr,fg,fb,fa)
_Formula(d,fff)
Les paramètres fi, fr, fg, fb, fa
contiennent respectivement
la partie d'initialisation et
les formules définissant le rouge, le vert, le bleu et l'opacité.
Les paramètres di, dr, dg, db, da
contiennent les descriptions de ces formules.
Cependant le contenu de ces derniers paramètres varient suivant la
macro.:
Les descriptions de la macro. _Functions ne contiennent
que les descriptions. En revanche,
les descriptions de la macro. _LargeFunctions englobent
également les formules;
les parties hors-formules doivent être mise en paramètre
des macro. _FFLCom.
La macro. _Formula a été ajoutée pour simplifier
l'écriture des paramètres de _LargeFunctions.
d est la description
(l'emploi de _FFLCom est inutile),
fff est la formule.
_LargeFunctions(
_Formula(
calcul de la distance euclidienne _Math(d)
,
"put(c2m(c2m(r-ctl(0),g-ctl(1)),b-ctl(2)),0),"
)
,
"c",
"c",
"c",
_Formula(
calcul de l`opacité si _Math(M!=m)
_MathForm("a = scl(d, m, M, 255, 0)")
calcul de l`opacité si _Math(M==m)
_MathForm(a = 255 si d\<m = 0 sinon)
,
"ctl(3)==ctl(4)?(get(0)\<ctl(3)?255:0):scl(get(0),ctl(3),ctl(4),255,0)"
)
)