#include <vtkSmartPointer.h>
#include "vtkSTLWriter.h"
#include "vtkPLYWriter.h"
+#include "vtkPolyDataWriter.h"
+#include "surfacerenderingimagestencilexport.h"
+#include "vtkMetaImageWriter.h"
+#include "vtkPolyDataReader.h"
+#include "vtkPLYReader.h"
+#include "vtkSmartPointer.h"
/********************************************************************************************
** Start of data viewmanagerData
_boxWidgetS1->GetPlanes( this->GetVtkClipping3DDataViewer()->GetTissuePlanes(3) );*/
}
+wxMaracasSurfaceRenderingManagerData::wxMaracasSurfaceRenderingManagerData(string filename, vtkRenderWindowInteractor* interactor){
+
+ _prop3D = getProp3D(filename);
+ _dataname = filename;
+ _boxWidgetS1=NULL;
+
+ initializeBoxWidget(interactor);
+}
+
+vtkProp3D* wxMaracasSurfaceRenderingManagerData::getProp3D(std::string filename){
+
+ if(filename.compare("")!= 0){
+
+ vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();
+ std::string ext = filename.substr(filename.find_last_of("."), 4);
+ if(ext.compare(STL)==0){
+ vtkSmartPointer<vtkSTLReader> STLReader=vtkSmartPointer<vtkSTLReader>::New();
+ STLReader->SetFileName(filename.c_str());
+ STLReader->Update();
+ polydata->DeepCopy(STLReader->GetOutput());
+
+ }else if(ext.compare(PLY)==0){
+ vtkSmartPointer<vtkPLYReader> plyreader =vtkSmartPointer<vtkPLYReader>::New();
+ plyreader->SetFileName(filename.c_str());
+ plyreader->Update();
+ polydata->DeepCopy(plyreader->GetOutput());
+ }else if(ext.compare(VTK)==0){
+ vtkSmartPointer<vtkPolyDataReader> polyreader =vtkSmartPointer<vtkPolyDataReader>::New();
+ polyreader->SetFileName(filename.c_str());
+ polyreader->Update();
+ polydata->DeepCopy(polyreader->GetOutput());
+ }
+
+ _dataMapper = vtkPolyDataMapper::New();
+ _dataMapper->SetInput(polydata);
+
+ vtkActor* dataActor = vtkActor::New();
+ dataActor->SetMapper(_dataMapper);
+ dataActor->GetProperty()->SetOpacity(1);
+ return dataActor;
+ }
+ return NULL;
+}
wxMaracasSurfaceRenderingManagerData::~wxMaracasSurfaceRenderingManagerData(){
plywriter->SetFileName(filename);
plywriter->SetInput(_dataMapper->GetInput());
plywriter->Write();
- }else if(ext.compare(PLY) == 0){
+ }else if(ext.compare(STL) == 0){
vtkSmartPointer<vtkSTLWriter> stlWriter =
vtkSmartPointer<vtkSTLWriter>::New();
stlWriter->SetFileName(filename);
stlWriter->SetInput(_dataMapper->GetInput());
stlWriter->SetFileTypeToBinary();
stlWriter->Write();
+ }else if(ext.compare(VTK) == 0){
+ vtkSmartPointer<vtkPolyDataWriter> polydataWriter =
+ vtkSmartPointer<vtkPolyDataWriter>::New();
+ polydataWriter->SetFileName(filename);
+ polydataWriter->SetInput(_dataMapper->GetInput());
+ polydataWriter->SetFileTypeToBinary();
+ polydataWriter->Write();
}else{
cout<<"unsupported format"<<endl;
}
}
+void wxMaracasSurfaceRenderingManagerData::exportImageStencil(const char* filename){
+ if(_dataMapper){
+ vtkSmartPointer< SurfaceRenderingImageStencilExport> stencilexport = vtkSmartPointer< SurfaceRenderingImageStencilExport >::New();
+ stencilexport->SetInput( _dataMapper->GetInput());
+ stencilexport->Update();
+ vtkImageData* imgstencil = stencilexport->GetOutput();
+
+ vtkSmartPointer<vtkMetaImageWriter> metawriter = vtkSmartPointer<vtkMetaImageWriter>::New();
+ metawriter->SetFileName(filename);
+ metawriter->SetInput(imgstencil);
+ metawriter->Write();
+ }else{
+ cout<<"No poly data set to data mapper."<<endl;
+ }
+
+}
+