]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMViewManager.cxx
no newline at end of file
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasIRMViewManager.cxx
index c655d51dd5538051719ff0c464a631f7a6b5e52a..90f581c979072546c21a6b783cc11ef9f6fe2e1d 100644 (file)
@@ -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"<<value<<std::endl;
-       vtkActor* actor = (vtkActor*)this->_prop3D;     
-       actor->GetProperty()->SetOpacity((double)value/100.0);
-
-       
-
-}
-void wxMaracasIRMViewManagerData::changeColor(double red, double green, double blue){
-       std::cout<<"chage col"<<red<<green<<blue<<std::endl;
-    vtkActor* actor = (vtkActor*)this->_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;
-}
-