Hi everyone,

A bit more than ten years ago, I developed a concave hull lib based on JTS, as well as the first version of the OJ extension (which is part of OJ PLUS). Since then, Michael has kindly updated this extension. Last year, Martin David released another concave hull algorithm, which is now part of JTS (see [1] and [2]). His main algorithm is based on the same paper than the one I used, and used a similar implementation, i.e. by generating an alternative way of storing the results of the Delaunay triangulation (to know about triangle adjacency and to be able to create a concave hull by erosion). On top of that, he added numerous improvements in order to help with the choice of the threshold, and developed as well other well-known algorithms such as the alpha shape one. Therefore, it would probably be a good idea to move from my previous implementation to the ones directly integrated into JTS, either by default in OJ or by creating a new extension. In both cases, I would be happy to do it. I just need to know, in the case it is integrated by default, where to add it: next to the Convex hull (Tools / Analysis / Convex hull) ? in Tools / Analysis / Geometry functions (if possible and compatible with the current parameter) ? both ? Just let me know what you think.

During the Git migration process, we discussed about the creation of a possible extension manager. I just did some tests and I managed to dynamically load a new extension with just a few lines of code based on the PlugInManager, and can be used straight away. The new installed extension will also automatically be loaded during any future launches. Extensions could be easily removed, installed from a centralised online repository (for example, from a github.io page) but also from any other compatible repository. The only problems that I can see would be: - how to update an already installed extension, i.e. how to uninstall the current version then dynamically reinstalled an updated version of the same extension without the need to relaunch OJ (it is easy to physically delete the previous version but how to properly "unload" the associated Java classes? Is it easily possible?), - to properly manage the versioning, i.e. how to properly synchronise local vs remote information about the extensions -- but it should be alright with a bit of work, - the extensions that require one or several dependencies, in other words, how to avoid a local conflict if two different versions of the same dependency are installed?

Would you still be interested about such functionality? If yes, I would rather create a first implementation as an extension itself, in order to avoid interfering with OJ core. If it satisfies all requirements, it could then be integrated in OJ as an integrated plugin (like many functionalities are). Finally, would you prefer configuration / metadata files based on json or xml?

Just let me know your thoughts about both subjects.

All the best,
Eric

[1] https://lin-ear-th-inking.blogspot.com/2022/01/concave-hulls-in-jts.html
[2] http://lin-ear-th-inking.blogspot.com/2022/05/concave-hulls-of-polygons.html


_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to