MenTaLguY wrote:
Okay, what I've done in HEAD is removed the various NR*S types and changed their usages to the 32-bit-precision NR*L types.
I've also introduced NR::Coord and NR::ICoord, which are now used throughout our libnr for coordinate/matrix arithmetic.
(Nathan, if you feel the name is ugly, feel free to change it)
This should also have the effect of fixing zoom again.
To Bulia's credit, his experiment did at least demonstrate that it was safe to do this.
-mental
So, are we done, or do I need to go through cvs history and verify the changes to the files in /src that call libnr?
If we do need those types defined again, I would put the definitions in nr-types.h. Actually, C++ style, wouln't the NR header properly be NR.h?
However, I do not see a reason to keep different precisions of integers. Wouldn't just defining an NR integer to be a long (whatever the machine) in all cases be sufficient? It looks like the changes in the patch, and the stuff you guys are talking about, merely imply giving the data more precision.
I think that now that we are in C++, and are in the midst of cleaning up and reorganizing code, a good way to enforce a proper parameter might be to make the parameters C++ NR::-defined, not C typedefs. So, instead of NRLong, Inkscape::NR::Integer.
Actually, according to the Rearchitecturing Translation Map (what a title), it will be Cairo eventually, anyway.
Bob