Пример #1
0
    void TriangulateCube(Cube square)
    {
        switch (square.configuration)
        {
        case 0:
            break;
        case 255:
            break;

        // 1 points:
        case 1:
            Instantiate (oneMesh, square.topLeftFront.position, Quaternion.Euler(new Vector3(0, 270, 180)));
            break;
        case 2:
            Instantiate (oneMesh, square.topLeftBack.position, Quaternion.Euler(new Vector3(0, 0, 0)));
            break;
        case 4:
            Instantiate (oneMesh, square.topRightFront.position, Quaternion.Euler(new Vector3(0, 90, 270)));
            break;
        case 8:
            Instantiate (oneMesh, square.topRightBack.position, Quaternion.Euler(new Vector3(0, 90, 0)));
            break;
        case 16:
            Instantiate (oneMesh, square.bottomRightFront.position, Quaternion.Euler(new Vector3(270, 90, 90)));
            break;
        case 32:
            Instantiate (oneMesh, square.bottomRightBack.position, Quaternion.Euler(new Vector3(0, 180, 0)));
            break;
        case 64:
            Instantiate (oneMesh, square.bottomLeftFront.position, Quaternion.Euler(new Vector3(270, 0, 270)));
            break;
        case 128:
            Instantiate (oneMesh, square.bottomLeftBack.position, Quaternion.Euler(new Vector3(0, 270, 0)));
            break;

        // 2 points
        case 3:
            Instantiate (threeMesh, square.topLeftFront.position, Quaternion.Euler(new Vector3(90, 270, 0)));
            break;
        case 5:
            Instantiate (threeMesh, square.topLeftFront.position, Quaternion.Euler(new Vector3(0, 90, 90)));
            break;
        case 10:
            Instantiate (threeMesh, square.topRightBack.position, Quaternion.Euler(new Vector3(0, 270, 270)));
            break;
        case 12:
            Instantiate (threeMesh, square.topRightBack.position, Quaternion.Euler(new Vector3(270, 0, 270)));
            break;
        case 20:
            Instantiate (threeMesh, square.bottomRightFront.position, Quaternion.Euler(new Vector3(0, 0, 0)));
            break;
        case 40:
            Instantiate (threeMesh, square.topRightBack.position, Quaternion.Euler(new Vector3(180, 0, 0)));
            break;
        case 48:
            Instantiate (threeMesh, square.bottomRightFront.position, Quaternion.Euler(new Vector3(90, 90, 0)));
            break;
        case 65:
            Instantiate (threeMesh, square.topLeftFront.position, Quaternion.Euler(new Vector3(0, 180, 0)));
            break;
        case 80:
            Instantiate (threeMesh, square.bottomRightFront.position, Quaternion.Euler(new Vector3(0, 270, 90)));
            break;
        case 130:
            Instantiate (threeMesh, square.bottomLeftBack.position, Quaternion.Euler(new Vector3(0, 0, 180)));
            break;
        case 160:
            Instantiate (threeMesh, square.bottomLeftBack.position, Quaternion.Euler(new Vector3(0, 90, 270)));
            break;
        case 192:
            Instantiate (threeMesh, square.bottomLeftBack.position, Quaternion.Euler(new Vector3(270, 90, 0)));
            break;

        case 9:
            Instantiate (nineMesh, square.topLeftFront.position, Quaternion.Euler(new Vector3(45, 180, 90)));
            break;
        case 6:
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 17:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 24:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 34:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 36:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 66:
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 68:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 96:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 129:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 136:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;
        case 144:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter);
            break;

        case 18:
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.topLeftCenter, square.centerTopBack, square.bottomRightCenter);
            MeshFromPoints(square.centerLeftBack, square.topLeftCenter, square.centerBottomFront, square.bottomRightCenter, square.centerTopBack);
            break;
        case 33:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.topLeftCenter, square.centerTopBack, square.bottomRightCenter);
            MeshFromPoints(square.centerLeftBack, square.topLeftCenter, square.centerBottomFront, square.bottomRightCenter, square.centerTopBack);
            break;
        case 72:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.topLeftCenter, square.centerTopBack, square.bottomRightCenter);
            MeshFromPoints(square.centerLeftBack, square.topLeftCenter, square.centerBottomFront, square.bottomRightCenter, square.centerTopBack);
            break;
        case 132:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.topLeftCenter, square.centerTopBack, square.bottomRightCenter);
            MeshFromPoints(square.centerLeftBack, square.topLeftCenter, square.centerBottomFront, square.bottomRightCenter, square.centerTopBack);
            break;

        // 3 points
        case 7:
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 11:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 13:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 14:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 21:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 28:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 42:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 44:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 52:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 56:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 67:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 69:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 81:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 84:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 112:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 131:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 138:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 162:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 168:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 176:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 193:
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 194:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 208:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 224:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;

        case 22:
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 19:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 26:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 35:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 37:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 41:
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 49:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 50:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 73:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 74:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 82:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 88:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 97:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 104:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 133:
            square.rotateRightVert();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 134:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 140:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 148:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 146:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 161:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 164:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 196:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 200:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;
        case 76:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints (square.topLeftCenter, square.centerTopBack, square.centerLeftBack);
            MeshFromPoints (square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.topRightCenter);
            break;

        case 25:
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 137:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 70:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 38:
            square.rotateRightHoriz();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 145:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 152:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 98:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;
        case 100:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.bottomRightCenter, square.centerRightFront, square.topRightCenter, square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerBottomFront, square.centerLeftFront);
            break;

        // 4 points
        case 15:
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.centerRightBack, square.centerLeftBack);
            break;
        case 60:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.centerRightBack, square.centerLeftBack);
            break;
        case 85:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.centerRightBack, square.centerLeftBack);
            break;
        case 195:
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.centerRightBack, square.centerLeftBack);
            break;
        case 240:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.centerRightBack, square.centerLeftBack);
            break;
        case 170:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerRightFront, square.centerRightBack, square.centerLeftBack);
            break;

        case 51:
            MeshFromPoints(square.centerTopFront, square.centerTopBack, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.centerBottomFront, square.centerBottomBack, square.centerRightBack, square.centerRightFront);
            break;
        case 90:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerTopBack, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.centerBottomFront, square.centerBottomBack, square.centerRightBack, square.centerRightFront);
            break;
        case 165:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerTopBack, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.centerBottomFront, square.centerBottomBack, square.centerRightBack, square.centerRightFront);
            break;
        case 204:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerTopBack, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.centerBottomFront, square.centerBottomBack, square.centerRightBack, square.centerRightFront);
            break;
        case 105:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerTopBack, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.centerBottomFront, square.centerBottomBack, square.centerRightBack, square.centerRightFront);
            break;
        case 150:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerTopBack, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.centerBottomFront, square.centerBottomBack, square.centerRightBack, square.centerRightFront);
            break;

        case 29:
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 46:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 139:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 71:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 209:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 116:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 184:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 226:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerRightBack, square.centerTopBack, square.topLeftCenter, square.centerLeftFront, square.centerBottomFront, square.bottomRightCenter);
            break;

        case 23:
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 45:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 142:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 75:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 210:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 58:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 232:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 92:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 163:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 113:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 180:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;
        case 197:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerBottomFront, square.bottomRightCenter, square.topRightCenter, square.centerLeftBack, square.centerLeftFront);
            MeshFromPoints(square.topRightCenter, square.centerTopBack, square.centerLeftBack);
            break;

        case 30:
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 83:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 178:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 77:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 202:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 120:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 43:
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 225:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 53:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 135:
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 172:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;
        case 212:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopFront, square.centerBottomFront, square.bottomRightCenter, square.centerRightBack, square.centerLeftBack);
            break;

        case 27:
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 39:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 141:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 78:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 177:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 228:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 216:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 114:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 198:
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 89:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 54:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 169:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 201:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 86:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 57:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 166:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 99:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 149:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 108:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 154:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 147:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 101:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 156:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;
        case 106:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerLeftFront, square.centerTopFront, square.topRightCenter, square.centerRightBack);
            MeshFromPoints(square.centerRightFront, square.centerBottomFront, square.bottomRightCenter);
            break;

        case 102:
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.bottomRightCenter, square.centerBottomBack, square.bottomLeftCenter, square.centerBottomFront);
            MeshFromPoints(square.centerLeftBack, square.topLeftCenter, square.centerTopFront, square.centerRightFront, square.topRightCenter, square.centerTopBack);
            MeshFromPoints(square.centerLeftFront, square.bottomLeftCenter, square.centerBottomBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront);
            break;
        case 153:
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront);
            MeshFromPoints(square.bottomRightCenter, square.centerBottomBack, square.bottomLeftCenter, square.centerBottomFront);
            MeshFromPoints(square.centerLeftBack, square.topLeftCenter, square.centerTopFront, square.centerRightFront, square.topRightCenter, square.centerTopBack);
            MeshFromPoints(square.centerLeftFront, square.bottomLeftCenter, square.centerBottomBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront);
            break;

        // 5 points
        case 230:
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 118:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 185:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 217:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 110:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 103:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 157:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;
        case 155:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.bottomRightCenter, square.centerBottomFront, square.centerLeftFront, square.topLeftCenter);
            MeshFromPoints(square.centerRightFront, square.topRightCenter, square.centerTopFront);
            break;

        case 233:
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 214:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 121:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 182:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 205:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 236:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 173:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 109:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 229:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 158:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 218:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 94:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 220:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 206:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 122:
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 59:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 107:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 91:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 115:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 181:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 55:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 179:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 167:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;
        case 151:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopBack, square.topRightCenter, square.bottomRightCenter, square.centerBottomFront, square.topLeftCenter, square.centerLeftBack);
            MeshFromPoints(square.bottomRightCenter, square.centerTopBack, square.topRightCenter);
            MeshFromPoints(square.centerTopFront, square.topLeftCenter, square.centerBottomFront);
            break;

        case 248:
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 244:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 242:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 241:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 143:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 79:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 31:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 47:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 171:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 234:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 186:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 174:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 93:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 87:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 213:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 117:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 62:
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 188:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 124:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 61:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 199:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 211:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 227:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;
        case 203:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topRightCenter, square.centerRightFront, square.centerLeftFront);
            break;

        // 6 points
        case 237:
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topLeftCenter);
            MeshFromPoints(square.bottomRightCenter, square.centerBottomFront, square.centerRightFront);
            break;
        case 222:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topLeftCenter);
            MeshFromPoints(square.bottomRightCenter, square.centerBottomFront, square.centerRightFront);
            break;
        case 123:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topLeftCenter);
            MeshFromPoints(square.bottomRightCenter, square.centerBottomFront, square.centerRightFront);
            break;
        case 183:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftBack, square.centerTopBack, square.topLeftCenter);
            MeshFromPoints(square.bottomRightCenter, square.centerBottomFront, square.centerRightFront);
            break;

        case 246:
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 249:
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 238:
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 187:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 231:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 219:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 221:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 119:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 159:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 111:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 189:
            square.rotateRightVert();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;
        case 126:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.topLeftCenter, square.centerTopBack, square.topRightCenter, square.centerTopFront, square.centerLeftFront);
            MeshFromPoints(square.centerTopBack, square.centerRightBack, square.topRightCenter);
            break;

        case 252:
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 250:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 245:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 243:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 235:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 215:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 207:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 190:
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 175:
            square.rotateRightVert();
            square.rotateRightVert();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 125:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 95:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;
        case 63:
            square.rotateRightVert();
            MeshFromPoints(square.centerLeftFront, square.centerLeftBack, square.centerTopBack, square.centerTopFront);
            break;

        // 7 points
        case 254:
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 253:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 251:
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 247:
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 239:
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 223:
            square.rotateRightHoriz();
            square.rotateRightVert();
            square.rotateRightVert();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 191:
            square.rotateRightVert();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        case 127:
            square.rotateRightVert();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            square.rotateRightHoriz();
            MeshFromPoints(square.centerTopFront, square.centerLeftFront, square.topLeftCenter);
            break;
        }
    }