MRPT / mrpt

:zap: The Mobile Robot Programming Toolkit (MRPT)
https://docs.mrpt.org/reference/latest/
BSD 3-Clause "New" or "Revised" License
1.95k stars 631 forks source link

Port CDisplayWindowPlots -> qwt #107

Open jlblancoc opened 9 years ago

jlblancoc commented 9 years ago

Much nicer & modern lib.

Port wxWidgets-based GUI -> qt + qwt

jolting commented 7 years ago

Maybe @LisGein might be able to take a look at this.

LisGein commented 7 years ago

I want to note that 2D and 3D graphics are inherited in Qt from different classes. Also you can't use Q3DSurface and Q3DScatter in a single widget together. I encountered an this problem in my project.

jlblancoc commented 7 years ago

I want to note that 2D and 3D graphics are inherited in Qt from different classes.

Sure! This ticket refers to 2D plots in MRPT class mrpt::gui::CDisplayWindowPlots. Your GSoC project will use 3D canvas for most of its fields, although 2D plots might be useful too at some point.

@jolting 's point, I think, is that given that you're working in this area (which will include adding an OpenGL Qt wrapper for reuse in other Qt apps), you'll probably find relatively easy solving this issue too, naturally, with a lower priority than the main points in the map GUI project.

LisGein commented 7 years ago

What about license? QCustomPlot has GNU GPL...

jlblancoc commented 7 years ago

Good point Lis, didn't see it! :-(

Well, firstly: we want MRPT to remain with BSD license.

So, for sure, including QCustomPlot would propagate the GNU GPL license to the entire project (as far as I understand it), if:

That would apply to Windows binary releases (the sources could be left as to be downloaded by the interested user). But, I think that if we only build and link against system packages of this library, using dynamic linking, we could be "safe".

I have seen different opinions about this over the years. I even recall asking this very exact question to Richard Stallman during an interview in a visit to my town, and his answer could be summarized as: "yes, GNU GPL would apply in any case [static vs. dynamic linking]". But I'm not 100% satisfied with this idea because... then it would be impossible to release any BSD package (e.g. Debian, Ubuntu) as long as they link against one single GNU GPL library (!!).

Your thoughts? :-) (cc: @jolting )

jolting commented 7 years ago

Technically, the 3-clause BSD license is compatible with the GPL. Conceivable it is possible to ship various MRPT components under different licenses, but this gets tricky. You shouldn't need to be a lawyer to use MRPT.

Alternatives:

[1] https://github.com/qt/qtcharts/blob/dev/LICENSE.GPL3 [2] http://blog.qt.io/blog/2016/01/18/qt-charts-2-1-0-release/

jlblancoc commented 7 years ago

👍 for qwt. Should do the job!