X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasMultipleVolumeRendererManager.cxx;h=3b279a75b6c41453c6cbe4159fc76678eec96eb6;hb=8138ced89fa9f1cc6933ff739dfa28b1e3c3883b;hp=980ac8dbf7c3bd5d4dc6e88ae0699f3aeb132302;hpb=677073a8b01d85b5c1be31e6bbf7a2a0a74fcd19;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx index 980ac8d..3b279a7 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMaracasMultipleVolumeRendererManager.cxx,v $ Language: C++ - Date: $Date: 2009/07/10 13:18:24 $ - Version: $Revision: 1.2 $ + Date: $Date: 2009/11/20 17:09:05 $ + Version: $Revision: 1.9 $ Copyright: (c) 2002, 2003 License: @@ -34,17 +34,43 @@ wxMaracasMultipleVolumeRendererManager::~wxMaracasMultipleVolumeRendererManager( void wxMaracasMultipleVolumeRendererManager::setRenderer(vtkRenderer* renderer){ _renderer = renderer; } + +/** +** Gets the renderer which manage the prop3D from the view +**/ +vtkRenderer* wxMaracasMultipleVolumeRendererManager::getRenderer(){ + return _renderer; +} + +/** +** Updates Volume +**/ +void wxMaracasMultipleVolumeRendererManager::Update(int ppid){ + wxMaracasMultipleVolumeRendererManagerData* data = this->getViewData(ppid); + data->Update(); + _renderer->Render(); +} + /** ** Adds a prop3D to the manager and returns the identifier **/ -int wxMaracasMultipleVolumeRendererManager::addVolume(vtkImageData* vol, std::string dataname) throw(char*){ +int wxMaracasMultipleVolumeRendererManager::addVolume(int idTP, vtkImageData* vol, std::string dataname) throw(char*){ checkInvariant(); + image = vol; if(vol != NULL){ wxMaracasMultipleVolumeRendererManagerData* data = new wxMaracasMultipleVolumeRendererManagerData(vol, dataname); - prop3Dvect.push_back(data); + prop3Dvect.push_back(data); _renderer->AddActor(data->getProp3D()); - data->setId(_idCount); - _idCount++; + if(idTP == -1) + { + data->setId(_idCount); + _idCount++; + } + else + { + data->setId(idTP); + } + printf("wxMaracasMultipleVolumeRendererManager::addVolume->idVolumeRenderer: %i\n", data->getId()); return data->getId(); }else{ throw "Check mhd imagefile file or input"; @@ -87,8 +113,7 @@ void wxMaracasMultipleVolumeRendererManager::setVolumeOpacity(int propid, std::v void wxMaracasMultipleVolumeRendererManager::setVolumeColor(int volid, std::vector greylevel, std::vector red, std::vector green, - std::vector blue) -{ + std::vector blue)throw(char*){ checkInvariant(); this->getViewData(volid)->setVolumeColor(greylevel, red, green, blue); @@ -102,7 +127,8 @@ vtkImageData* wxMaracasMultipleVolumeRendererManager::getImageData(std::string f vtkMetaImageReader* reader = vtkMetaImageReader::New(); reader->SetFileName(filename.c_str()); reader->Update(); - vtkImageData* img = reader->GetOutput(); + vtkImageData* img = reader->GetOutput(); + vtkImageCast* cast = vtkImageCast::New(); cast->SetInput(img); cast->SetOutputScalarTypeToUnsignedShort(); @@ -110,10 +136,15 @@ vtkImageData* wxMaracasMultipleVolumeRendererManager::getImageData(std::string f //reader->Delete(); //img->Delete(); return cast->GetOutput(); + //return img; } return NULL; } +vtkImageData* wxMaracasMultipleVolumeRendererManager::getImageData(){ + return image; +} + void wxMaracasMultipleVolumeRendererManager::checkInvariant() throw(char*){ if(this->_renderer==NULL){ throw "Renderer not set"; @@ -158,3 +189,15 @@ void wxMaracasMultipleVolumeRendererManager::deleteActor(int propid) throw (char } } + +vtkPiecewiseFunction* wxMaracasMultipleVolumeRendererManager::GetTransferFunction(int volumeid){ + return getViewData(volumeid)->GetTransferFunction(); +} +vtkColorTransferFunction* wxMaracasMultipleVolumeRendererManager::GetColorFunction(int volumeid){ + + return getViewData(volumeid)->GetColorFunction(); +} + +void wxMaracasMultipleVolumeRendererManager::changeCompositeMIPFunction(int id, int function) throw (char *){ + getViewData(id)->changeCompositeMIPFunction(function); +} \ No newline at end of file