X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasSurfaceRenderingManager.cxx;h=e43f19ebd709a62175b38ec89b83b7fa78219596;hb=d8edef346f2d6c64f6ed3bea7225aeb3a8b3970c;hp=858fa41ce08a40883531b9ec842813853a80cbda;hpb=79df2a7fc2b468bc2e7279ac77c0148269fe6aee;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx index 858fa41..e43f19e 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManager.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMaracasSurfaceRenderingManager.cxx,v $ Language: C++ - Date: $Date: 2009/11/09 19:14:56 $ - Version: $Revision: 1.3 $ + Date: $Date: 2010/01/21 13:54:15 $ + Version: $Revision: 1.7 $ Copyright: (c) 2002, 2003 License: @@ -22,6 +22,7 @@ **/ wxMaracasSurfaceRenderingManager::wxMaracasSurfaceRenderingManager(){ _renderer = NULL; + _interactor = NULL; _idCount=0; } wxMaracasSurfaceRenderingManager::~wxMaracasSurfaceRenderingManager(){ @@ -34,6 +35,14 @@ void wxMaracasSurfaceRenderingManager::setRenderer(vtkRenderer* renderer){ _renderer = renderer; } +/** +** Sets the renderer to manage the prop3D from the surface render +**/ +void wxMaracasSurfaceRenderingManager::setInteractor(vtkRenderWindowInteractor* interactor){ + _interactor = interactor; +} + + /** ** Gets the renderer to manage the prop3D from the surface render **/ @@ -53,36 +62,49 @@ void wxMaracasSurfaceRenderingManager::Update(int pid)throw(char*){ /** ** Adds a prop3D to the manager and returns the identifier **/ -int wxMaracasSurfaceRenderingManager::addProp3D(vtkProp3D* prop3D, std::string dataname) throw(char*){ +int wxMaracasSurfaceRenderingManager::addProp3D(int idTP, vtkProp3D* prop3D, std::string dataname) throw(char*){ checkInvariant(); if(prop3D != NULL){ - wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerData(prop3D, dataname); + wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerData(prop3D, dataname, _interactor); prop3Dvect.push_back(data); _renderer->AddActor(data->getProp3D()); - data->setId(_idCount); - _idCount++; + if(idTP == -1) + { + data->setId(_idCount); + _idCount++; + } + else + { + data->setId(idTP); + } return data->getId(); }else{ throw "Check vtkProp3D file or input"; } return -1; } -int wxMaracasSurfaceRenderingManager::addPropMHD(vtkImageData* imagedata, std::string dataname) throw(char*){ - +int wxMaracasSurfaceRenderingManager::addPropMHD(int idTP, vtkImageData* imagedata, std::string dataname) throw(char*){ checkInvariant(); if(imagedata != NULL){ image = imagedata; - wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerDataMhd(imagedata, dataname); + wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerDataMhd(imagedata, dataname, _interactor); prop3Dvect.push_back(data); _renderer->AddActor(data->getProp3D()); - data->setId(_idCount); - _idCount++; + if(idTP == -1) + { + data->setId(_idCount); + _idCount++; + } + else + { + data->setId(idTP); + } + printf("wxMaracasSurfaceRenderingManager::addPropMHD->idSurfaceRender: %i\n", data->getId()); return data->getId(); }else{ throw "Check ImageData file or input"; } return -1; - } /** ** adds or removes an actor depending of the bool value @@ -99,8 +121,27 @@ void wxMaracasSurfaceRenderingManager::addRemoveActor(int propid, bool addremove } _renderer->Render(); } +} +/** +** adds or removes the surface box depending of the bool value +**/ +void wxMaracasSurfaceRenderingManager::addRemoveSurfaceBox(int propid, bool addremove) throw(char*){ + checkInvariant(); + + wxMaracasSurfaceRenderingManagerData* data = this->getViewData(propid); + if(data->getProp3D()!=NULL){ + data->addRemoveSurfaceBox(addremove); + /*if(addremove){ + data-> + _renderer->AddViewProp(data->getProp3D()); + }else{ + _renderer->RemoveViewProp(data->getProp3D()); + } + _renderer->Render();*/ + } } + /** ** Changes the opacity in a prop3D **/ @@ -225,3 +266,6 @@ void wxMaracasSurfaceRenderingManager::Transform(vtkMatrix4x4* tmatrix){ } +bool wxMaracasSurfaceRenderingManager::interactorSet(){ + return _interactor? true:false; +} \ No newline at end of file