Comments (3)
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.
@JuhaLaukala good catch, and thanks for the fix proposals! Would you like to open a PR for this?
from earcut.
Sure
from earcut.
Related Issues (20)
- Suspicious handling of a number (result of area) as a boolean
- infinite loop - polygon subtraction HOT 1
- This my test data, will wrong.
- Another infinite loop
- Bug with vertical object in 3dim space HOT 1
- The result of dividing a plane triangle is [] HOT 2
- Triangle out of contour
- Failure with simple case in 3D HOT 2
- Update readme to clarify if vertices are output in clockwise or counterclockwise order. HOT 4
- Is it acceptable for bridges to cross holes? HOT 3
- wrong triangulation HOT 1
- Bad triangulation with disjoint hole HOT 3
- Triangulation error
- Bug: Incorrect triangulation
- Typescript or JSDoc HOT 4
- Does the triangulation consider only 2 dimensions? HOT 1
- How do I use a polygon with Steiner points HOT 2
- Provide appropriate full examples HOT 2
- Incorrect triangulation with a shape in a hole HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from earcut.