ciao,
Ho una variabile membro di una classe CMesh che è un vector e puo' arrivare a contenere 100000 200000 punti cartesiani(x,y,z).
Su questo vettore devo poter eseguire svariati tipi di trasformazioni (moltiplicazione per una matrice , flip di coordinate, inversa deil punto ecc...)

mi chiedevo se non fosse un buon metodo passare un function object con il tipo di trasformazione da eseguire incapsulato come se fosse un oggetto del pattern command alla classe CMesh e quindi con un for_each o un copy eseguire la trasformazione al volo su tutti i punti del vector , e magari passare anche un range(due iterator).

per fare questo ho pensato di ereditare il function object da una classe base comune CTransformation in modo da poter eseguire:

CMesh::TransformVector(CTransformation Transform)
{
for_each(vPositions.begin(),vPositions.end(), Transform);
}

quindi potro' passare ad es un TransformRotate o un TransformScale ecc......

e le prestazioni?
avevo letto da qualche parte che era utile mettere inline la funzione da eseguire del function object , ma non ho esperienza.

grazie.