Program: wxMaracas
Module: $RCSfile: wxMaracasSurfaceRenderingManager.cxx,v $
Language: C++
- Date: $Date: 2011/10/05 16:26:55 $
- Version: $Revision: 1.2 $
+ Date: $Date: 2012/05/11 11:46:37 $
+ Version: $Revision: 1.3 $
Copyright: (c) 2002, 2003
License:
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
+
#include "wxMaracasSurfaceRenderingManager.h"
#include "wxMaracasSurfaceRenderingManagerDataMhd.h"
-
-#include "vtkPLYReader.h"
-#include "vtkSmartPointer.h"
-
/**
** Start of the manager class
**/
_renderer = NULL;
_interactor = NULL;
_idCount=0;
+ image = 0;
}
wxMaracasSurfaceRenderingManager::~wxMaracasSurfaceRenderingManager(){
}
}
return -1;
}
+
+/**
+** Adds a polydata and creates the prop3D (actor) to the manager and returns the identifier
+**/
+/**
+** Adds a polydata and creates the prop3D (actor) to the manager and returns the identifier
+**/
+int wxMaracasSurfaceRenderingManager::addProp3D(int idTP, std::string filename, std::string dataname){
+
+
+ wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerData(filename, _interactor);
+ if(dataname.compare("") != 0)
+ data->setDataname(dataname);
+
+ prop3Dvect.push_back(data);
+ _renderer->AddActor(data->getProp3D());
+ if(idTP == -1)
+ {
+ data->setId(_idCount);
+ _idCount++;
+ }
+ else
+ {
+ data->setId(idTP);
+ }
+ return data->getId();
+
+}
+
int wxMaracasSurfaceRenderingManager::addPropMHD(int idTP, vtkImageData* imagedata, std::string dataname) throw(char*){
checkInvariant();
if(imagedata != NULL){
/**
** adds or removes an actor depending of the bool value
**/
-void wxMaracasSurfaceRenderingManager::addRemoveActor(int propid, bool addremove) throw(char*){
+bool wxMaracasSurfaceRenderingManager::addRemoveActor(int propid, bool addremove) throw(char*){
checkInvariant();
wxMaracasSurfaceRenderingManagerData* data = this->getViewData(propid);
_renderer->RemoveViewProp(data->getProp3D());
}
_renderer->Render();
+ return true;
}else {
if(addremove && propid == 0 && image){
addPropMHD(0, image, "id0");
+ return true;
}
- return;
}
+ return false;
}
/**
** adds or removes the surface box depending of the bool value
_renderer->Render();
}
-vtkProp3D* wxMaracasSurfaceRenderingManager:: getProp3D(std::string filename){
+/*vtkProp3D* wxMaracasSurfaceRenderingManager:: getProp3D(std::string filename){
if(filename.compare("")!= 0){
vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::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());
}
vtkSmartPointer<vtkPolyDataMapper> dataMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
return dataActor;
}
return NULL;
-}
+}*/
vtkImageData* wxMaracasSurfaceRenderingManager::getImageData(std::string filename){
if(filename.compare("")!= 0){
}
wxMaracasSurfaceRenderingManagerData* wxMaracasSurfaceRenderingManager::getViewData(int id) throw(char*){
- int i;
+ int i = 0;
for(i = 0; i < (int)(prop3Dvect.size());i++){
if(prop3Dvect[i]->getId() == id){
return prop3Dvect[i];
}
- }
- return 0;
+ }
#ifndef USE_QT
throw "id not found in the data";
#else
- return NULL;
+ return 0;
#endif
}
void wxMaracasSurfaceRenderingManager::loadProp3DSTL(const char* filename){
- this->addProp3D(-1, this->getProp3D(filename), filename);
+ this->addProp3D(-1, filename);
+}
+
+void wxMaracasSurfaceRenderingManager::exportImageStencil(int propid,const char* filename){
+ checkInvariant();
+
+ wxMaracasSurfaceRenderingManagerData* data = this->getViewData(propid);
+ if(data && data->getProp3D()!=NULL){
+ data->exportImageStencil(filename);
+ }
}