SELECT face
FROM
l => {
-- have right (
rbn,
rbf,
rtn,
rtf); make left (
lbn,
lbf,
ltn,
ltf)
x: REAL ¬ c1.pos.x-size;
i: INT ¬ c1.id.i-1;
rbn ¬ c1; rbf ¬ c2; rtn ¬ c3; rtf ¬ c4;
lbn ¬ Set[x, rbn.pos.y, rbn.pos.z, i, rbn.id.j, rtn.id.k];
lbf ¬ Set[x, rbf.pos.y, rbf.pos.z, i, rbf.id.j, rbf.id.k];
ltn ¬ Set[x, rtn.pos.y, rtn.pos.z, i, rtn.id.j, rtn.id.k];
ltf ¬ Set[x, rtf.pos.y, rtf.pos.z, i, rtf.id.j, rtf.id.k];
};
r => {
-- have left (
lbn,
lbf,
ltn,
ltf); make right (
rbn,
rbf,
rtn,
rtf)
x: REAL ¬ c1.pos.x+size;
i: INT ¬ c1.id.i+1;
lbn ¬ c1; lbf ¬ c2; ltn ¬ c3; ltf ¬ c4;
rbn ¬ Set[x, lbn.pos.y, lbn.pos.z, i, lbn.id.j, lbn.id.k];
rbf ¬ Set[x, lbf.pos.y, lbf.pos.z, i, lbf.id.j, lbf.id.k];
rtn ¬ Set[x, ltn.pos.y, ltn.pos.z, i, ltn.id.j, ltn.id.k];
rtf ¬ Set[x, ltf.pos.y, ltf.pos.z, i, ltf.id.j, ltf.id.k];
};
b => {
-- have top (
ltn,
ltf,
rtn,
rtf); make bottom (
lbn,
lbf,
rbn,
rbf)
y: REAL ¬ c1.pos.y-size;
j: INT ¬ c1.id.j-1;
ltn ¬ c1; ltf ¬ c2; rtn ¬ c3; rtf ¬ c4;
lbn ¬ Set[ltn.pos.x, y, ltn.pos.z, ltn.id.i, j, ltn.id.k];
lbf ¬ Set[ltf.pos.x, y, ltf.pos.z, ltf.id.i, j, ltf.id.k];
rbn ¬ Set[rtn.pos.x, y, rtn.pos.z, rtn.id.i, j, rtn.id.k];
rbf ¬ Set[rtf.pos.x, y, rtf.pos.z, rtf.id.i, j, rtf.id.k];
};
t => {
-- have bottom (
lbn,
lbf,
rbn,
rbf); make top (
ltn,
ltf,
rtn,
rtf)
y: REAL ¬ c1.pos.y+size;
j: INT ¬ c1.id.j+1;
lbn ¬ c1; lbf ¬ c2; rbn ¬ c3; rbf ¬ c4;
ltn ¬ Set[lbn.pos.x, y, lbn.pos.z, lbn.id.i, j, lbn.id.k];
ltf ¬ Set[lbf.pos.x, y, lbf.pos.z, lbf.id.i, j, lbf.id.k];
rtn ¬ Set[rbn.pos.x, y, rbn.pos.z, rbn.id.i, j, rbn.id.k];
rtf ¬ Set[rbf.pos.x, y, rbf.pos.z, rbf.id.i, j, rbf.id.k];
};
n => {
-- have far (
lbf,
ltf,
rbf,
rtf); make near (
lbn,
ltn,
rbn,
rtn)
z: REAL ¬ c1.pos.z-size;
k: INT ¬ c1.id.k-1;
lbf ¬ c1; ltf ¬ c2; rbf ¬ c3; rtf ¬ c4;
lbn ¬ Set[lbf.pos.x, lbf.pos.y, z, lbf.id.i, lbf.id.j, k];
ltn ¬ Set[ltf.pos.x, ltf.pos.y, z, ltf.id.i, ltf.id.j, k];
rbn ¬ Set[rbf.pos.x, rbf.pos.y, z, rbf.id.i, rbf.id.j, k];
rtn ¬ Set[rtf.pos.x, rtf.pos.y, z, rtf.id.i, rtf.id.j, k];
};
f => {
-- have near (
lbn,
ltn,
rbn,
rtn); make far (
lbf,
ltf,
rbf,
rtf)
z: REAL ¬ c1.pos.z+size;
k: INT ¬ c1.id.k+1;
lbn ¬ c1; ltn ¬ c2; rbn ¬ c3; rtn ¬ c4;
lbf ¬ Set[lbn.pos.x, lbn.pos.y, z, lbn.id.i, lbn.id.j, k];
ltf ¬ Set[ltn.pos.x, ltn.pos.y, z, ltn.id.i, ltn.id.j, k];
rbf ¬ Set[rbn.pos.x, rbn.pos.y, z, rbn.id.i, rbn.id.j, k];
rtf ¬ Set[rtn.pos.x, rtn.pos.y, z, rtn.id.i, rtn.id.j, k];
};
ENDCASE;
newCube ¬ ImplicitCubeTet.SetCube[lbn.id, lbn, lbf, ltn, ltf, rbn, rbf, rtn, rtf, start];