// find vertex codes for labels mat4 codesA, codesB; codesA[0].xyz = boundaryfilter_edgecodes[0]; if (labelsA.y == labelsA.x) codesA[1] = codesA[0]; else codesA[1].xyz = boundaryfilter_edgecodes[1]; if (labelsA.z == labelsA.x) codesA[2] = codesA[0]; else if (labelsA.z == labelsA.y) codesA[2] = codesA[1]; else codesA[2].xyz = boundaryfilter_edgecodes[2]; if (labelsA.w == labelsA.x) codesA[3] = codesA[0]; else if (labelsA.w == labelsA.y) codesA[3] = codesA[1]; else if (labelsA.w == labelsA.z) codesA[3] = codesA[2]; else codesA[3].xyz = boundaryfilter_edgecodes[3]; if (labelsB.x == labelsA.x) codesB[0] = codesA[0]; else if (labelsB.x == labelsA.y) codesB[0] = codesA[1]; else if (labelsB.x == labelsA.z) codesB[0] = codesA[2]; else if (labelsB.x == labelsA.w) codesB[0] = codesA[3]; else codesB[0].xyz = boundaryfilter_edgecodes[4]; if (labelsB.y == labelsA.x) codesB[1] = codesA[0]; else if (labelsB.y == labelsA.y) codesB[1] = codesA[1]; else if (labelsB.y == labelsA.z) codesB[1] = codesA[2]; else if (labelsB.y == labelsA.w) codesB[1] = codesA[3]; else if (labelsB.y == labelsB.x) codesB[1] = codesB[0]; else codesB[1].xyz = boundaryfilter_edgecodes[5]; if (labelsB.z == labelsA.x) codesB[2] = codesA[0]; else if (labelsB.z == labelsA.y) codesB[2] = codesA[1]; else if (labelsB.z == labelsA.z) codesB[2] = codesA[2]; else if (labelsB.z == labelsA.w) codesB[2] = codesA[3]; else if (labelsB.z == labelsB.x) codesB[2] = codesB[0]; else if (labelsB.z == labelsB.y) codesB[2] = codesB[1]; else codesB[2].xyz = boundaryfilter_edgecodes[6]; if (labelsB.w == labelsA.x) codesB[3] = codesA[0]; else if (labelsB.w == labelsA.y) codesB[3] = codesA[1]; else if (labelsB.w == labelsA.z) codesB[3] = codesA[2]; else if (labelsB.w == labelsA.w) codesB[3] = codesA[3]; else if (labelsB.w == labelsB.x) codesB[3] = codesB[0]; else if (labelsB.w == labelsB.y) codesB[3] = codesB[1]; else if (labelsB.w == labelsB.z) codesB[3] = codesB[2]; else codesB[3].xyz = boundaryfilter_edgecodes[7];