Comments (12)
from sfcgal.
Simplified input still reproducing the robustness issue:
POLYGON((1686350.74365082 5402217.7661505,1684030.810026 5402682.520688,1684000 5402672.31399816,1683763.966259 5402588.179891,1681281.134295 5403807.881624,1683915.838219 5402676.741864,1684000 5402711.41802501,1684020.618162 5402719.913077,1687524.6533522 5404490.5663652,1687854.358551 5403919.598884,1686350.74365082 5402217.7661505))
from sfcgal.
Filed upstream here: CGAL/cgal#123
from sfcgal.
I guess I could implement the polygon translation in SFCGAL, but it'd be best done after pr #85 is merged
from sfcgal.
Translating a Polygon_with_holes_2 is revealing harder than I hoped for. It'd be a pity to clone the input Geometry just for the sake of translating, am I missing an easy way to do that ?
from sfcgal.
It's probably not the issue but worth double checking the vertex ordering. I forget which it wants but I was getting back 0,0 points. Reversing the direction fixed that. If you're only getting that one point that's wrong it might be an totally different issue.
from sfcgal.
Single point out, and fixed by augmenting the available bits for computation (shifting to origin)
from sfcgal.
It looks like the problematic vertex joins two aligned segments. If it's really the case, then maybe joining aligned ring segment would fix things.
I don't mind gaining precision/robustness by moving vtx near origin, but this alignment, considering the definition of a straight skeleton bugs me a little.
from sfcgal.
from sfcgal.
Here's the HEXWKB format for the offending polygon input as I just found out that parsing it from WKT makes the problem go away:
010300002091080000010000000A00000063022B0A53C139419EFCD3EF4E9B54412DDD5DCF3EB23941C4F352A10E9C54410400000020B23941C08B18140C9C544116E9B9D592A739410DA9B7E75A9B54413B28612281A7394113876CF8279D54413C8595D6CBB1394125B37A2F0D9C54410400000020B23941F9EBC0DA159C544168DD3F9E34B2394184DA6FFA179C5441524F641C54C13941C3874722D79D544163022B0A53C139419EFCD3EF4E9B5441
Any way to have SFCGAL parse WKB for writing the testcase ?
from sfcgal.
about the aligned segments idea, this simple polygon does not trigger the problem:
POLYGON((0 0, 10 0, 10 10, 5 10, 0 10, 0 0))
from sfcgal.
Also passing the input polygon trough ST_Simplify() with a tolerance of 1e-10 does not remove the "almost collinear" vertex. A tolerance of 1e-9 does, fixing the problem.
from sfcgal.
Related Issues (20)
- Bundled build HOT 2
- Replace auto_ptr by unique_ptr HOT 2
- Memory leak in extrude HOT 4
- PostGIS make error HOT 17
- unit-test & garden-test timeout with Boost 1.67 HOT 19
- Red warnings upon build of SFGCAL 1.3.6 HOT 1
- 1.3.6 build error on Fedora 30 (CGAL 4.14, gcc 9.0.1) HOT 19
- Undefined behaviour in CGAL when using difference3D HOT 2
- Crash under sfcgal_geometry_triangulate_2dz / SFCGAL::algorithm::isValid HOT 5
- "Geometry& operator= " is not implemented HOT 8
- CGAL 5.0 support HOT 6
- SFCGAL generates incorrect 3D intersection HOT 5
- Segfault on isValid HOT 6
- Installation creates both (prefix)/lib AND (prefix)/lib64 HOT 1
- Failing ApproximateMedialAxis and StraightSkeleton unit tests on Mac OS X HOT 2
- Broken libtoolize HOT 6
- Valid Solid shells cannot be converted to CGAL polyhedra HOT 16
- make is error HOT 4
- Could not find a configuration file for package "CGAL" on SFCGAL-1.3.7 HOT 2
- [IMPORTANT] Gitlab migration HOT 8
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 sfcgal.