-----Original Message----- From: lib2geom-devel-bounces@lists.sourceforge.net [mailto:lib2geom-devel-bounces@lists.sourceforge.net] On Behalf Of J.B.C.Engelen@...1578... Sent: vrijdag 5 september 2008 11:19 To: mental@...3... Cc: jon@...18...; lib2geom-devel@lists.sourceforge.net; inkscape-devel@lists.sourceforge.net Subject: Re: [Lib2geom-devel] [Inkscape-devel] Win32 nightly builds don'twork since Aug 16
-----Original Message----- From: MenTaLguY [mailto:mental@...3...] Sent: donderdag 4 september 2008 14:52 To: Engelen, J.B.C. (Johan) Cc: jon@...18...; njh@...1927...; inkscape-devel@lists.sourceforge.net; lib2geom-devel@lists.sourceforge.net Subject: RE: [Inkscape-devel] Win32 nightly builds don't work since Aug 16
On Thu, 2008-09-04 at 11:13 +0200,
J.B.C.Engelen@...1578... wrote:
Ah! just thought of something. lpe Spiro can also create non-continuous paths, although it only uses
Geom::appendNew<> (through
SPCurve)...
Hmm, how is that possible? IIRC, the appendNew API was
specifically
designed to prevent that...
I know! I still don't know why it happens, I've checked the lpe spiro code over and over, really strange. It seems to happen for spiro paths that spin out of control (chaotic, creating really big paths that maybe go to inf?) The fix back then was to multiply the path with identity matrix, which would trigger the continuity error, catch it and stop spiro calculation. Note that I had to explicitly run operator* to trigger the exception. appendNew didn't.
Okay... now *finally* I've found the cause. Adding infinite points to a 2geom path causes that non-continuity error. LPESpiro calls appendNew with infinite coordinates sometimes.
I am updating the commentary in SPCurve now, that the coordinates should be finite. Adding checks to LPESpiro, such that it skips infinite coordinates.
This should fix a looooong standing lpespiro bug. jay!
Cheers, Johan