vers l'index général de l'aide
Créer une fonction, une procédure, un module, complexe ou pas, qui sera paramétrable à chaque appel.
Cette macro pourra donner, en sortie, une forme, un nombre, une texture, ou un objet complexe, arbre, bibliothèque, fenêtre, herbe, lens flare, engrenage hélicoïdal, etc...
POV-Ray 3.1+sup.
Une macro est un ensemble, plus ou moins complexe, de commandes éventuellement "nourries" de paramètres spécifiés au moment ou la macro sera invoquée dans le script.
L'usage des macros permet de simplifier les scripts et de réaliser des opérations complexes inimaginables autrement. Une fois la macro écrite, elle pourra être réemployée indéfiniment par un simple appel. Les macros ont fait avancer POV-Ray un peu plus vers le monde de la programmation et certains problèmes ne sont solubles qu'à l'aide de macros.
Il peut être utile de connaître les variables locales.
// nom de la macro avec nom des paramètres #macro Ma_Macro (Parametre_1,...,Parametre_n) // développement de la macro blabla Parametre_1 //appel des paramètres .../.... blabla Parametre_n #end
Ma_Macro(5,..,2)
Création de la Macro avec 5 paramètres
// déclaration de la macro avec nom des paramètres #macro Faire_Fenetre (Largeur_Ext, Hauteur_Ext, Largeur_Int, Hauteur_Int, Profondeur) // développement de la macro avec appel des paramètres #local Horz = (Hauteur_Ext - Hauteur_Int)/2; #local Vert = (Largeur_Ext - Largeur_Int)/2; difference{ box{<0,0,0>,<Largeur_Ext,Hauteur_Ext,Profondeur>} box{<Vert,Horz,-0.1>,<Largeur_Ext-Vert,Hauteur_Ext-Horz,Profondeur+0.1> } translate <-Largeur_Ext/2,-Hauteur_Ext/2,0> // pour centrer } #end
Appel de la Macro
Faire_Fenetre(5,5,4,4,15 ) // appelle la macro avec passage des paramètres object {Faire_Fenetre(5,5,3,3,1) pigment {Red} } // ou bien pour avoir un pigment union {Faire_Fenetre(5,5,1,1,1) pigment {Blue} // une autre manière object {...} ... }
|
|
Fenetre(5,5,3,3,1)
|
Fenetre(5,51,1,1)
|
Pour vous mettre le pied à l'étrier, voici une série de macros qui font la démonstration des usages les plus évidents de cette fonctionnalité.
Si vous définissez vos macros dans un fichier séparé, à inclure dans votre script principal, sachez que l'utilisation d'une extension ".mcr" est un usage qui tend à s'imposer parmi les utilisateurs de POV-Ray.
auteur : Martial Rameaux