Mi sfugge cosa intendi con "matrice di rotazione". Ma se devi passare ulteriori parametri al functor, puoi usare il costruttore. Il functor è pur sempre una classe, no? L'unico vincolo è che è obbligatorio avere operator(), il resto è libero.

questo andrebbe genericamente applicato a tutte le classi che derivano da IfcBase
Non vedo cosa c'entri. Se al functor passi un 2DPoint o un 3DPoint, lui si limita a elaborare quel dato senza sapere da dove provenga.

dovrà "stare fuori" dalle classi Degli elementi
Questa non l'ho capita. :master:

forse piu' si mantiene...
Senza forse.