From graphics-request at octave dot org Sun Feb 26 08:12:50 2006 Subject: Re: Object Graphics v0.2 From: Bill Denney To: Shai Ayal cc: graphics at octave dot org Date: Sun, 26 Feb 2006 09:13:04 -0500 (EST) On Sun, 26 Feb 2006, Shai Ayal wrote: > Sadly I cannot edit the wiki. You can just send an e-mail to Etienne (send me a message off-list if you need his address), and he can allow your class B address. Etienne and I are working to make the wiki more editable by more people (and make it fit together better with the main octave site), and hopefully within the next couple of weeks it will be simple for everyone and simple to administer (i.e. keep away the vandals). > Is the wiki an appropriate place? We do need and "editor" (as in > person, not application) for this document and It seems Bill is doing > just fine ... I have no problem doing it, but I just did not want to make it seem like I was trying to get my way with the standardization. One other thing is that it would make for easier finding of differences. I could try to keep a differences page as well, though. > Anyway -- The layering issue is indeed important -- in gnuplot lines are > just drawn in the order they are requested -- last line on top. In > matlab, I think they are drawn in the order they are in the "children" > property -- can someone verify? Children order sounds logical to me, but there could be slightly different interpretations in this with multiple object children types (e.g. what about axis tick marks vs children of the axis). I think it should be a bit more defined like: The order of drawing for layering should occur by iterating through all properties of the object in alphabetical order by property name (case insensitively) with the exception of children which should always be drawn last. For any item with more than one child, the children should be drawn in order of the vector. This rule brings up a lack of flexibility where the legend would likely be under the lines. Another option would be to have a LayerOrder property for everything. LayerOrder only matters within the group of drawing objects, so if you have multiple axes, a line with LayerOrder=3 on axis 1 (with LayerOrder=1) only affects the drawing within axis 1, and if axis 2 has LayerOrder=2 then axis 2 and everything within that axis would be drawn on top of axis 1 and everything within that axis. This has the side effect that it will make the code more complex and it could make plotting large plots take longer. > This is a VERY important issue. In octplot I use OpenGL (I think that > this is the case also for oplot and workshop). I am not sure that > layering is defined in OpenGL -- I was just about to ask on some > OpenGL list. Of course this could be circumvented by using z- offsets > in 2D graphs, which I already do in octplot, but it has to be difined > in this document! Z-offsets work unless we're talking about things like a 2-d plot combined with a 3d plot (an example I'm thinking of is something like a contour plot with curve on it and a surface above that). If they still work there, that sounds fine. Bill -- "Many languages have something called a macro. But Lisp macros are unique. And believe it or not, what they do is related to the parentheses." -- Paul Graham, http://paulgraham.com/avg.html