contourpy / contourpy

Python library for calculating contours in 2D quadrilateral grids
https://contourpy.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
82 stars 23 forks source link

Can contourpy be modified into a pure C++ application? #350

Open Robert-Earth opened 10 months ago

Robert-Earth commented 10 months ago

@ianthomas23 Contourpy is excellent code. I am wondering if it can be modified into a pure C++ application, independent of Python. How are application licenses issued?

ianthomas23 commented 10 months ago

It would be possible to create a pure C++ version of ContourPy, but it would be a separate library without all the Python stuff even though it would share much of the underlying C++ code.

From a technical point of view it wouldn't be particularly difficult, but there are some awkward design decisions. It uses a multidimensional array library for passing data in and out, and NumPy is the standard for Python so that was an obvious choice. But in pure C++ there is no one single array library, options are xtensor, Eigen, Armadillo, etc. Choosing one of these will please some people and annoy others. It would probably have to support many options as a compile-time choice, increasing complexity.

As for licensing, such a library would be Open Source under the BSD 3-Clause License, the same as ContourPy. It could therefore be included in other software subject to the conditions of the license.

Could you explain more about your use case here? Are you looking to render contours or process them in some way? And as a simple standalone application or part of some longer complex process?