Git Product home page Git Product logo

Comments (9)

bl4ckb0ne avatar bl4ckb0ne commented on May 29, 2024

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.

ubruhin avatar ubruhin commented on May 29, 2024

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.

bl4ckb0ne avatar bl4ckb0ne commented on May 29, 2024

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.

bl4ckb0ne avatar bl4ckb0ne commented on May 29, 2024

Should be fixed in 2.1.

from delaunay-triangulation.

ubruhin avatar ubruhin commented on May 29, 2024

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.

bl4ckb0ne avatar bl4ckb0ne commented on May 29, 2024

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.

ubruhin avatar ubruhin commented on May 29, 2024

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.

bl4ckb0ne avatar bl4ckb0ne commented on May 29, 2024

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.

ubruhin avatar ubruhin commented on May 29, 2024

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)

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.