faceOrders/edgeOrders inconsistency? #41
Replies: 3 comments 3 replies
-
"overlapping" only happens when faces are coplanar. currently, faceOrders can describe faces which are not coplanar too, I believe this functionality should not be lost. I propose removing the word overlapping.
Q1: Are there any other pairings we can make with the Additionally, Q2: do either of these Re: the final paragraph, "orders" can refer to either faces or edges, correct? and what is the mechanism for inferring which one? |
Beta Was this translation helpful? Give feedback.
-
It seems to me that separating the information provided by the original array (relative ordering of face pairs) from the order in which it is specified (the sequence in which the face pairs are given in the array) leads to two arrays, each of which is not useful on its own. I think this is the point of Robby's second question, and the main reason I don't like the proposal to split up the single array. On the "overlapping" issue, I agree that it sounds useful to have the relative order information even when the faces are not coplanar. However, I am not convinced it actually matters. The reason to specify the order information is because without it the folded state may not be uniquely specified. But, if the two faces are not coplanar, is it not the case that their relative positions in space (and thus the relative order information) can be inferred from the rest of the pattern? Right now I don't see either a simple proof of this statement or a counterexample, but intuitively it seems like it should hold. |
Beta Was this translation helpful? Give feedback.
-
Definitely some good ideas here! Let me add one more: If consistency were the only concern, then I think this design would make sense:
This would satisfy the constraint that anything starting with This design would be far easier to traverse: if I want to know the faces that are above One argument against this proposal is that it's harder to flip between The other issue is that Jason's proposal makes it really easy to specify multiple orders for the same folding using multiple faces. But this new proposal has some advantages too: if the orders different only in a few faces, you could just specify the faces that have any changed, leaving the rest of Regarding "overlapping", I take it Jason and Robby are thinking about the transitive closure of the "above" relation? (Not sure what flat folding has to do with anything here... But it's quite relevant with map folding for example.) There are also two notions of "overlapping" which can be confusing: interior-overlapping and closure-intersecting. Direct above/below relations are only needed with positive-area interior overlap, and don't make sense e.g. with two faces that overlap on an edge, but sometimes there are transitive implications that could be useful (like in map folding). I feel like the spec should at least mention the transitive closure issue. I take it folks are leaning toward not specifying whether things should be transitively closed (though I think we might want a helper to compute the transitive closure). While we have this excitement, I'd also like to remind folks about a now 2-year-old proposal for FOLD 1.2. (#30) If there's in fact consensus for that, it'd be nice to merge it. (But please discuss in #30 or another discussion thread.) |
Beta Was this translation helpful? Give feedback.
-
There is something that has always felt off to me about the
faceOrders
/edgeOrders
fields. Every other field in the FOLD spec maps to an array of primitives of the same type, or an array of arrays of primitives of the same type. ThefaceOrders
/edgeOrders
fields are the only exception, mapping to an array of triples of mixed type.I propose we replace
faceOrders
, currently an array of triples triple[f, g, s]
, with two fields:faceOrders_faces
, an array of ordered pairs of overlapping faces[f, g]
, andfaceOrders_assignment
, an array of order assignmentss
for each corresponding ordered pair of faces,and similarly for
edgeOrders
. I think this would be more consistent with how the other data in FOLD spec are stored.Thoughts?
We could then also consider replacing
faceOrders
withorders
. Actually, perhaps we could replace bothfaceOrders
andedgeOrders
withorders
? Are there situations where bothfaceOrders
andedgeOrders
would want to be used in the same frame?Beta Was this translation helpful? Give feedback.
All reactions