
Andy Little wrote:
"Vladimir Prus" <ghost@cs.msu.su> wrote
Andy Little wrote:
Just provide alternative unit systems. Then we can all choose the ones we want, when we want.
Hows that? :-)
template<class CoordinateUnit> class Widget {};
? Well, over my dead body ;-)
The cleanest way to deal with units would be as a world to device transform which is applied to the window at runtime as has been mentioned before. So it would be:
Transform t; Widget w(t);
... code dealing with coordinates needs only use floats or ints ,
Now you can change the transform to whatever unit you wish. and your code will be units independent. Of course the default could be pixels so that "old timers" such as yourself who may be slightly frightened of units dont ever have to see them. ;-)
Good. In fact, that's why I meant by "2D graphics can be scaled as you like". Specifically, take a look at: QPainter::setWindow http://doc.trolltech.com/4.0/qpainter.html#setWindow-2 that establish logical coordinates for drawing, and QPainter::setMatrix http://doc.trolltech.com/4.0/qpainter.html#setMatrix that establish translate/scale transformations. Is that what you're after? - Volodya