public static Geometry newObj(String data) {
      n_v = n_f = 0;

      StringTokenizer st = new StringTokenizer(data, "\n");
      while (st.hasMoreTokens()) {
         String s = st.nextToken();
         if (s.length() > 1)
            if (s.charAt(0) == 'v' && s.charAt(1) == ' ')
               n_v++;
            else if (s.charAt(0) == 'f' && s.charAt(1) == ' ')
               n_f++;
      }

      v = new double[n_v][6];
      f = new int[n_f][];

      i_v = i_f = 0;
      st = new StringTokenizer(data, "\n");

      int line = 0;
      while (st.hasMoreTokens())
         parseLine(st.nextToken());

      Geometry g = new Geometry();
      g.vertices = v; 
      g.faces = f;

      g.computePolyhedronNormals();
      for (int n = 0 ; n < n_v ; n++)
         for (int j = 0 ; j < 3 ; j++)
            g.vertices[n][3+j] *= -1;

      return g;
   }