> With any luck the person who wrote Slice will pipe up...?

how's that going to help?  :-)

an aside - someone could look at adding a flag to
Stack to NOT increase the dim of the positions
so you could stack to increase the connections dim
w/o increasing the positions dim.  seems useful.

but i'm avoiding the original issue - is Slice broken or not?
i've just been doing some headache-inducing drawings here.

let's start w/ Slab(0) because it is a logical subset of the "Slice"
function.   i think the crux of the problem is that logically Slab(0)
works in connection space, and connections aren't at all tied
to any X,Y,Z axis - think of a set of quads wrapped around an
airplane wing.  the positions array can be completely irregular,
but Slab can do something reasonable because it is working
along connection dimensions which are regular.  so chris is
absolutely right when he says that dimension numbers - at
least in Slab - aren't tied to any particular position axis.

the problem is that Slice does the same thing with
connections that Slab(0) does, and then in addition it has
to decrease the dimensions of the positions.  i think that
i decided a long time after writing Slice that really it
should have an additional input - the position dimension
to be removed - to behave correctly.  that's because unlike
connections, position dimensions ARE fixed to an axis.
dimension 0 in a 3-vector is always X, etc.

i just went through a bit of doodling on paper to reconvince
myself that this is still true - that the problem has no right
answer for all cases because as it stands the module is
underspecified.  (i'd be glad to accept counter-arguments here.)

this also solves the case when the positions aren't regular.
you could reasonably want the projection of the object
along any of the possible axes, independently of what
connection dimension you are removing.   randy asked
"else what" for the case where the deltas aren't
orthogonal to the axes - but again that would be clear
because the user could specify it.

this might still be sidestepping the question of what
the default behavior ought to be if you don't specify
the position dimension to remove, but if it picks
the "wrong" one then it's less of an issue if you
can explicitly override it.

[but i didn't go back and add this input, so now i'm
trying to reconstruct why not - if i came up with
a good argument for why it isn't needed, if i found
new problems w/ it, or if i just got busy and let it drop.]

nancy

Reply via email to