public Point3D getPoint(int p) {
        Point3D pt = new Point3D();
        switch (p) {
            case 0: pt.copy(shape.face(2).point(0)); return pt;
            case 1: pt.copy(shape.face(2).point(2)); return pt;
            case 2: pt.copy(shape.face(0).point(0)); return pt;
            case 3: pt.copy(shape.face(0).point(2)); return pt;
            case 4: pt.copy(shape.face(2).point(1)); return pt;
            case 5: pt.copy(shape.face(3).point(0)); return pt;
            case 6: pt.copy(shape.face(1).point(2)); return pt;
            case 7: pt.copy(shape.face(1).point(0)); return pt;
        }
        return null; 
    }