Inhalt einer vrml datei verändern
-
Hallo, ich habe folgendes Problem:
ich möchte den Inhalt einer Vrml Datei ändern. Dazu muss ich sie am besten Wort für Wort einlesen und prüfen ob ich bei einem bestimmten Tag angekomen bin um ab da Daten zu schreiben. Könnt ihr mir da einen Tip geben wie ich die Sache am besten angehe? fstream und iostream ? oder gibt es da bessere möglichkeiten mir solchen dateien zu arbeit.
-
Wenn mich nicht alles täuscht, ist VRML ein XML-Format? Das kannst du am besten mit einem XML-Parser lesen, verändern und dann rausschreiben. Es gibt da mehrere Bibliotheken, die einfachste und kleinste heißt TinyXML. Wenn du etwas leistungsfähigeres brauchst, ist Xerces-C++ zu empfehlen.
http://xml.apache.org/xerces-c/
http://www.grinninglizard.com/tinyxml/
-
ok danke für die schnelle antwort werde ich heute mal testen
-
ok, es bringt mich leider nicht weiter da vrml nicht im xml format ist

hier ein code auschnitt aus einer vrml datei :#VRML V2.0 utf8 (Converted to ASCII) Shape { appearance Appearance { material Material { # blue ambientIntensity 0.5 diffuseColor 0.3 0.4 1.0 } } geometry IndexedFaceSet { coord Coordinate { point [ -0.448909 0.740725 0.025960, -0.397066 0.715873 0.038931, ...was ich brauche ist : ich will die points aus lesen und in einer liste sortieren um einige rauszulöschen...
-
Sieht wirklich nicht nach XML aus.
OK, einen VRML Parser hab ich jetzt mit Google nicht gefunden. Nur VRML Viewer u.ä.Deshalb wirst du dir wohl deinen eigenen Parser bauen müssen. Damit das ganze aber einfacher ist, würde ich dir die Spirit Library von Boost empfehlen. Du fütters Spirit nur mit den Grammatikregeln von VRML und Spirit baut dann daraus einen Parser.
http://spirit.sourceforge.net/
Da ich Spirit nie benutzt habe, weiß ich nicht, ob man seine geänderten Sachen auch wieder komfortabel rausschreiben kann.
Es gibt hier im Forum ein paar Spirit-Experten, die das vielleicht beantworten können???
Ansonst wäre halt der bekannte Weg über fstream nötig, wo man letztendlich auch parsen muß.
-
naja , ich glaube ich werde mich leider mit fstream rumplagen müssen

man hab ich da keine Lust drauf
aber danke!!!
Ps sollte jemand einen vrml parser kennen wäre ich für jeden tip dankbar
-
Wie wäre es mit http://www.gang.umass.edu/software/isight/index.html