[Ipe-discuss] ipe features

Dmitriy Morozov defaultmail at foxcub.org
Mon Jan 23 20:22:07 CET 2006

>> This would certainly improve things a lot. Should I enter a feature
>> request into the Bugzilla?
> Yes please.

Will do shortly.

>> This would be even better. It would also be important to have a feature
>> where a newly created object is placed immediately after the selected
>> object in the list as opposed to at the end (to mimick placing objects
>> in the same depth layer in XFig).
> What about a function that moves the secondary selection just before /
> just behind the primary selection in the depth order?

That's a possible solution. It's probably cleaner from the UI design point
of view.

>> This overall solution still does not allow
>> for quite as much flexibility as XFig allows for with its depth values,
>> but it would certainly allow for much finer control.
> Can you explain a bit how XFig's system works, and how you use it?
> Maybe you can convince me :-)

Sure. Each object in XFig is assigned an integer depth value. Different
objects can have same depth values. Objects with higher depth value appear
below those with lower depth value (i.e., they are drawn first). Within
each depth value the ordering of objects is undefined. Basically, an array
of lists. The beauty of it is that when drawing a new object, one can set
the depth to some specific value (so all objects drawn will be placed
within that layer); similarly one can hide and show objects with only
certain depth value which among other things allows one to move them
between different depth values in groups.

Now consider the following figure (I haven't actually needed to draw a
figure like that myself; I've borrowed the type of figure from my advisor
since I think it would illustrate the point well) . Suppose we are
illustrating a discussion of Delaunay triangulation construction as a
filtration, so it shows two sets of discs centered at the same points, but
with two different radii. Moreover, suppose you want to show them as a
union, i.e., for each set you want the boundary of the union to be black,
and the inside to be gray1 for one set, and gray2 for another set. I think
the explanation got sufficiently complicated that I'll attach a PDF file
(sorry about the quality, I threw it together in a few minutes). A good
way to do it is to draw 4 sets of discs. The lowest (deepest) set is the
contours of the discs with the larger radii, the second one is the
interiors of the discs with the larger radii, the third are contours of
the discs with smaller radii, and the fourth are their interiors. In XFig
this can be easily done by putting each one of the four sets of discs into
its own depth layer, with layers coming in order.

The right ordering can, of course, be done in Ipe, but it requires careful
planning. XFig's depth value system is a lot more forgiving to mistakes in
drawing a figure like this, and one can easily fix mistakes on the fly (in
the above imagine that you want to add a set of discs with radius
somewhere in between the two, and you'll see what I'm talking about).

The ability to move an object one step forward and backward in the list
will go a long way to making the above problem easier. Perhaps most of
what I described could be mimicked in Ipe if one could select a group of
objects (say within some layer), then first move them all together, so
they appear contiguously in the ordered list of objects, and then move
them up and down in the list as a group? But now it's not clear whether
this is as clean of a solution as explicit depths settings.

Let me know what you think.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: circles.pdf
Type: application/pdf
Size: 2680 bytes
Desc: not available
Url : http://lists.science.uu.nl/pipermail/ipe-discuss/attachments/20060123/cf36872a/attachment.pdf 

More information about the Ipe-discuss mailing list