UP

Function pattern


Definition

    ∇ Z←pattern B;DX;DY;DZ;W;S1;Sz;Lx;Ly;Lz;RH;RH1;Rx;Ry;Diag;DPx;DP
[1]  ⍝
[2]  ⍝⍝ Z is a 3D layout (a View) that can be combind with a State
[3]  ⍝⍝ (in function 'interpret_all' in order to display the State in a colored
[4]  ⍝⍝ 3D fashion in an Xterm.
[5]  ⍝⍝
[6]  ⍝⍝ The argument B specifies the lengths (in characters) of the sub-cubes
[7]  ⍝⍝ in the X, Y, and Z dimensions
[8]  ⍝
[9]  (DX DY DZ)←3×(Lx Ly Lz)←B ◊ S1←¯1+W←DX + DZ ◊ Sz←-S1×⎕IO-⍳Lz
[10] Diag←DZ+S1ׯ1+⍳DZ
[11] Z←(W×DY+DZ)⍴0   ⍝ Background
[12] ⍝ top (Z-) rhombus
[13] ⍝
[14] Ry←S1×Lz ◊ RH1←(2×Lx) + 0 ¯1↓RH← Ry + DZ + Sz ∘.+ ⍳Lx
[15] Z[RH-Ry]←307 ◊ Z[RH+Lx-Ry]←308  ◊ Z[RH1-Ry]←309
[16] Z[RH   ]←304 ◊ Z[RH+Lx   ]←305  ◊ Z[RH1   ]←306
[17] Z[RH+Ry]←301 ◊ Z[RH+Lx+Ry]←302  ◊ Z[RH1+Ry]←303
[18] DP←⌊ DZ+(Lx÷2)+S1×⌊Lz÷2 ◊ DP←DP, DP+1 2×Lx ◊ DP←DP, (DP+Lz×S1), DP+2×Lz×S1
[19] Z[DP]←Z[DP]+1000 ◊ Z[DP+1]←Z[DP+1]+2000
[20] ⍝ left (X-) rhombus
[21] ⍝
[22] Ry←W×Ly ◊ Rx←-Lz×S1 ◊ RH1←Ry + ¯1 0↓RH←Rx + Ry + 1+DX+(W×DZ-1)+(W×⍳Ly)∘.-Sz
[23] Z[RH-Ry+Rx]←103 ◊ Z[RH-Ry]←106 ◊ Z[RH +Rx-Ry]←109
[24] Z[RH   -Rx]←112 ◊ Z[RH   ]←115 ◊ Z[RH +Rx   ]←118
[25] Z[RH1  -Rx]←121 ◊ Z[RH1  ]←124 ◊ Z[RH1+Rx   ]←127
[26] DP←(W×DY) ◊ DP←DP,(DP-Lz×W),DP-2×Lz×W ◊ DP←DP, (DP + Lz×S1), DP + 2×Lz×S1
[27] Z[DP]←Z[DP]+2000 ◊ Z[DP-1]←Z[DP-1]+1000
[28] ⍝ diagonals
[29] ⍝
[30] Z[Diag]←Lz/407 404 401 ◊ Z[Diag+1]←Z[Diag+1] + 4000 ◊ Diag←Diag+Lx
[31] Z[Diag]←Lz/507 504 501 ◊ Z[Diag+1]←Z[Diag+1] + 4000 ◊ Diag←Diag+Lx
[32] Z[Diag]←Lz/508 505 502 ◊ Z[Diag+1]←Z[Diag+1] + 4000 ◊ Diag←Diag+Lx
[33] Z[Diag]←Lz/609 606 603 ◊ Z[1↓Diag+1]←Z[1↓Diag+1] + 4000 ◊ Diag←Diag+W×Ly
[34] Z[Diag]←Lz/709 706 703 ◊ Z[1↓Diag+1]←Z[1↓Diag+1] + 4000 ◊ Diag←Diag+W×Ly
[35] Z[Diag]←Lz/718 715 712 ◊ Z[1↓Diag+1]←Z[1↓Diag+1] + 4000 ◊ Diag←Diag+W×Ly
[36] Z[Diag]←Lz/827 824 821   ⍝ lower diag
[37] ⍝ front (Y-) square
[38] ⍝
[39] Z←((DY+DZ), W)⍴Z
[40] Z[DZ + ⍳DY;⍳DX]←Ly⌿Lx/3 3⍴200+0 9 18∘.+1 2 3
[41] DP←DZ+⌈Ly × 0.5 1.5 2.5 ◊ DPx←⌈Lx × 0.5 1.5 2.5
[42] Z[DP; DPx]←Z[DP; DPx]+1000 ◊ Z[DP; DPx+1]←Z[DP; DPx+2] + 2000
[43] Z[DZ + ⍳DY;1+Lx × 0 1 2] ←Z[DZ + ⍳DY;1+Lx × 0 1 2] + 4000
[44] Z[DZ + ⍳DY;1+DX]←Z[DZ + ⍳DY;1+DX] + 4000
[45] Z[(DZ-Lz) + ⍳DY;1+DX+Lz]←Z[(DZ-Lz) + ⍳DY;1+DX+Lz] + 4000
[46] Z[(DZ-2×Lz) + ⍳DY;1+DX+2×Lz]←Z[(DZ-2×Lz) + ⍳DY;1+DX+2×Lz] + 4000
    ∇

Call Graph (defined functions called from function pattern)

Caller Graph (defined functions calling function pattern)