Comments (9)
Hello, I made a few breaking changes for v2, I will put back the template argument to accept only floating points. I'll notify you when it's done.
Is this the only blocker for you?
from delaunay-triangulation.
I made a few breaking changes for v2, I will put back the template argument to accept only floating points. I'll notify you when it's done.
Awesome! Do you already have a rough idea when it will be available - days, weeks or months? Do you need any help to get it finished soon?
Is this the only blocker for you?
Yes so far that's the only blocker. I have an additional critical issue when multiple points are located (almost) on a straight line, then no edges are added. But I don't fully understand the problem yet, so I can't provide any details (maybe it's only a problem in my application, not in this library). But maybe this problem sounds familiar to you? π
from delaunay-triangulation.
Im almost done with the patch, just a few things to fix. I haven't done any C++ in a while. I can only work at night at the moment, so maybe tonight or tomorrow.
For the second point, the algorithm is trying to make triangle. So 3 points in a straight line will fail to triangulate because you can't make a triangle. I'll see what I can do.
from delaunay-triangulation.
Should be fixed in 2.1.
from delaunay-triangulation.
Should be fixed in 2.1.
That was fast, thanks! π
I quickly tried to integrate the new version into my application. Now there are many compile errors when using C++11. After quick&dirty fixing them, it compiled successful, but my application behaved buggy regarding the feature which uses this library - but I could not yet determine if it's a problem on my side (since the library API has changed, I also had to update some of my code). I'll investigate this issue now...
Btw, is there any documentation how to get tests and the example built? I understand that dependencies are needed, but I have no idea how to get them installed in a way which allows meson to detect it :(
For the second point, the algorithm is trying to make triangle. So 3 points in a straight line will fail to triangulate because you can't make a triangle. I'll see what I can do.
Yeah I agree that three points on a straight line do not make sense to build triangles. But the problem is that if there are hundreds or thousands of points, and just a few of them are on a straight line, high effort is needed to detect the missing edges after running the triangulation and handle them somehow separately. I already tried to detect such points before running the triangulation, but it seems to be difficult to know which points will be handled properly by this library, and which won't (I mean, what exactly is a "straight line", especially when using floating point coordinates?)...
Maybe I'm not a typical user of such a library, but unfortunately in my PCB development application it could cost users real money if edges are missing, because manufactured PCBs have some copper traces missing π So for us, missing edges are a serious problem :(
from delaunay-triangulation.
Since 2.0 the project is using c++17, is that an issue with your code?
The only two dependencies are catch2 for the tests and sfml for the example. Which disto are you using?
And regarding the 3 points in almost a straight line, could you open another issue with a mcve please.
from delaunay-triangulation.
Since 2.0 the project is using c++17, is that an issue with your code?
Yeah we compile LibrePCB with C++11 because IMHO that's currently the most portable C++ standard. Most of the available libraries are compatible with C++11, and most platforms provide a toolchain which supports C++11. Thus I think it is the best option to develop applications using C++11 too.
If I make this library compilable with C++11 again, would you accept a PR? It seems that only a few small changes are needed to get C++11 compatibility back. EDIT: I forgot that I had to remove some of the constexpr
- If you want to keep them, it might be a bit more difficult π
The only two dependencies are catch2 for the tests and sfml for the example. Which disto are you using?
Currently I use Linux Mint 18 (Ubuntu 16.04 based). But I also tried it in a Ubuntu 19.10 Docker container - I got SFML working, but I couldn't find any "catch2" library. I installed the Apt package "catch", but that does not seem to be the correct library... EDIT: OK, I found a way to manually install the Catch2 library.
And regarding the 3 points in almost a straight line, could you open another issue with a mcve please.
Sure, will do! π
from delaunay-triangulation.
If I make this library compilable with C++11 again, would you accept a PR?
Sure, I think I only use C++17 for some syntax shortcuts, It should take a few minutes to do it.
OK, I found a way to manually install the Catch2 library.
I could add a download step in meson in case the header is not found on the system.
Is everything ok with the floating-point template? If so, can I close the issue?
from delaunay-triangulation.
I could add a download step in meson in case the header is not found on the system.
That would be nice! π
Is everything ok with the floating-point template? If so, can I close the issue?
Sure, this issue can be closed.
from delaunay-triangulation.
Related Issues (20)
- Adding triangle indices HOT 1
- Any ideas on how to unit test the result? HOT 2
- Consider moving all library code into `delaunay.h` to make a single header library HOT 5
- Upgrade to C++17 standard HOT 1
- Change build system
- Use double type only
- Use system provided catch header file HOT 1
- Flags for release build
- Fix bugs caused by #18
- could not run the command with make HOT 1
- compiling error HOT 1
- Download catch2 in meson file if not found
- Triangulation fails if there are almost colinear points in input HOT 1
- compile error on VC++ 2015 HOT 4
- Is there a way to get the indices from the original array of the triangle vertices? HOT 6
- std::vector<_Ty>::push_back No overloaded functions to accept 0 parameters in vs2012 HOT 1
- Performance of the library HOT 3
- Allow for doubles instead of just floats HOT 2
- Support Concave PolygonοΌ HOT 3
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 delaunay-triangulation.