Comments (4)
The thing is that this isn't a strictly simple polygon since both outer ring
and the hole shares a vertex. So this is a weakly simple polygon.
As long as this shared vertex is a single object the triangulator should have
no problems triangulating. If your polygon contain multiple shared vertexes
such that all the internal triangles can't form a single edge connected graph
the cleanup of external triangles will fail.
So poly2tri assumes that vertexes shared by hole and outer ring isn't shared,
but can handle it if you make sure they are the same object. Poly2tri's simple
way of cleaning away outside triangles also assumes that all inner triangles
are connected by atleast one edge so that they form a single graph.
Original comment by [email protected]
on 20 Apr 2015 at 12:32
from poly2tri.
To clearify in this case your will have to ensure that any shared vertexes are
the same object in the input to poly2tri.
Original comment by [email protected]
on 20 Apr 2015 at 12:38
from poly2tri.
Hi,
The merge of points instance have to be done in Polygon.prepareTriangulation
because there is muliple call of tcx.addPoints one for outer ring, one for each
hole and one for steiner points. And if the same instance of object are added
in context multiple time then there is neighbors computation errors.
I will make the hashmap in the method and use this hashmap for the single
tcx.addPoints at the end.
I will give you the fix today or tomorrow.
Regards,
--
Nicolas Fortin
IRSTV FR CNRS 2488
GIS http://orbisgis.org
Spatial DB http://h2gis.org
Noise http://noisemap.orbisgis.org
Original comment by [email protected]
on 20 Apr 2015 at 3:04
from poly2tri.
Hi,
Here is the patch. If hole and outer ring have the same instance of point it is
now added only once to the triangulation context.
https://github.com/irstv/poly2tri.java/compare/5951cf51acbd431232c28a2f7a5bbb802
d963a24...nicolas-f:polygon_issue_patch
https://github.com/irstv/poly2tri.java/compare/5951cf51acbd431232c28a2f7a5bbb802
d963a24...nicolas-f:polygon_issue_patch.diff
https://github.com/irstv/poly2tri.java/compare/5951cf51acbd431232c28a2f7a5bbb802
d963a24...nicolas-f:polygon_issue_patch.patch
Thanks,
Regards,
--
Nicolas Fortin
IRSTV FR CNRS 2488
GIS http://orbisgis.org
Spatial DB http://h2gis.org
Noise http://noisemap.orbisgis.org
Original comment by [email protected]
on 21 Apr 2015 at 11:23
from poly2tri.
Related Issues (20)
- Odd crash on sanitized input (c++) HOT 8
- CMake build script
- Inconsistent behavior with holes that share a point HOT 17
- add typedef for "double"
- add typedef for std::vector<Point*>, std::vector<Triangle*> and other containers
- Triangulate crashes in sweep.cc:703 HOT 3
- java version compile error HOT 3
- Polygon.getHoles() missing HOT 5
- poly2tri crashes on a very simple geometry HOT 1
- crash with attached polygon HOT 2
- Crash when triangulating a polygon HOT 1
- crash with square polygon HOT 1
- Java source unbuildable in 1.7+
- Build failed when compliling with -we4715
- Java findbugs - nullcheck of value previously dereferenced HOT 1
- Polygon with hole HOT 10
- [java] Missing triangle in non-constrained delaunay HOT 3
- Problem building library
- the EPSILON value is not exported in the python/cython version 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 poly2tri.