Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.00 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Scanner;
  3.  
  4. class ParseOBJ {
  5. public static void main(String args[]) throws IOException {
  6. //Initialise arrays for vertices, vertex textures, faces
  7. float[][] vertexes = new float[100][3];
  8. float[][] textures = new float[100][2];
  9. String[][] faces = new String[100][3];
  10.  
  11. int vertpos = 0;
  12. int textpos = 0;
  13. int facepos = 0;
  14.  
  15. // Code to open the actual file here
  16. Scanner s = new Scanner(System.in);
  17.  
  18. File f = new File("cab.obj");
  19. Scanner numScan = new Scanner(f);
  20.  
  21. String line;
  22. String vertexOutput = "";
  23. String textureOutput = "";
  24.  
  25. while (numScan.hasNext())
  26. {
  27. line = numScan.nextLine();
  28. if (line.startsWith("v ")) {
  29. //This is the vertex array
  30. String[] vertexSplit=line.split(" ");
  31. vertexes[vertpos][0] = Float.valueOf(vertexSplit[1]);
  32. vertexes[vertpos][1] = Float.valueOf(vertexSplit[2]);
  33. vertexes[vertpos][2] = Float.valueOf(vertexSplit[3]);
  34. vertpos++;
  35. }
  36. if (line.startsWith("vt ")) {
  37. //This is the vertex texture array
  38. String[] vertexSplit=line.split(" ");
  39. textures[textpos][0] = Float.valueOf(vertexSplit[1]);
  40. textures[textpos][1] = Float.valueOf(vertexSplit[2]);
  41. textpos++;
  42. }
  43. if (line.startsWith("f ")) {
  44. //This is the face array
  45. String[] vertexSplit=line.split(" ");
  46. faces[facepos][0] = vertexSplit[1];
  47. faces[facepos][1] = vertexSplit[2];
  48. faces[facepos][2] = vertexSplit[3];
  49. facepos++;
  50. }
  51. }
  52.  
  53. // Code to convert face array into final texture array and vertex array
  54. // Vertices first
  55. for (int i = 0; i < facepos; i++) {
  56. for (int j = 0; j < 3; j++) {
  57. String[] removeslashes = faces[i][j].split("/");
  58. int vertindex = Integer.parseInt(removeslashes[0])1;
  59. int textindex = Integer.parseInt(removeslashes[1])1;
  60. vertexOutput = vertexOutput + vertexes[vertindex][0] + "f, " + vertexes[vertindex][1] + "f, " + vertexes[vertindex][2] + "f, n";
  61. textureOutput = textureOutput + textures[textindex][0] + "f, " + textures[textindex][1] + "f, n";
  62. }
  63. }
  64.  
  65. System.out.println("Vertex Data: n" + vertexOutput);
  66. System.out.println("Texture Data: n" + textureOutput);
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement