mlivesu / cinolib

A generic programming header only C++ library for processing polygonal and polyhedral meshes
MIT License
934 stars 101 forks source link

Embed a polyline into a mesh #160

Closed mariuszhermansdorfer closed 1 year ago

mariuszhermansdorfer commented 1 year ago

Thanks for putting this great library together @mlivesu!

I'm trying to adopt it to terrain modelling applications where curve-based mesh manipulation is a common task.

Consider this example. Given a terrain mesh and a curve in arbitrary 3d space: image

Embed the curve into the mesh: image

Do you have any suggestions on how to approach it?

mlivesu commented 1 year ago

the most difficult task is to project the curve onto the mesh. There are several methods that could be used for this purpose. One that comes to my mind is this, but there are many others. The library does not contain ready-to-use projection tools that you can exploit to solve your problem. Nevertheless, once you have the projection done, cinolib provides all the facilities to refine the mesh and incorporate the curve into the connectivity

mariuszhermansdorfer commented 1 year ago

Thanks for your answer @mlivesu. A general question - are you interested in someone else contributing to further development of cinolib and related algorithms? I understand you don't have the time to write the code, but I'm willing to take on the challenge. Since cinolib is only sparsely documented, I'd, however, appreciate some guidance on which methods to use and when.

I'm also not sure where to post such questions since there is no dedicated Discussions section and you close issues immediately.

mlivesu commented 1 year ago

Open issues are like ringing alarms for me to do something (e.g. fix a bug or add a feature). In this case there was nothing for me to do, that's why I closed it.

The library is open to external contributors, meaning that if someone sends code written in a style that is compatible with mine and that adds a new feature or fixes an existing bug, the pull request will be readily incorporated into the main branch.

This is code that I've written over a large period of time to support my research activities. It is bad in many ways and good in a few ways. I understand that writing a proper documentation or fixing the many issues it has would lower the entry barrier and improve the level of engagement from the community, but this is not really my priority.

Cinolib was born to save me time to do more research and not to steal from my time. If you enjoy using it, wish to contribute and are able to find your way through my code I am happy, but in all honesty I have not time/energy to help in any significant way :)

mariuszhermansdorfer commented 1 year ago

Gotcha. Thanks for making it clear. I'll see how far I can push it without guidance and - if I get anywhere meaningful - submit some PRs.