Apologies in advance for geeking out here. (But it's still
origami-related!). Comments below.

Thus spake "Hans Dybkjær" <h...@papirfoldning.dk> on 2/13/16 10:52 PM:

>On 14 Feb 2016, at 02:12, Robert Lang <rob...@langorigami.com> wrote:
>> 
>> -- a Crease is an object with pointers to its endpoint Vertices and
>> pointers to the 1 or 2 incident Polygons;
>a) In terms of folding sequences, many crease lines are often part of the
>same fold. 
>Is et meaningful to represent this, or is it better to let the program
>compute that?

Robby didn't ask about representing sequences, just CPs, but if we were
doing that, then I'd advocate a data structure of a Fold as being a
collection of creases that all move together. So the Fold would be a
collection of pointers to the affected Creases, and, perhaps, their
starting and ending fold angles. (And if the number of pointers exceeds a
certain threshold, we can call it a Collapse.)

Note, too, that now we'd probably now need to represent the folded state
as well, not just the CP. So, perhaps, a collection of either 2-vectors
(for flat folds) or 3-vectors (for 3D folds) representing the folded form.
(And, for flat folds, some further information specifying relative layer
ordering of Polygons, if we want to avoid self-interesection.)

>b) The assignment of Mountain, Valley, and Neutral, would that be part of
>the input?
>(Neutral are unfolded crease lines, ³unused² in the model, but either an
>artefact of the folding sequence or intentionally introduced for their
>decorative effects).

Almost certainly. For flat folds, the representations of crease status are
discrete values. In Tessellatica, creases can be Mountain, Valley,
Unfolded, or Border. (There are various algorithmic reasons why it's
useful to represent the edge of the paper as a type of "crease", but it
has to be its own type.)

For 3D folds, instead of (or perhaps, in addition to) discrete M, V, U, or
B, one would typically assign the crease a "Fold Angle" property, that
captures the continuously varying fold angle (between +180^\deg, for flat
folded valley, 0^\deg, for unfolded, and -180^\deg, for flat folded
mountain.)

>c) Having neutral creases, non-planar graphs become possible, since a
>neutral line may cross other lines in points which will not be a vertex
>of the final model.

While it is in principle possible to allow this, you'll find working with
the data model far easier if you enforce planarity of the graph and not
allow any creases to cross anywhere other than at a vertex. So unfolded
creases obey the same rules as folded ones. For one example: it's hard to
define and construct the Polygon objects (representing the facets of the
CP) if you allow crossings.

>Or is it better to represent them explicitly, and then derive the
>property that it does not affect the other crease¹s position in the final
>model?

I think explicitly is better. In TreeMaker, for example, there are M, V,
and U creases. When computing the crease pattern, one computes all of the
creases based on the tree conditions, but they are all initially U. Later
in the algorithm, once one has picked a specific arrangement of flaps, one
then assigns the creases; some become M, some become V, and others remain
U. If you pick a different flap arrangement, then the crease assignment
changes. So all the creases are always present; just not all of them
become folded.

HTH,

Robert


Reply via email to