docs: public void print(PrintStream ps, int indexFlags) {
          if ((indexFlags & INDEXED_FROM_ZERO) == 0) {
              indexFlags |= INDEXED_FROM_ONE;
          }
          for (int i = 0; i < numVertices; i++) {
              Point3d pnt = pointBuffer[vertexPointIndices[i]].pnt;
              ps.println("v " + pnt.x + " " + pnt.y + " " + pnt.z);
          }
          for (Iterator fi = faces.iterator(); fi.hasNext();) {
              Face face = (Face) fi.next();
              int[] indices = new int[face.numVertices()];
              getFaceIndices(indices, face, indexFlags);
  
              ps.print("f");
              for (int k = 0; k < indices.length; k++) {
                  ps.print(" " + indices[k]);
              }
              ps.println("");
          }
      }