Comme promis, la prochaine question sur la génération de code avec Boost.Preprocessor, cette fois concernant la génération de paramètres dit de swizzle.
Je veux créer un enum qui indique toutes les combinations possibles d'un vecteur (2d à 4d). Par exemple, pour un vec2 avec les éléments x et y, ce sera
enum vec2swizzle2{ xx, xy, yx, yy };
et avec un vec3 et les éléments r, g, b, ce sera
enum vec3swizzle2{ rr, rg, rb, ... , gg, ..., bb};
avec 6 combinations possibles, et
enum vec3swizzle3{ rrr, rrg, rrb, ... , ggg, ..., bbb};
avec 9 combinations possibles.
je pars d'un array #defini comme (4, (x, y, z, w)) que je donne en pature à une macro avec un paramètre pour la taille des combinations et je veux que ca me sorte un array (n, (...)) dans un premier temps (ou une séquence (n)(xx)...(yy)).
N'hésitez pas à donner vos idées ou remarques sur la facon de procédér.
(Nota: je pense m'y prendre avec une macro qui me donner une sorte de merge sur deux arrays donnés en paramètre).
Partager