// output of ./demo/comb/string-subst-hilbert3d-demo.cc:
// Description:
//% 3-dimensional Hilbert curve generated by an L-system.

arg 1: 2 == ldn  [Number of recursions, will create 8**ldn points]  default=2
arg 2: 4160 == cmax  [Max length of string]  default=4160
     1:    dir=[ 0,  1,  0 ]  ^    pos=[ 0,  1,  0 ]
     2:    dir=[ 1,  0,  0 ]  >    pos=[ 1,  1,  0 ]
     3:    dir=[ 0, -1,  0 ]  v    pos=[ 1,  0,  0 ]
     4:    dir=[ 0,  0,  1 ]  +    pos=[ 1,  0,  1 ]
     5:    dir=[ 0,  1,  0 ]  ^    pos=[ 1,  1,  1 ]
     6:    dir=[-1,  0,  0 ]  <    pos=[ 0,  1,  1 ]
     7:    dir=[ 0, -1,  0 ]  v    pos=[ 0,  0,  1 ]

     8:    dir=[ 0,  0,  1 ]  +    pos=[ 0,  0,  2 ]
     9:    dir=[ 1,  0,  0 ]  >    pos=[ 1,  0,  2 ]
    10:    dir=[ 0,  0,  1 ]  +    pos=[ 1,  0,  3 ]
    11:    dir=[-1,  0,  0 ]  <    pos=[ 0,  0,  3 ]
    12:    dir=[ 0,  1,  0 ]  ^    pos=[ 0,  1,  3 ]
    13:    dir=[ 1,  0,  0 ]  >    pos=[ 1,  1,  3 ]
    14:    dir=[ 0,  0, -1 ]  -    pos=[ 1,  1,  2 ]
    15:    dir=[-1,  0,  0 ]  <    pos=[ 0,  1,  2 ]

    16:    dir=[ 0,  1,  0 ]  ^    pos=[ 0,  2,  2 ]
    17:    dir=[ 1,  0,  0 ]  >    pos=[ 1,  2,  2 ]
    18:    dir=[ 0,  0,  1 ]  +    pos=[ 1,  2,  3 ]
    19:    dir=[-1,  0,  0 ]  <    pos=[ 0,  2,  3 ]
    20:    dir=[ 0,  1,  0 ]  ^    pos=[ 0,  3,  3 ]
    21:    dir=[ 1,  0,  0 ]  >    pos=[ 1,  3,  3 ]
    22:    dir=[ 0,  0, -1 ]  -    pos=[ 1,  3,  2 ]
    23:    dir=[-1,  0,  0 ]  <    pos=[ 0,  3,  2 ]

    24:    dir=[ 0,  0, -1 ]  -    pos=[ 0,  3,  1 ]
    25:    dir=[ 0,  0, -1 ]  -    pos=[ 0,  3,  0 ]
    26:    dir=[ 0, -1,  0 ]  v    pos=[ 0,  2,  0 ]
    27:    dir=[ 0,  0,  1 ]  +    pos=[ 0,  2,  1 ]
    28:    dir=[ 1,  0,  0 ]  >    pos=[ 1,  2,  1 ]
    29:    dir=[ 0,  0, -1 ]  -    pos=[ 1,  2,  0 ]
    30:    dir=[ 0,  1,  0 ]  ^    pos=[ 1,  3,  0 ]
    31:    dir=[ 0,  0,  1 ]  +    pos=[ 1,  3,  1 ]

    32:    dir=[ 1,  0,  0 ]  >    pos=[ 2,  3,  1 ]
    33:    dir=[ 0,  0, -1 ]  -    pos=[ 2,  3,  0 ]
    34:    dir=[ 0, -1,  0 ]  v    pos=[ 2,  2,  0 ]
    35:    dir=[ 0,  0,  1 ]  +    pos=[ 2,  2,  1 ]
    36:    dir=[ 1,  0,  0 ]  >    pos=[ 3,  2,  1 ]
    37:    dir=[ 0,  0, -1 ]  -    pos=[ 3,  2,  0 ]
    38:    dir=[ 0,  1,  0 ]  ^    pos=[ 3,  3,  0 ]
    39:    dir=[ 0,  0,  1 ]  +    pos=[ 3,  3,  1 ]

    40:    dir=[ 0,  0,  1 ]  +    pos=[ 3,  3,  2 ]
    41:    dir=[-1,  0,  0 ]  <    pos=[ 2,  3,  2 ]
    42:    dir=[ 0,  0,  1 ]  +    pos=[ 2,  3,  3 ]
    43:    dir=[ 1,  0,  0 ]  >    pos=[ 3,  3,  3 ]
    44:    dir=[ 0, -1,  0 ]  v    pos=[ 3,  2,  3 ]
    45:    dir=[-1,  0,  0 ]  <    pos=[ 2,  2,  3 ]
    46:    dir=[ 0,  0, -1 ]  -    pos=[ 2,  2,  2 ]
    47:    dir=[ 1,  0,  0 ]  >    pos=[ 3,  2,  2 ]

    48:    dir=[ 0, -1,  0 ]  v    pos=[ 3,  1,  2 ]
    49:    dir=[-1,  0,  0 ]  <    pos=[ 2,  1,  2 ]
    50:    dir=[ 0,  0,  1 ]  +    pos=[ 2,  1,  3 ]
    51:    dir=[ 1,  0,  0 ]  >    pos=[ 3,  1,  3 ]
    52:    dir=[ 0, -1,  0 ]  v    pos=[ 3,  0,  3 ]
    53:    dir=[-1,  0,  0 ]  <    pos=[ 2,  0,  3 ]
    54:    dir=[ 0,  0, -1 ]  -    pos=[ 2,  0,  2 ]
    55:    dir=[ 1,  0,  0 ]  >    pos=[ 3,  0,  2 ]

    56:    dir=[ 0,  0, -1 ]  -    pos=[ 3,  0,  1 ]
    57:    dir=[ 0,  1,  0 ]  ^    pos=[ 3,  1,  1 ]
    58:    dir=[-1,  0,  0 ]  <    pos=[ 2,  1,  1 ]
    59:    dir=[ 0, -1,  0 ]  v    pos=[ 2,  0,  1 ]
    60:    dir=[ 0,  0, -1 ]  -    pos=[ 2,  0,  0 ]
    61:    dir=[ 0,  1,  0 ]  ^    pos=[ 2,  1,  0 ]
    62:    dir=[ 1,  0,  0 ]  >    pos=[ 3,  1,  0 ]
    63:    dir=[ 0, -1,  0 ]  v    pos=[ 3,  0,  0 ]
