[Libreoffice-commits] libvisio.git: src/lib

Fridrich Å trba fridrich.strba at bluewin.ch
Tue Jun 25 01:38:41 PDT 2013


 src/lib/VSDContentCollector.cpp |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 0921f77b64ba08ebfc484362d13bf6f5962fa41e
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date:   Tue Jun 25 10:38:13 2013 +0200

    Avoid NANs

diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp
index b1f83d7..4c53118 100644
--- a/src/lib/VSDContentCollector.cpp
+++ b/src/lib/VSDContentCollector.cpp
@@ -1352,7 +1352,7 @@ void libvisio::VSDContentCollector::collectNURBSTo(unsigned /* id */, unsigned l
     NURBS.insert("libwpg:path-action", "L");
     double nextX = 0;
     double nextY = 0;
-    double denominator = 1E-10;
+    double denominator = LIBVISIO_EPSILON;
 
     for (unsigned p = 0; p < controlPoints.size() && p < weights.size(); p++)
     {
@@ -1399,10 +1399,10 @@ double libvisio::VSDContentCollector::_NURBSBasis(unsigned knot, unsigned degree
     else
       return 0;
   }
-  if (knotVector.size() > knot+degree && knotVector[knot+degree]-knotVector[knot] > 0)
+  if (knotVector.size() > knot+degree && fabs(knotVector[knot+degree]-knotVector[knot]) > LIBVISIO_EPSILON)
     basis = (point-knotVector[knot])/(knotVector[knot+degree]-knotVector[knot]) * _NURBSBasis(knot, degree-1, point, knotVector);
 
-  if (knotVector.size() > knot+degree+1 && knotVector[knot+degree+1] - knotVector[knot+1] > 0)
+  if (knotVector.size() > knot+degree+1 && fabs(knotVector[knot+degree+1] - knotVector[knot+1]) > LIBVISIO_EPSILON)
     basis += (knotVector[knot+degree+1]-point)/(knotVector[knot+degree+1]-knotVector[knot+1]) * _NURBSBasis(knot+1, degree-1, point, knotVector);
 
   return basis;


More information about the Libreoffice-commits mailing list