Yep, I accept is not a net solution. So I'll try better:
* tf: what about adding a reset mechanism to OpenGlTransform? I will call it after every shape drawing, so successive transforms don't accumulate.
* vertices: I only change the size of the shape, so first I tried to use scaling. But I didn't find an easy way to match a physical size (in meters) to gl scaling, so I went to the radical surgery procedure of changing vertices. Any suggestions?
I'm with another app just now, but I'll come back on this soon.