summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/2geom/sbasis-geometric.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/2geom/sbasis-geometric.cpp b/src/2geom/sbasis-geometric.cpp
index b228a8ca0..74827e27c 100644
--- a/src/2geom/sbasis-geometric.cpp
+++ b/src/2geom/sbasis-geometric.cpp
@@ -1,9 +1,3 @@
-#include <2geom/sbasis-geometric.h>
-#include <2geom/sbasis.h>
-#include <2geom/sbasis-math.h>
-//#include <2geom/solver.h>
-#include <2geom/sbasis-geometric.h>
-
/** Geometric operators on D2<SBasis> (1D->2D).
* Copyright 2007 JF Barraud
* Copyright 2007 N Hurst
@@ -21,6 +15,12 @@
*
**/
+#include <2geom/sbasis-geometric.h>
+#include <2geom/sbasis.h>
+#include <2geom/sbasis-math.h>
+//#include <2geom/solver.h>
+#include <2geom/sbasis-geometric.h>
+
//namespace Geom{
using namespace Geom;
using namespace std;
@@ -409,6 +409,9 @@ Geom::arc_length_parametrization(D2<SBasis> const &M,
Piecewise<SBasis> s = arcLengthSb(Piecewise<D2<SBasis> >(M),tol);
for (unsigned i=0; i < s.size();i++){
double t0=s.cuts[i],t1=s.cuts[i+1];
+ if ( are_near(s(t0),s(t1)) ) {
+ continue;
+ }
D2<SBasis> sub_M = compose(M,Linear(t0,t1));
D2<SBasis> sub_u;
for (unsigned dim=0;dim<2;dim++){