Boost logo

Boost :

From: Jake Voytko (jakevoytko_at_[hidden])
Date: 2007-04-02 02:21:06


Greetings, Boost!

I've been in the application process for Google's "Summer of Code",
and John Maddock brought up the idea of rapid prototyping in order to
start finalizing design ideas. Over a couple of days I worked out a
rough sketch of how the user interface would be organized. The
"Initial Proposal" below has a detailed description of what the
project is about, but the rough idea is that I need to visualize data
in STL containers using the SVG (Scalable Vector Graphics) format. The
sample code provided uses std::vector<double> containers currently,
and I will extend the idea to generic STL containers during the
summer.

Dr. Maddock had the idea that the class could use a stream-like
interface, sampled below.

     svg_graph my_graph("file.svg");

     my_graph<<x_scale(-10, 10)<<y_scale(-10, 10);

     my_graph<<plot_range(my_cont.begin(), my_cont.end());

I have the basic idea of streams working, but I haven't yet
implemented multiple streams working in conjunction (as in line 2).
Again, this is a rapid prototype that I squeezed in between
schoolwork! I intend the main bulk of the work to be done during the
summer, and I feel that I still need to do some refactoring of the
code.

I am looking for suggestions of directions people would like to see
this project go. What would you like to customize in the output? Do
you have a better idea for an interface? Am I taking the
implementation in the wrong direction? How would you like invalid data
to appear? Not at all? As a gray dot on an axis? I'd like to get a
conversation going about what the user should/should not be able to do
with this.

Initial Proposal:
http://www.tcnj.edu/~voytko2/proposal.txt

Suggestions by mentors:
http://www.tcnj.edu/~voytko2/suggestions.txt

Zip file of code:
http://www.tcnj.edu/~voytko2/svg.zip

Output of sample code:
http://www.tcnj.edu/~voytko2/first.svg

The code compiles in both MS Visual Studio 8.0 and g++ 4.0.3.

Thank you for your time,
Jacob Voytko


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk