Coder Social home page Coder Social logo

Comments (3)

JuhaLaukala avatar JuhaLaukala commented on July 19, 2024

For the above; there are three cases where the content of the removed node is still used later; those needs to be fixed too.


 // create a circular doubly linked list from polygon points in the specified winding order
 function linkedList(data, start, end, dim, clockwise) {
-    var i, last;
+    var i, last, next;

     if (clockwise === (signedArea(data, start, end, dim) > 0)) {
         for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);
@@ -53,8 +53,9 @@ function linkedList(data, start, end, dim, clockwise) {
     }

     if (last && equals(last, last.next)) {
+        next = last.next;
         removeNode(last);
-        last = last.next;
+        last = next;
     }

     return last;
@@ -66,13 +67,14 @@ function filterPoints(start, end) {
     if (!end) end = start;

     var p = start,
-        again;
+        again, prev;
     do {
         again = false;

         if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {
+            prev = p.prev;
             removeNode(p);
-            p = end = p.prev;
+            p = end = prev;
             if (p === p.next) break;
             again = true;

@@ -223,8 +225,8 @@ function cureLocalIntersections(start, triangles, dim) {
             triangles.push(b.i / dim);

             // remove two nodes involved
-            removeNode(p);
             removeNode(p.next);
+            removeNode(p);

             p = start = b;
         }

from earcut.

mourner avatar mourner commented on July 19, 2024

@JuhaLaukala good catch, and thanks for the fix proposals! Would you like to open a PR for this?

from earcut.

JuhaLaukala avatar JuhaLaukala commented on July 19, 2024

Sure

from earcut.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.