Google SoC 2007 - Plotting Graphs from C++ Containers in Scalable Vector Graphics (SVG) Format

Hello, I am a level 4 undergraduate of University of Moratuwa, Sri Lanka, following a Computer Science & Engineering Major. I'm very much interested in the above project idea. I have already developed a 2D and 3D graph plotting application in Visual Basic. I was dreaming of developing a graph plotting library in C++ that has the similar plotting features like famous application called MATLAB. * 2D plots * 3D plots (Mesh & Surface) * Pie charts, Bar Charts, etc.. * Axis labels, Scale, Grid, Legend * Multiple Graphs on the same figure. (Subplots) I would like to develop the solution in the following way. - Generic SVG library that exposes the primitive operations on SVG DOM - Graph plotting library - Generic plotting interface that exposes high level plotting operations to plot graphs from functions & C++ containers - A specific plotting implementation derived from generic one that uses the SVG library to carry out plotting operations. By doing it in above way I wish to improve the re-usability and theflexibilityof the code. 1. We can re-use the generic SVG library 2. Someone can derive different plotting libraries from generic one and use without changing the client code. (Eg:- Plot to screen, Plot to a document etc..) Can you please comment on above ideas. I'm looking forward for your kind comments. Thanks Kasun

-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Kasun Rodrigo Sent: 22 March 2007 11:47 To: boost@lists.boost.org Subject: [boost] Google SoC 2007 - Plotting Graphs from C++ Containers inScalable Vector Graphics (SVG) Format
Hello,
I am a level 4 undergraduate of University of Moratuwa, Sri Lanka, following a Computer Science & Engineering Major. I'm very much interested in the above project idea. I have already developed a 2D and 3D graph plotting application in Visual Basic. I was dreaming of developing a graph plotting library in C++ that has the similar plotting features like famous application called MATLAB.
* 2D plots * 3D plots (Mesh & Surface) * Pie charts, Bar Charts, etc.. * Axis labels, Scale, Grid, Legend * Multiple Graphs on the same figure. (Subplots)
I would like to develop the solution in the following way.
- Generic SVG library that exposes the primitive operations on SVG DOM - Graph plotting library - Generic plotting interface that exposes high level plotting operations to plot graphs from functions & C++ containers - A specific plotting implementation derived from generic one that uses the SVG library to carry out plotting operations.
By doing it in above way I wish to improve the re-usability and theflexibilityof the code.
1. We can re-use the generic SVG library 2. Someone can derive different plotting libraries from generic one and use without changing the client code. (Eg:- Plot to screen, Plot to a document etc..)
Can you please comment on above ideas. I'm looking forward for your kind comments.
IMO this looks a reasonable but probably over-ambitious project. I would suggest including 1D (repeated measurements of the same object displayed on a line), but not over-commit to complete 3D, Pie and Bar charts. I know they are fancy and fun, but can easily be added later. I believe that a good C++ SVG implementation is the most important thing to get done first, and I suspect it will take much of the very limited time for a GSoC project. Paul --- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com

Thank you for your comments. I will need an XML parser for implementing the SVG library. Since we don't have a Boost.XMLParser library so far, will it be OK if I use an open source XML parser library such as Xerces-C ? Thanks Kasun On 3/22/07, Paul A Bristow <pbristow@hetp.u-net.com> wrote:
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Kasun Rodrigo Sent: 22 March 2007 11:47 To: boost@lists.boost.org Subject: [boost] Google SoC 2007 - Plotting Graphs from C++ Containers inScalable Vector Graphics (SVG) Format
Hello,
I am a level 4 undergraduate of University of Moratuwa, Sri Lanka, following a Computer Science & Engineering Major. I'm very much interested in the above project idea. I have already developed a 2D and 3D graph plotting application in Visual Basic. I was dreaming of developing a graph plotting library in C++ that has the similar plotting features like famous application called MATLAB.
* 2D plots * 3D plots (Mesh & Surface) * Pie charts, Bar Charts, etc.. * Axis labels, Scale, Grid, Legend * Multiple Graphs on the same figure. (Subplots)
I would like to develop the solution in the following way.
- Generic SVG library that exposes the primitive operations on SVG DOM - Graph plotting library - Generic plotting interface that exposes high level plotting operations to plot graphs from functions & C++ containers - A specific plotting implementation derived from generic one that uses the SVG library to carry out plotting operations.
By doing it in above way I wish to improve the re-usability and theflexibilityof the code.
1. We can re-use the generic SVG library 2. Someone can derive different plotting libraries from generic one and use without changing the client code. (Eg:- Plot to screen, Plot to a document etc..)
Can you please comment on above ideas. I'm looking forward for your kind comments.
IMO this looks a reasonable but probably over-ambitious project.
I would suggest including 1D (repeated measurements of the same object displayed on a line), but not over-commit to complete 3D, Pie and Bar charts. I know they are fancy and fun, but can easily be added later.
I believe that a good C++ SVG implementation is the most important thing to get done first, and I suspect it will take much of the very limited time for a GSoC project.
Paul
--- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Kasun Rodrigo Sent: 23 March 2007 06:05 To: boost@lists.boost.org Subject: Re: [boost] Google SoC 2007 - Plotting Graphs from C++ ContainersinScalable Vector Graphics (SVG) Format
Thank you for your comments.
I will need an XML parser for implementing the SVG library. Since we don't have a Boost.XMLParser library so far, will it be OK if I use an open source XML parser library such as Xerces-C ?
IANAL but see now reason why not *provided* that its license is fully compatible with the Boost licence, notable for its complete lack of restrictions on use. In general GPL won't do. But others may have more authoritative views. Paul --- Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS pbristow@hetp.u-net.com

Paul A Bristow wrote:
I will need an XML parser for implementing the SVG library. Since we don't have a Boost.XMLParser library so far, will it be OK if I use an open source XML parser library such as Xerces-C ?
IANAL but see now reason why not *provided* that its license is fully compatible with the Boost licence, notable for its complete lack of restrictions on use. In general GPL won't do.
But others may have more authoritative views.
I think the answer to this is "it depends", if the dependency is optional: for example if a third party XML lib is used for reading SVG but not for writing it (no reason why it would be for this?) then it might be acceptible. But in general dependencies should have Boost-compatible licences. John.
participants (3)
-
John Maddock
-
Kasun Rodrigo
-
Paul A Bristow