Ich dachte du willst eine Datei einlesen, wieso nimmst du dann den Standard-InputStream :autsch:
Und wobei gibts jetzt konkret Probleme? Zeilenweise einlesen, schauen ob die Zeile mit einem v beginnt, dann bei einem Leerzeichen beispielsweise splitten, ein Objekt erstellen gut. Mit f genauso!
Ich dachte du willst eine Datei einlesen, wieso nimmst du dann den Standard-InputStream :autsch:
Und wobei gibts jetzt konkret Probleme? Zeilenweise einlesen, schauen ob die Zeile mit einem v beginnt, dann bei einem Leerzeichen beispielsweise splitten, ein Objekt erstellen gut. Mit f genauso!
es ist keine Datei in dem Sinne sondern schon implementiert in einer klasse kann man es nicht nennen ...
mein Problem ist , es zu verstehen wie man es den genau durchführt ?
ich dachte an sowas
Code:
while (sc.hasNextLine())
dann String v = sc.next();
oder so ähnlich muss doch gehen und vorallem wie mache ich das mit der liste muss ich dann so ne
Vektoren array erstellen und dann die aus einer einzelen Punkte zum Vektor machen und dann einen solchen Vektor in der Liste abspeichern ?
Man könnte im ersten Beitrag die [ c ]-Tags zu [ code ]-Tags machen...
Das allgemeine Einlesen kann etwas komplizierter werden. Wenn man sich mal die OBJ-Spezifikation ansieht, erkennt man, dass dort SO viel drin ist, dass ein vollständiger OBJ-Parser schon eine größere Sache wäre - von den zu verwendenden Datenstrukturen mal abgesehen.
Zum Glück sind 99% aller OBJ-Dateien nicht viel mehr, als das, was du angedeutet hast. Aber eben die meisten DOCH etwas mehr: Normalen und Texturkoordinaten stecken ja in den "f"-Zeilen auch mit drin, die können dann z.B. so aussehen
Code:
f 3/45/5 5/7/93 4/12/35
f 3//5 5//13 4//15 5//75 2//85 # Das ist kein Dreieck!
:autsch:
Schon das abzudecken kann etwas frickeliger werden. Von den Geometry- und Material-Groups mal ganz abgesehen.
Ich hatte mal so einen OBJ-Loader geschrieben, da kann ich heute abend mal einen Link posten.
Hab's mal hochgeladen. Genaugeommen lag es schon seit 2,3 Jahren auf der Seite, aber nicht verlinkt weil ich die API heute eigentlich etwas anders machen würde, und dort noch andere Sachen dabei waren, die ich jetzt weggenommen habe, aber so, wie sie ist, hat sie bei mir schon eine ganze Weile für verschiedene OBJs funktioniert, und ich hab' sie schon in anderen Zusammenhängen verwendet, d.h. das ganze hat sich inzwischen schon ein bißchen "festgerüttelt", da können's ja auch andere verwenden. Es liegt jetzt jedenfalls unter javagl.de - Utilities - Hab' auch mal ein Beispiel dazugepackt, sollte eigentlich recht nachvollziehbar sein. (Die Funktionen in den ObjUtils sind vielleicht teilweise etwas speziell, für Sachen, die mit dem (OpenGL)-Rendering der OBJs zu tun haben, aber die fand ich an manchen Stellen praktisch, deswegen sind sie jetzt mal noch mit drin).