|
From: Ethan A M. <merritt@u.washington.edu> - 2009-01-04 04:59:09
|
On Saturday 03 January 2009, Ethan A Merritt wrote:
> On Saturday 03 January 2009, Ralf Juengling wrote:
>
> > While working on this patch I noticed that xyerrorlines takes
> > up to six data columns plus optionally two more (ps variable, lc
> > variable), which exceeds MAXDATACOLS in datafile.h. Is this a
> > known problem?
>
> Huh? xyerrorlines has no points, so how can it have 'ps variable'?
>
> But yes, there are plot styles that would go over the 7 column limit
> if all the properties were variable. This is particularly true
> for "linespoints", and several people have complained about it.
>
> Of course it is possible to increase the number of slots in
>
> typedef struct coordinate {
> enum coord_type type; /* see above */
> coordval x, y, z;
> coordval ylow, yhigh; /* ignored in 3d */
> coordval xlow, xhigh; /* also ignored in 3d */
> } coordinate;
>
> from 7 to some larger number.
For instance, I would welcome a patch that added a field
coordval color;
as already commented in the code.
The current handling of color information is a terrible hodgpodge,
with different plot style storing it in various different slots,
and the actual plot code then having to figure out where to pull
it from.
That would both simplify the color-handling code and free up
another data slot for storing values read to support other uses
of the "variable" attribute.
Ethan
> For large datasets this would
> cause a significant increase in memory use, whether or not the
> plot actually used the extra slots.
> Maybe that's OK. Memory is cheap these days.
> But if we are going to do that, we need some more coherent system of
> where to store what kind of value. The definitions that are in the
> code as deceptive, in that they are not always true.
>
> /* These fields of 'struct coordinate' used for storing the color of 3D data
> * points (if requested by NEED_PALETTE(this_plot), for instance).
> */
> #define CRD_COLOR ylow
> #define CRD_R yhigh
> #define CRD_G xlow
> #define CRD_B xhigh
> #define CRD_A ylow
> /* The field of 'struct coordinate' used for storing the point size in plot
> * style POINTSTYLE with variable point size
> */
> #define CRD_PTSIZE xlow
>
>
>
>
--
Ethan A Merritt
Biomolecular Structure Center
University of Washington, Seattle 98195-7742
|