On 2015-01-09 16:38-0000 Andrew Ross wrote:

>
> Phil,
>
> The problem was that we updated the API and added new functionality that
> was never included in the metafiles since no-one was supporting it. In
> the end we took the decision to disable it by default rather than
> distribute something that didn't work fully. The plrender code is still
> there in utils/ if you want to take a look. It would be possible to
> resurrect this is someone was enthusiastic enough.
>
> I always had it in the back of my mind to do a complete rewrite to
> make an object oriented structure storing all the plot information.
> This would allow complete recreation of a figure, and also allow
> editing of labels, data, colours etc. My vision was to implement
> something that would allow creation of proper matlab style graphics
> in octave, but it would be useful for other things too.

To Andrew and Phil:

I also would strongly encourage some volunteer to do a complete
rewrite of plmeta and plrender since it is a fundamentally good idea
to collect all plot data in a compact binary form and dump that form
to disk to be conveniently rendered later (even years later when new
devices might be available) by any device driver using plrender.

Here is my vision of how this rewrite should be implemented.  The
binary data written by plmeta and read by plrender should contain at
least a file endianness indicator, a version number for the binary
format, and a binary plot buffer containing all the plot commands.

I bring up the endianness issue because as far as I can tell plmeta
and plrender currently completely ignore that issue, and for the
rewrite I suggest we deal with the endianness issue similarly to what
is done for ephcom (where we store binary data on the disk on one
endianness platform and read it from another endianness platform as a
matter of course).  To follow what ephcom does, the plmeta device
driver should write the binary data to a file with no byte swapping,
i.e., it should simply use the platform endianness for the file.  The
plrender utility should be able to read that file back on any
endianness platform because it applies byte swapping if necessary to
transform the file endianness to the platform endianness.  All this
endianness logic happens completely transparently so essentially the
user can just forget about endianness concerns when dealing with
binary data on disk.

I also mention "a binary plot buffer containing all the plot commands"
in the above description because I suspect the code in src/plbuf.c
which is part of our core C library API could be used to deal with
such a buffer with complete generality.  That is assuming the plbuf.c
code is completely up to date with regard to all PLplot features, then
plmeta and plrender would also be automatically up to date (unlike
their sad current state).  I also suspect if the plbuf API was used,
then the actual remaining code in a rewritten plmeta and plrender
would be quite small indeed.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to