|
From: Hans-Bernhard B. <br...@ph...> - 2004-12-06 20:57:55
|
Petr Mikulik wrote:
> (*) The ordering works with the torus example. But then I have tried this
> demo:
>
> set pm3d depth
> splot 'whale.dat' with pm3d
>
> but it does not do the ordering. What's wrong?
Probably that Johannes didn't think about multi-mesh and multi-function
plots. Hidden surface removal can't really be done on individual
surfaces --- you *have* to do it for the entire display. There's a
reason 'set hidden3d' is a global setting, and its implementation
intermixed all through the 3D graphics output routines.
Which brings me to a suggestion: this new depth-sorting feature may have
to be re-organized from scratch, and moved to be controlled by 'set
hidden3d'. I.e. it'll become the hidden3d mode of pm3d (rather than
what currently sails under than option name in 'set pm3d', which is
something entirely different).
> (*) The option "set pm3d ... depth" should have also "... nodepth" variant
> to switch this feature off.
From what I understood, 'depthsorting' is an exclusive alternative to
'scans{forward|backward|default}', so wouldn't 'scansdefault' do that
already?
> (*) Quadrangles may take a lot of memory. I propose to change double to
> float (should probably happen also for gpdPoint structure).
>
> typedef struct {
> double gray;
> double z; /* maximal z value after rotation to graph coordinate system
> */
> gpdPoint corners[4];
> gpiPoint icorners[4]; /* also if EXTENDED_COLOR_SPECS is not defined */
> } quadrangle;
Please, if you do that, respect prior art and use the existing type
'coordval' for that. That's what this type was designed for: it's
defined as double on platforms that can afford it, and float elsewhere.
|