Mettiamo il caso, ma è solo un'ipotesi, che io abbia capito il tuo problema: Vuoi poter applicare una serie di trasformazioni (che vengono generate a run time) ai tuoi elementi grafici; quindi io ti consiglierei di impostare (in linea di massima) la struttura dell'applicazione nel seguente modo:


codice:
class CMesh { //Base Class
    //Interfaccia pubblica usata dai trasformer, ...
}


class Transformer { //Base Class
    public: virtual void doStuff(Mesh mesh) = 0;
}


class FooTransformer : public Transformer {
    public: FooTransformer(/*params ... */) { /*...*/ }
    public: void doStuff(Mesh mesh) { /* do stuff ...*/}
}

Quindi, una volta istanziato il Transformer che ti serve (se hai una serie di parametri fissi, che determinano il tipo di trasformer, puoi anche optare per i template), nel loop principale potrai applicare i vari effetti ai vari oggetti di tipo CMesh nel seguente modo:


codice:
CMesh myMesh(/*...*/);
FooTransformer myTransformer(/*...*/);


//....


myTransformer.doStuff(myMesh);

Quindi non sarà l'oggetto CMesh, target della trasformazione, a dover prelevare i parametri necessari alla trasformazione stessa, ma sarà la Trasformazione (in fase di istanza oppure nella chiamata) a disporre di tali informazioni.


Ovviamente puoi mettere tutti i trasformer in un array ed eseguirli uno dopo l'altro (in questo caso avrai un array contenente le coppie <Transformer, CMesh>) in base a temporizzazioni o eventi.


Spero di aver colto e di essere stato d'aiuto.