[vtkusers] can't write obj files
Gabriele
zibalmail at gmail.com
Fri May 29 12:51:21 EDT 2009
Hello,
I have spent a few hours already on this thing and I can't really
understand why it does not work.
I am trying to save an .obj file using vtkObjExporter, but only the mtl
file is saved, no .obj.
I include a simple function that should, in my humble opinion, read an
obj file and just save it with a different name, but again only stores
the .mtl file. Can anyone guess what's wrong?
Thanks a lot,
G
#include <vtkOBJReader.h>
#include <string>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkOBJExporter.h>
void tryIO(std::string& name){
vtkOBJReader *myObjReader;
myObjReader = vtkOBJReader::New();
myObjReader->SetFileName(name.c_str());
myObjReader->Update();
vtkPolyData* model = vtkPolyData::New();
model->DeepCopy(myObjReader->GetOutput());
myObjReader->Delete();
vtkOBJExporter* objExporter = vtkOBJExporter::New();
std::string outName(name.substr(0, name.find_last_of('.')));
outName += "_processed";
objExporter->SetFilePrefix(outName.c_str());
//set renderer to the read model
vtkRenderer *renderer;
renderer = vtkRenderer::New();
vtkPolyDataMapper *myDataMapper = vtkPolyDataMapper::New();
myDataMapper->SetInput(model);
vtkActor *myActor = vtkActor::New();
myActor->SetMapper(myDataMapper);
//assign our actor to the renderer
renderer->AddActor(myActor);
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(renderer);
objExporter->SetRenderWindow(renWin);
objExporter->Write();
objExporter->Delete();
renWin->Delete();
renderer->Delete();
myDataMapper->Delete();
myActor->Delete();
}
int main(int argc, char* argv[]){
std::string objName(argv[1]);
tryIO( objName );
}
More information about the vtkusers
mailing list