X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasIRMViewManager.cxx;h=90f581c979072546c21a6b783cc11ef9f6fe2e1d;hb=37319ea6defbf2dc5ddce23e0b65c2247543ae33;hp=c655d51dd5538051719ff0c464a631f7a6b5e52a;hpb=3948b92b07a8992a6d04081c9649ba63e3e7d613;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMViewManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMViewManager.cxx index c655d51..90f581c 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMViewManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMViewManager.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMaracasIRMViewManager.cxx,v $ Language: C++ - Date: $Date: 2009/05/04 07:35:42 $ - Version: $Revision: 1.4 $ + Date: $Date: 2009/05/29 14:25:26 $ + Version: $Revision: 1.6 $ Copyright: (c) 2002, 2003 License: @@ -16,6 +16,8 @@ =========================================================================*/ #include "wxMaracasIRMViewManager.h" +#include "wxMaracasIRMViewManagerDataMhd.h" + /** ** Start of the manager class **/ @@ -53,7 +55,7 @@ int wxMaracasIRMViewManager::addPropMHD(vtkImageData* imagedata, std::string dat checkInvariant(); if(imagedata != NULL){ - wxMaracasIRMViewManagerData* data = new wxMaracasIRMViewManagerData(imagedata, dataname); + wxMaracasIRMViewManagerData* data = new wxMaracasIRMViewManagerDataMhd(imagedata, dataname); prop3Dvect.push_back(data); _renderer->AddActor(data->getProp3D()); data->setId(_idCount); @@ -104,7 +106,7 @@ void wxMaracasIRMViewManager::changeIsoValue(int propid, double value )throw(cha wxMaracasIRMViewManagerData* data = this->getViewData(propid); //_renderer->RemoveActor(data->getProp3D()); - data->changeIsoValue(value); + ((wxMaracasIRMViewManagerDataMhd*)data)->changeIsoValue(value); //_renderer->AddActor(data->getProp3D()); _renderer->Render(); @@ -149,7 +151,7 @@ void wxMaracasIRMViewManager::checkInvariant() throw(char*){ wxMaracasIRMViewManagerData* wxMaracasIRMViewManager::getViewData(int id) throw(char*){ int i; - for(i = 0; i < prop3Dvect.size();i++){ + for(i = 0; i < (int)(prop3Dvect.size());i++){ if(prop3Dvect[i]->getId() == id){ return prop3Dvect[i]; } @@ -161,7 +163,7 @@ wxMaracasIRMViewManagerData* wxMaracasIRMViewManager::getViewData(int id) throw( int wxMaracasIRMViewManager::getMaxIsoValue(int propid) throw(char*){ - return this->getViewData(propid)->getMaxGreyLevel(); + return ((wxMaracasIRMViewManagerDataMhd*)this->getViewData(propid))->getMaxGreyLevel(); } @@ -179,7 +181,7 @@ void wxMaracasIRMViewManager::deleteActor(int propid) throw (char *){ int i,n; bool exit = false; - for(i = 0; i < prop3Dvect.size()&&!exit;i++){ + for(i = 0; i < (int)(prop3Dvect.size())&&!exit;i++){ if(prop3Dvect[i]->getId() == propid){ n=i; exit = true; @@ -188,7 +190,7 @@ void wxMaracasIRMViewManager::deleteActor(int propid) throw (char *){ if(exit){ wxMaracasIRMViewManagerData* data = prop3Dvect[n]; int j; - for(j = i; j < prop3Dvect.size()-1;j++){ + for(j = i; j < (int)(prop3Dvect.size())-1;j++){ prop3Dvect[j] = prop3Dvect[j+1]; } delete data; @@ -202,161 +204,4 @@ void wxMaracasIRMViewManager::deleteActor(int propid) throw (char *){ } -/******************************************************************************************** -** Start of data viewmanagerData -*********************************************************************************************/ - -wxMaracasIRMViewManagerData::wxMaracasIRMViewManagerData(vtkProp3D* prop3Dvect, std::string dataname){ - - _prop3D = prop3Dvect; - _dataname = dataname; - _maxgreylevel=-1; - - _cubesFilter=NULL; - _cleanFilter=NULL; - _dataMapper=NULL; -} -wxMaracasIRMViewManagerData::wxMaracasIRMViewManagerData(vtkImageData* imagedata, std::string dataname){ - - this->setVtkImageData(imagedata); - _dataname = dataname; - - _maxgreylevel = getMaxLevel(imagedata); - _prop3D=NULL; - - _cubesFilter = vtkMarchingCubes::New(); - _cleanFilter = vtkCleanPolyData::New(); - _dataMapper = vtkPolyDataMapper::New(); - vtkActor* dataActor = vtkActor::New(); - - _cubesFilter->SetInput(this->_imagedata); - _cubesFilter->ComputeGradientsOn (); - _cubesFilter->ComputeScalarsOn (); - _cubesFilter->SetNumberOfContours( 1 ); - _cleanFilter->SetInput ( _cubesFilter->GetOutput() ); - _dataMapper->SetInput(_cleanFilter->GetOutput()); - _dataMapper->ScalarVisibilityOff(); - _dataMapper->ImmediateModeRenderingOn(); - dataActor->SetMapper(_dataMapper); - - this->_prop3D = dataActor; - - this->changeIsoValue(this->_maxgreylevel); - - -} -/** -** changes the isovalue in a prop3D -**/ -void wxMaracasIRMViewManagerData::changeIsoValue(double value){ - - - _cubesFilter->SetValue(0,value); - _cubesFilter->Update(); - _cleanFilter->Update(); - _dataMapper->Update(); - - - -} -int wxMaracasIRMViewManagerData::getMaxGreyLevel(){ - return _maxgreylevel; -} -wxMaracasIRMViewManagerData::~wxMaracasIRMViewManagerData(){ - if(_cubesFilter!=NULL){ - _cubesFilter->Delete(); - _cleanFilter->Delete(); - _dataMapper->Delete(); - } - _prop3D->Delete(); -} -/** -** Adds a prop3D to the world of the application -**/ -/** - ** Get's the max grey level of the image - **/ -int wxMaracasIRMViewManagerData::getMaxLevel(vtkImageData* img){ - - int ext[6], i, j, k,max=0; - img->GetExtent(ext); - - for(i = ext[0]; i < ext[1];i++){ - for(j = ext[2]; j < ext[3];j++){ - for(k = ext[4]; k < ext[5];k++){ - unsigned short* ptr = (unsigned short*)img->GetScalarPointer(i,j,k); - int temp = (int)*ptr; - if(temp > max){ - max = temp; - } - } - } - } - return max; - - -} -void wxMaracasIRMViewManagerData::setVtkImageData(vtkImageData* imagedata){ - _imagedata = imagedata; -} -/** -** Adds a prop3D to the world of the application -**/ -void wxMaracasIRMViewManagerData::setProp3D(vtkProp3D* prop3D){ - _prop3D = prop3D; -} -/** -** Changes the opacity in a prop3D -**/ -void wxMaracasIRMViewManagerData::changeOpacity(int value){ - std::cout<<"chage op"<_prop3D; - actor->GetProperty()->SetOpacity((double)value/100.0); - - - -} -void wxMaracasIRMViewManagerData::changeColor(double red, double green, double blue){ - std::cout<<"chage col"<_prop3D; - actor->GetProperty()->SetColor(red,green,blue); -} -/** -** Check if the variables are setted correctly -**/ -void wxMaracasIRMViewManagerData::checkInvariant(){ - -} -/** -** get the prop3D -**/ -vtkProp3D* wxMaracasIRMViewManagerData::getProp3D(){ - return this->_prop3D; -} -/** -** return the id from the daat -**/ -int wxMaracasIRMViewManagerData::getId(){ - return _id; -} -/** -** set data id -**/ -void wxMaracasIRMViewManagerData::setId(int propid){ - _id = propid; -} - -/** -** Get the filanme -**/ -std::string wxMaracasIRMViewManagerData::getDataname(){ - return _dataname; -} -/** -** Set the filanme -**/ -void wxMaracasIRMViewManagerData::setDataname(std::string dataname){ - _dataname = dataname; -} -