On Tue, 2008-09-02 at 00:31 +0200, J.B.C.Engelen@...1578... wrote:
Maybe my explanation was unclear. Let me try again :-) Loading the following SVG:
M 2.2,3.4 L 4.567,2 L 5,6
is currently stored in Inkscape/2geom as:
(start path) linesegment from (2.2 , 3.4) to (4.567, 2) linesegment from (4.567, 2 ) to ( 5 , 6)
regardless of the precision of your pc. If you have a pc with fixed point math and 1 decimal, it'd be:
linesegment from (2.2, 3.4) to (4.5, 2) linesegment from (4.5, 2 ) to ( 5, 6)
Nothing will bug as 4.5==4.5 binary equivalent.
Now a transform matrix is applied. 2geom must apply the same math to the end points. Because the start values are identical, so will the result. If not, that's a 2geom bug.
Well, the general problem here is if not everything comes through the exact same path for each and every point, then the bits representing the same string might actually be different.
Also.. for single digit precision that one value might be (4.6, 2) and not (4.5, 2)
I don't have concrete code-path examples off hand, but this was a big issue with color and I had to fix a lot of things to keep values from bouncing feedback loops, etc.