]> Creatis software - creaMaracasVisu.git/commitdiff
New classes due to separation of vtkMPR*.cxx and some modifications to othar classes
authorJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Wed, 3 Jun 2009 13:45:19 +0000 (13:45 +0000)
committerJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Wed, 3 Jun 2009 13:45:19 +0000 (13:45 +0000)
14 files changed:
lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourCrownWidget.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.cxx [new file with mode: 0644]
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx [new file with mode: 0644]
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx [new file with mode: 0644]
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkPlane2DView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxPanelCuttingImageData.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.h

index 7cb3ac572f084c2cdc082346bb30f172866dbbc2..4ed87a8046dbdb7f7f0c15f610cbefac8592e301 100644 (file)
@@ -5,6 +5,7 @@
 #include <vtkImageActor.h>
 
 #include "wxVtk2DBaseView.h"
+#include "vtkLookupTable.h"
 
 //----------------------------------------------------------------------
   wxMaracasCoutourTool::wxMaracasCoutourTool(wxWindow *parent, wxVtkBaseView *wxvtkbaseview, vtkImageData* imagedata)
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.cxx
new file mode 100644 (file)
index 0000000..6f2725b
--- /dev/null
@@ -0,0 +1,101 @@
+
+#include "vtkBaseData.h"
+
+vtkBaseData::vtkBaseData()
+{
+
+       _z                                       = 0;
+       _t                                       = 0;
+       _marImageData            = NULL;
+}
+
+//-------------------------------------------------------------------
+vtkBaseData::~vtkBaseData()
+{
+}
+
+//-------------------------------------------------------------------
+void vtkBaseData::SetMarImageData(marImageData *marimagedata)
+{
+       _marImageData = marimagedata;
+       //Configure();
+}
+
+//-------------------------------------------------------------------
+vtkImageData* vtkBaseData::GetImageData()
+{
+       return _marImageData->GetImageDataT(_t);
+}
+//-------------------------------------------------------------------
+marImageData* vtkBaseData::GetMarImageData()
+{
+       return _marImageData;
+}
+
+//-------------------------------------------------------------------
+
+void vtkBaseData::Configure()  // virtual
+{
+}
+
+//-------------------------------------------------------------------
+void vtkBaseData::SetZ(double z){
+       //int maxZ;
+
+//     int dim[3];
+//     _marImageData->GetDimensions(dim);
+//     maxZ=dim[2];
+
+       int ext[6];
+       vtkImageData* img = _marImageData->GetImageData();
+       if(img!=NULL){
+               /*img->GetWholeExtent(ext);
+               maxZ=ext[5]-ext[4]+1;
+
+               if (z>=maxZ)
+               {
+                       //z=maxZ-1;
+               }
+               if (z<=0)
+               {
+                       z=0;
+               }
+
+               _z=z;*/
+               img->GetExtent(ext);
+               if (z > ext[5])
+               {
+                       z = ext[5];
+               }
+               if (z < ext[4])
+               {
+                       z = ext[4];
+               }
+
+               _z=z;
+       }
+}
+//-------------------------------------------------------------------
+double vtkBaseData::GetZ()
+{
+       return _z;
+}
+//-------------------------------------------------------------------
+int vtkBaseData::GetT()
+{
+       return _t;
+}
+//-------------------------------------------------------------------
+void vtkBaseData::SetT(double t)
+{
+       int maxT = _marImageData->GetMaxT();
+       if (t>=maxT)
+       {
+               t=maxT-1;
+       }
+       if (t<=0)
+       {
+               t=0;
+       }
+       _t=(int)t;
+}
\ No newline at end of file
index 93ddbf365d993b357fb9029e80bf6eaaaf6422c3..dad5fac4f259938a8fb9c18bfd71baaff572ed90 100644 (file)
@@ -1,6 +1,11 @@
 #ifndef VTKBASEDATA_H_
 #define VTKBASEDATA_H_
 
+#include "marTypes.h"
+
+#include "marImageData.h"
+#include "vtkImageData.h"
+
 class creaMaracasVisu_EXPORT vtkBaseData {
 public:
        vtkBaseData();
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx
new file mode 100644 (file)
index 0000000..d1104df
--- /dev/null
@@ -0,0 +1,623 @@
+
+#include "vtkClipping3DDataViewer.h"
+#include "vtkDataSetReader.h"
+#include "vtkProperty.h"
+
+vtkClipping3DDataViewer::vtkClipping3DDataViewer()
+{
+       int i;
+       for (i=0; i<VTKMPRDATA_MAXTISSUE; i++){
+               _visibleTissue[i]               = false;
+               _representationType[i]  = true;
+       }
+       _visibleVolume=false;
+}
+//-------------------------------------------------------------------
+vtkClipping3DDataViewer::~vtkClipping3DDataViewer()
+{
+       int i;
+       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
+               _mCubes[i]                              ->Delete();
+               _tissueStripper[i]              ->Delete();
+               _tissueMapper[i]                ->Delete();
+               _tissuePlanes[i]                ->Delete();
+               _tissueClipper[i]               ->Delete();
+       }
+       _outlineData            ->Delete();
+       _mapOutline                     ->Delete();
+       _outline                        ->Delete();
+       // Volume
+       _tfun                           ->Delete();
+       _ctfun                          ->Delete();
+       _compositeFunction      ->Delete();
+       _volumeMapper           ->Delete();
+       _volumeProperty         ->Delete();
+       _newvol                         ->Delete();
+       _volumePlanes           ->Delete();
+
+       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
+               _tissue[i]              -> Delete();
+               _observerS[i]   -> Delete();
+       }
+       _observerV              -> Delete();
+}
+//-------------------------------------------------------------------
+vtkActor* vtkClipping3DDataViewer::GetOutlineActor()
+{
+       return _outline;
+}
+//-------------------------------------------------------------------
+vtkClipPolyData* vtkClipping3DDataViewer::GetTissueClipper(int id)
+{
+       return this->_tissueClipper[id];
+}
+//-------------------------------------------------------------------
+vtkPolyDataMapper* vtkClipping3DDataViewer::GetTissueMapper(int id)
+{
+       return _tissueMapper[id];
+}
+//-------------------------------------------------------------------
+vtkPlanes* vtkClipping3DDataViewer::GetTissuePlanes(int id)
+{
+       return _tissuePlanes[id];
+}
+//-------------------------------------------------------------------
+vtkStripper* vtkClipping3DDataViewer::GetTissueStripper(int id)
+{
+       return _tissueStripper[id];
+}
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::Refresh()
+{
+//     _volumeMapper->SetClippingPlanes(_volumePlanes);
+
+//     this->_volumeMapper->Update();
+//     this->_newvol->Update();
+
+//     _newvol->VisibilityOn();
+
+       
+// _volumeMapper = vtkVolumeRayCastMapper::New();
+//     _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() );
+//     _volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
+//     _volumeMapper->SetClippingPlanes( _volumePlanes );
+//     _newvol->SetMapper(_volumeMapper );
+
+
+}
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::RefreshSurface()
+{
+       int i;
+       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++)
+       {
+               SetIsovalue(i, (int) (GetIsovalue(i)+1) );
+//             this->GetMCubes(i)->Update();
+       }
+}
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata)
+{
+       _vtkmprbasedata=vtkmprbasedata;
+}
+//-------------------------------------------------------------------
+vtkMPRBaseData* vtkClipping3DDataViewer::GetVtkMPRBaseData()
+{
+       return _vtkmprbasedata;
+}
+
+
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::SetVisibleTissue(int idTissue, bool visible)
+{
+       _visibleTissue[idTissue]=visible;
+}
+//-------------------------------------------------------------------
+bool vtkClipping3DDataViewer::GetVisibleTissue(int idTissue){
+       return _visibleTissue[idTissue];
+}
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::SetRepresentationType(int idTissue, bool representationType)
+{
+       _representationType[idTissue]=representationType;
+}
+//-------------------------------------------------------------------
+bool vtkClipping3DDataViewer::GetRepresentationType(int idTissue)
+{
+       return _representationType[idTissue];
+}
+
+//-------------------------------------------------------------------
+vtkActor* vtkClipping3DDataViewer::GetTissueActor(int id){
+       return _tissue[id];
+}
+
+//-------------------------------------------------------------------
+boxSurfaceObserver *vtkClipping3DDataViewer::GetObserverS(int idObserverS)
+{
+       return _observerS[idObserverS];
+}
+//-------------------------------------------------------------------
+boxSurfaceObserver *vtkClipping3DDataViewer::GetObserverV()
+{
+       return _observerV;
+}
+
+//-------------------------------------------------------------------
+bool vtkClipping3DDataViewer::GetVisibleVolume()
+{
+       return _visibleVolume;
+}
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::SetVisibleVolume(bool visiblevolume)
+{
+       _visibleVolume = visiblevolume;
+}
+
+
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::Configure_Tissue()
+{
+
+       double range[2];
+       int i;
+       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
+               // Visualisation - original volume
+               vtkImageData *imagedata=_vtkmprbasedata->GetImageData();
+               imagedata->GetScalarRange( range );
+               _mCubes[i] = vtkMarchingCubes::New( );
+               _mCubes[i]->SetInput( imagedata );
+
+               _mCubes[i]->SetValue( 0, range[1]*(4+i) / 8 );
+//             _mCubes[i]->SetValue( 0, 1500 );
+
+           _tissueStripper[i] = vtkStripper::New();
+           _tissueStripper[i]->SetInput( _mCubes[i]->GetOutput( ) );
+
+
+
+               _tissuePlanes[i]  = vtkPlanes::New();
+   
+               int x1,x2,y1,y2,z1,z2;
+               imagedata->GetExtent(x1,x2,y1,y2,z1,z2);
+               _tissuePlanes[i]->SetBounds  (x1,x2,y1,y2,z1,z2);
+               
+               _tissueClipper[i] = vtkClipPolyData::New();
+               _tissueClipper[i]->SetInput( _tissueStripper[i]->GetOutput() );
+               _tissueClipper[i]->SetClipFunction( _tissuePlanes[i] );
+               _tissueClipper[i]->InsideOutOn( );
+
+               _tissueMapper[i] = vtkPolyDataMapper::New( );
+               _tissueMapper[i]->SetInput( _tissueClipper[i]->GetOutput() );
+               _tissueMapper[i]->ScalarVisibilityOff( );
+//             _tissueMapper[i]->Update();
+
+       }
+               
+
+
+       // vtkActor tissue
+       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
+               // tissue
+               _tissue[i] = vtkActor::New();
+               _tissue[i]->SetMapper( GetTissueMapper(i) );
+               float cr=1,cg=0.5,cb=0.5;
+               _tissue[i]->GetProperty()->SetDiffuseColor(cr/255, cg/255   , cb/255   );
+               _tissue[i]->GetProperty()->SetSpecular(.3);
+               _tissue[i]->GetProperty()->SetSpecularPower(20);
+               _tissue[i]->GetProperty()->SetOpacity(0.5);
+               if (i==0) _tissue[i]->GetProperty()->SetColor(0.85, 0.85   , 0.85   );
+               if (i==1) _tissue[i]->GetProperty()->SetColor(0, 0  ,  1  );
+               if (i==2) _tissue[i]->GetProperty()->SetColor(0.85, 0.20   , 0.20   );
+               if (i==3) _tissue[i]->GetProperty()->SetColor(0, 1   , 0   );
+       }
+
+       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++)
+       {
+               _observerS[i] = boxSurfaceObserver::New();
+               _observerS[i]->SetPlanes( GetTissuePlanes(i) );
+               _observerS[i]->SetActor( _tissue[i] );
+       }
+
+}
+
+//-----------------------------------------------------------------------------
+
+void vtkClipping3DDataViewer::Configure_Volume()
+{
+  // Volume
+
+  _tfun = vtkPiecewiseFunction::New();
+  _ctfun = vtkColorTransferFunction::New();
+
+       double range[2];
+       this->_vtkmprbasedata->GetImageData()->GetScalarRange(range);
+       double max = range[1];
+
+       /*
+       adding the poinst of the transference function
+       */
+       //X
+       greyValuesTransferenceFVector.push_back(max * 0/2);
+       greyValuesTransferenceFVector.push_back(max * 1/2);
+       greyValuesTransferenceFVector.push_back(max * 2/2);
+       //Y
+       intensityValuesTransferenceFVector.push_back(0.0);
+       intensityValuesTransferenceFVector.push_back(1.0);
+       intensityValuesTransferenceFVector.push_back(1.0);
+
+       _tfun->AddPoint(max * 0/2 , 0.0);
+       _tfun->AddPoint(max * 1/2 , 1.0);
+       _tfun->AddPoint(max * 2/2 , 1.0);
+
+       /*
+               Adding the colors to the vectors        
+       */
+       //RED
+       redColorsOfColorTransferenceFVector.push_back(0.0);
+       redColorsOfColorTransferenceFVector.push_back(1.0);
+       redColorsOfColorTransferenceFVector.push_back(0.0);
+       redColorsOfColorTransferenceFVector.push_back(0.0);
+       redColorsOfColorTransferenceFVector.push_back(0.0);
+
+       //GREEN
+       greenColorsOfColorTransferenceFVector.push_back(0.0);
+       greenColorsOfColorTransferenceFVector.push_back(0.0);
+       greenColorsOfColorTransferenceFVector.push_back(0.0);
+       greenColorsOfColorTransferenceFVector.push_back(1.0);
+       greenColorsOfColorTransferenceFVector.push_back(0.2);
+       
+       //BLUE
+       blueColorsOfColorTransferenceFVector.push_back(0.0);
+       blueColorsOfColorTransferenceFVector.push_back(0.0);
+       blueColorsOfColorTransferenceFVector.push_back(1.0);
+       blueColorsOfColorTransferenceFVector.push_back(0.0);
+       blueColorsOfColorTransferenceFVector.push_back(0.0);
+       //GREY VALUE    
+       greyValueColorsOfColorTransferenceFVector.push_back(max*0/4);
+       greyValueColorsOfColorTransferenceFVector.push_back(max*1/4);
+       greyValueColorsOfColorTransferenceFVector.push_back(max*2/4);
+       greyValueColorsOfColorTransferenceFVector.push_back(max*3/4);
+       greyValueColorsOfColorTransferenceFVector.push_back(max*4/4);
+
+       _ctfun->AddRGBPoint( max*0/4 , 0.0, 0.0, 0.0);
+       _ctfun->AddRGBPoint( max*1/4 , 1.0, 0.0, 0.0);
+       _ctfun->AddRGBPoint( max*2/4 , 0.0, 0.0, 1.0);
+       _ctfun->AddRGBPoint( max*3/4 , 0.0, 1.0, 0.0);
+       _ctfun->AddRGBPoint( max*4/4 , 0.0, 0.2, 0.0);
+
+  _volumePlanes  = vtkPlanes::New();
+//     int x1,x2,y1,y2,z1,z2;
+//     vtkImageData *imagedata=_vtkmprbasedata->GetImageData();
+//     imagedata->GetExtent(x1,x2,y1,y2,z1,z2);
+//     _volumePlanes->SetBounds(x1,x2,y1,y2,z1,z2);
+
+  _compositeFunction = vtkVolumeRayCastCompositeFunction::New();
+
+  _volumeMapper = vtkVolumeRayCastMapper::New();
+       _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() );
+       _volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
+       _volumeMapper->SetClippingPlanes( _volumePlanes );
+       _volumeMapper->AutoAdjustSampleDistancesOn();
+
+  _volumeProperty = vtkVolumeProperty::New();
+       _volumeProperty->SetColor(_ctfun);
+       _volumeProperty->SetScalarOpacity( _tfun );
+// EED 31/03/2008
+       _volumeProperty->SetInterpolationTypeToLinear();
+       _volumeProperty->ShadeOn();
+       _volumeProperty->DisableGradientOpacityOn();
+
+//     _volumeProperty->SetInterpolationTypeToNearest();
+//     _volumeProperty->ShadeOff();
+//     _volumeProperty->SetAmbient(0.3);
+//     _volumeProperty->SetDiffuse(0.1);
+//     _volumeProperty->SetSpecular(0.8);
+//     _volumeProperty->DisableGradientOpacityOn();
+
+  _newvol = vtkVolume::New();
+       _newvol->SetMapper(_volumeMapper );
+       _newvol->SetProperty(_volumeProperty );
+
+  _observerV = boxSurfaceObserver::New();
+       _observerV->SetPlanes( _volumePlanes );
+       _observerV->SetActor( _newvol );
+       _observerV->SetvtkVolumeRayCastMapper( _volumeMapper );
+}
+
+
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::Configure()
+{
+       Configure_Tissue();
+       Configure_Volume();
+
+  // An outline provides context around the data.
+  //
+       _outlineData = vtkOutlineFilter::New();
+    _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() );
+       _mapOutline = vtkPolyDataMapper::New();
+    _mapOutline->SetInput(_outlineData->GetOutput());
+       _outline = vtkActor::New();
+    _outline->SetMapper(_mapOutline);
+    _outline->GetProperty()->SetColor(0,0,0);
+}
+
+
+//-------------------------------------------------------------------
+void vtkClipping3DDataViewer::SetIsovalue(int idTissue, int isoValue)
+{
+       _mCubes[idTissue]->SetValue(0, isoValue);
+}
+//-------------------------------------------------------------------
+double vtkClipping3DDataViewer::GetIsovalue(int idTissue)
+{
+       return _mCubes[idTissue]->GetValue(0);
+}
+//-------------------------------------------------------------------
+vtkVolume* vtkClipping3DDataViewer::GetVolumeActor()
+{
+   return _newvol;
+}
+//-------------------------------------------------------------------
+vtkVolumeRayCastMapper* vtkClipping3DDataViewer::GetVolumeMapper(){
+       return _volumeMapper;
+}
+//-------------------------------------------------------------------
+vtkPlanes* vtkClipping3DDataViewer::GetVolumePlanes()
+{
+       return _volumePlanes;
+}
+
+//-------------------------------------------------------------------
+vtkMarchingCubes *vtkClipping3DDataViewer::GetMCubes(int idTissue)
+{
+       return _mCubes[idTissue];
+}
+//--------------------------------------------------------------------
+//-------------------
+//Getters Vectors
+//-------------------
+
+std::vector<double>*   vtkClipping3DDataViewer::GetGreyValuesTransferenceFVector()
+{
+       return &greyValuesTransferenceFVector;
+}
+//--------------------------------------------------------------------
+std::vector<double>*   vtkClipping3DDataViewer::GetIntensityValuesTransferenceFVector()
+{
+       return &intensityValuesTransferenceFVector;
+}
+//--------------------------------------------------------------------
+std::vector<double>*   vtkClipping3DDataViewer::GetRedColorsOfColorTransferenceFVector()
+{
+       return &redColorsOfColorTransferenceFVector;
+}
+//--------------------------------------------------------------------
+std::vector<double>*   vtkClipping3DDataViewer::GetGreenColorsOfColorTransferenceFVector()
+{
+       return &greenColorsOfColorTransferenceFVector;
+}
+//--------------------------------------------------------------------
+std::vector<double>*   vtkClipping3DDataViewer::GetBlueColorsOfColorTransferenceFVector()
+{      
+       return &blueColorsOfColorTransferenceFVector;
+}
+//--------------------------------------------------------------------
+std::vector<double>*   vtkClipping3DDataViewer::GetGreyValueColorsOfColorTransferenceFVector()
+{
+       return &greyValueColorsOfColorTransferenceFVector;
+}
+//--------------------------------------------------------------------
+//--------------------------------------
+//Getters transference function
+//and color of the transference function
+//---------------------------------------
+vtkPiecewiseFunction* vtkClipping3DDataViewer::GetTransferencefunction()
+{
+       return this->_tfun;
+}
+//--------------------------------------------------------------------
+vtkColorTransferFunction* vtkClipping3DDataViewer::GetColorTransferenceFunction()
+{
+       return this->_ctfun;
+}
+
+//-------------------------------------------------------------------
+
+void vtkClipping3DDataViewer::ReadVolumeFunctions()
+{
+/*
+       int i=0,xi,yi,r,g,b,gValue;
+       vtkImageData *imagedata = this->_vtkmprbasedata->GetImageData();
+       
+       HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Histogram Dialog"),imagedata);
+       // 
+       // put in a method
+       //
+       int tfSize=this->greyValuesTransferenceFVector.size();
+               if(tfSize>0)
+               {
+                       int i=0,y;
+                       hDlg->erasePointsTransferenceFunction();
+                       while(i<tfSize)
+                       {
+                               double g=greyValuesTransferenceFVector[i];
+                               double in=intensityValuesTransferenceFVector[i];
+                               hDlg->addPointToTransferenceFunction(g,in*100);
+                               i++;
+                       }
+                       
+               }
+
+       int ctfSize=this->redColorsOfColorTransferenceFVector.size();
+       if(ctfSize>0)
+       {
+               int i=0,y;
+                       while(i<ctfSize)
+                       {
+                               double gr=greyValueColorsOfColorTransferenceFVector[i];
+                               double r=redColorsOfColorTransferenceFVector[i];
+                               double g=greenColorsOfColorTransferenceFVector[i];
+                               double b=blueColorsOfColorTransferenceFVector[i];
+                               hDlg->addColorPoint(gr,r*255,g*255,b*255);
+                               i++;
+                       }
+       }
+       //If it is smooth activate next line
+       //hDlg->updatePlotter();
+       //setting variables if the user wants to do refresh
+       hDlg->setCTF(_ctfun);
+       hDlg->setTF(_tfun);
+       
+       //
+       // when the user had changed the transference Function
+       //
+       if(hDlg->ShowModal()== wxID_OK )
+       {       
+                       // -- vtkPiecewiseFunction --
+                       this->_tfun->RemoveAllPoints();
+                       greyValuesTransferenceFVector.clear();
+                       intensityValuesTransferenceFVector.clear();
+               
+                       int nTFPoints=hDlg->getSizeTransferenceFunction();
+                       i=0;
+                       while(i<nTFPoints)
+                       {
+                               hDlg->getTransferenceFunctionPoint(i,xi,yi);
+                               this->_tfun->AddPoint( xi , yi/100.0 );
+                               greyValuesTransferenceFVector.push_back(xi);
+                               intensityValuesTransferenceFVector.push_back(yi/100.0);
+                               i++;
+                       }       
+                       // -- vtkColorTransferFunction  --
+                       this->_ctfun->RemoveAllPoints ();
+                       //clean colors
+                       redColorsOfColorTransferenceFVector.clear();
+                       greenColorsOfColorTransferenceFVector.clear();
+                       blueColorsOfColorTransferenceFVector.clear();
+                       greyValueColorsOfColorTransferenceFVector.clear();
+
+                       int nCTFpoints=hDlg->getSizeBarColor();
+                       i=0;    
+                       while(i<nCTFpoints)
+                       {
+                               hDlg->getDataBarColorPoint(i,xi,r,g,b);
+                               this->_ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
+                               redColorsOfColorTransferenceFVector.push_back(r/255.0);
+                               greenColorsOfColorTransferenceFVector.push_back(g/255.0);
+                               blueColorsOfColorTransferenceFVector.push_back(b/255.0);
+                               greyValueColorsOfColorTransferenceFVector.push_back(xi);
+                               i++;
+                       }
+                       
+                       this->_volumeMapper->Update();
+                       this->_newvol->Update();
+       }
+       
+       else
+       {
+               
+               if(hDlg->getRefreshed())
+               {
+                       int i=0,size;
+                       //--Transference Function----
+                       this->_tfun->RemoveAllPoints();
+                       i=0;
+                       size=greyValuesTransferenceFVector.size();
+                       for(i=0;i<size;i++)
+                       {
+                               double grey1=greyValuesTransferenceFVector[i];
+                               double  in2=intensityValuesTransferenceFVector[i];
+                               this->_tfun->AddPoint( grey1 , in2 );
+                       }
+                       
+                       // -- vtkColorTransferFunction  --
+                       _ctfun->RemoveAllPoints ();
+                       
+                       i=0;
+                       size=greyValueColorsOfColorTransferenceFVector.size();          
+                       for(i=0;i<size;i++)
+                       {
+                               double grey2=(greyValueColorsOfColorTransferenceFVector)[i];
+                               double red =(redColorsOfColorTransferenceFVector)[i];
+                               double green =(greenColorsOfColorTransferenceFVector)[i];
+                               double blue = (blueColorsOfColorTransferenceFVector)[i];
+                               _ctfun->AddRGBPoint(grey2,red,green,blue);
+                       }
+                       this->_volumeMapper->Update();
+                       this->_newvol->Update();
+                }
+                
+       }
+       hDlg->Destroy();
+*/
+}
+/*
+void vtkClipping3DDataViewer::ReadVolumeFunctions(char *namefile)
+{
+       char tmp[256];
+       short int       max;
+       double          range[2];
+       double          x,val,r,g,b;
+
+       FILE *ff = fopen ( namefile ,"r");
+
+       // --  MAX  --
+       fscanf(ff,"%s",tmp);
+       if (strcmp(tmp,"MAX")==0)
+       {
+               vtkImageData *vtkimagedata              = this->_vtkmprbasedata->GetImageData();
+               vtkimagedata->GetScalarRange(range);
+               max = (int) (range[1]);
+       } else {
+               max = atoi(tmp);
+       }
+
+       fscanf(ff,"%s",tmp);   // --
+
+       // -- vtkPiecewiseFunction --
+       this->_tfun->RemoveAllPoints();
+       fscanf(ff,"%s",tmp);   
+       while ( strcmp(tmp,"--")!=0 )
+       {
+               x=atof(tmp);
+               fscanf(ff,"%s",tmp);   
+               val=atof(tmp);
+               this->_tfun->AddPoint( x*max , val );
+               fscanf(ff,"%s",tmp);   
+       }
+
+       this->_ctfun->RemoveAllPoints ();
+       // -- vtkColorTransferFunction  --
+       while ( !feof(ff))
+       {
+               fscanf(ff,"%s",tmp);   
+               x=atof(tmp);
+               fscanf(ff,"%s",tmp);   
+               r=atof(tmp);
+               fscanf(ff,"%s",tmp);   
+               g=atof(tmp);
+               fscanf(ff,"%s",tmp);   
+               b=atof(tmp);
+               this->_ctfun->AddRGBPoint( x*max , r,g,b );                     
+       }
+
+
+       this->_volumeMapper->Update();
+       this->_newvol->Update();
+
+
+       fclose(ff);
+}
+*/
+
+//-------------------------------------------------------------------
+// EED 23 Mai 2007
+void vtkClipping3DDataViewer::ReadMeshVTK(char *namefile)
+{
+       vtkDataSetReader *reader = vtkDataSetReader::New();
+       reader->SetFileName(namefile);
+       reader->Update();
+       _tissueStripper[3]->SetInput( reader->GetPolyDataOutput()  );
+}
\ No newline at end of file
index 8620269878941fc877a8d84e08453d7ee64ff677..55c27d9541870d5b12c60e0c5586df6c7729544e 100644 (file)
@@ -3,6 +3,23 @@
 
 #include "wxMPRBaseData.h"
 
+#include "vtkClipPolyData.h"
+#include "vtkStripper.h"
+#include "vtkLODActor.h"
+#include "vtkMarchingCubes.h"
+#include "vtkVolumeRayCastMapper.h"
+#include "boxSurfaceObserver.h"
+#include "vtkVolumeRayCastCompositeFunction.h"
+#include <vtkPiecewiseFunction.h>
+#include "vtkVolumeProperty.h"
+#include "vtkPolyDataMapper.h"
+#include "vtkColorTransferFunction.h"
+#include "vtkVolume.h"
+#include "vtkActor.h"
+#include "vtkOutlineFilter.h"
+
+
+
 class vtkClipping3DDataViewer {
 public:
        //----------------------
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx
new file mode 100644 (file)
index 0000000..acbeb2f
--- /dev/null
@@ -0,0 +1,335 @@
+
+#include "vtkMPR3DDataViewer.h"
+
+
+vtkMPR3DDataViewer::vtkMPR3DDataViewer()
+{
+       _visiblePosition[0]=false;
+       _visiblePosition[1]=false;
+       _visiblePosition[2]=false;
+       _ctfun = NULL;
+       _vtkmprbasedata=NULL;
+
+       _ctfun=NULL;
+       _saggitalColors=NULL;
+       _saggital=NULL;
+       _axialColors=NULL;
+       _axial=NULL;
+       _coronalColors=NULL;
+       _coronal=NULL;
+       _mapOutline=NULL;
+       _outline=NULL;
+       _outlineData=NULL;
+}
+//-------------------------------------------------------------------
+vtkMPR3DDataViewer::~vtkMPR3DDataViewer()
+{
+       _outlineData            -> Delete();
+       _mapOutline                     -> Delete();
+       _outline                        -> Delete();
+
+//     if (_bwLut)                             _bwLut                          -> Delete();
+//     if (_hueLut)                    _hueLut                         -> Delete();
+//     if (_satLut)                    _satLut                         -> Delete();
+       if (_ctfun)                             _ctfun                          -> Delete();
+       if (_saggitalColors)    _saggitalColors         -> Delete();
+       if (_saggital)                  _saggital                       -> Delete();
+       if (_axialColors)               _axialColors            -> Delete();
+       if (_axial)                             _axial                          -> Delete();
+       if (_coronalColors)             _coronalColors          -> Delete();
+       if (_coronal)                   _coronal                        -> Delete();
+
+}
+//-------------------------------------------------------------------
+vtkActor* vtkMPR3DDataViewer::GetOutlineActor()
+{
+       return _outline;
+}
+//-------------------------------------------------------------------
+vtkImageActor* vtkMPR3DDataViewer::GetImageActor(int id)
+{
+       vtkImageActor *tmpVtkActor=NULL;
+       if (id==0){
+               tmpVtkActor = GetvtkActor_saggital();
+       }
+       if (id==1){
+               tmpVtkActor = GetvtkActor_coronal();
+       }
+       if (id==2){
+               tmpVtkActor = GetvtkActor_axial();
+       }
+       return tmpVtkActor;
+}
+//-------------------------------------------------------------------
+void vtkMPR3DDataViewer::Refresh()
+{
+       int x = (int)(_vtkmprbasedata->GetX());
+       int y = (int)(_vtkmprbasedata->GetY());
+       int z = (int)(_vtkmprbasedata->GetZ());
+       SetPositionX( x );
+       SetPositionY( y );
+       SetPositionZ( z );
+}
+//-------------------------------------------------------------------
+void vtkMPR3DDataViewer::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata)
+{
+       _vtkmprbasedata=vtkmprbasedata;
+}
+//-------------------------------------------------------------------
+vtkMPRBaseData* vtkMPR3DDataViewer::GetVtkMPRBaseData()
+{
+       return _vtkmprbasedata;
+}
+//-------------------------------------------------------------------
+
+vtkColorTransferFunction *vtkMPR3DDataViewer::GetvtkColorTransferFunction()
+{
+       return _ctfun;
+}
+//-------------------------------------------------------------------
+
+std::vector<double>* vtkMPR3DDataViewer::GetctFunVectorPoint()
+{
+       return &_ctFunVectorPoint;
+}
+//-------------------------------------------------------------------
+std::vector<double>*     vtkMPR3DDataViewer::GetctFunVectorRed()
+{
+       return &_ctFunVectorRed;
+}
+
+//-------------------------------------------------------------------
+std::vector<double>*     vtkMPR3DDataViewer::GetctFunVectorGreen()
+{
+       return &_ctFunVectorGreen;
+}
+
+//-------------------------------------------------------------------
+std::vector<double>*     vtkMPR3DDataViewer::GetctFunVectorBlue()
+{
+       return &_ctFunVectorBlue;
+}
+
+//-------------------------------------------------------------------
+void vtkMPR3DDataViewer::Configure()
+{
+/*
+  // Start by creatin a black/white lookup table.
+       _bwLut = vtkLookupTable::New();
+    _bwLut->SetTableRange (0, 2000);
+    _bwLut->SetSaturationRange (0, 0);
+    _bwLut->SetHueRange (0, 0);
+    _bwLut->SetValueRange (0, 1);
+
+  // Now create a lookup table that consists of the full hue circle
+  // (from HSV).
+       _hueLut = vtkLookupTable::New();
+    _hueLut->SetTableRange (0, 2000);
+    _hueLut->SetHueRange (0, 1);
+    _hueLut->SetSaturationRange (1, 1);
+    _hueLut->SetValueRange (1, 1);
+
+  // Finally, create a lookup table with a single hue but having a range
+  // in the saturation of the hue.
+       _satLut = vtkLookupTable::New();
+    _satLut->SetTableRange (0, 2000);
+    _satLut->SetHueRange (.6, .6);
+    _satLut->SetSaturationRange (0, 1);
+    _satLut->SetValueRange (1, 1);
+*/
+
+
+       double range[2];
+       _vtkmprbasedata->GetImageData()->GetScalarRange(range);
+       double max = range[1];
+
+       _ctFunVectorPoint.clear();
+       _ctFunVectorPoint.push_back(max*0/4);
+       _ctFunVectorPoint.push_back(max*1/4);
+       _ctFunVectorPoint.push_back(max*2/4);
+       _ctFunVectorPoint.push_back(max*3/4);
+       _ctFunVectorPoint.push_back(max*4/4);
+
+       _ctFunVectorRed.clear();
+       _ctFunVectorRed.push_back(0.0);
+       _ctFunVectorRed.push_back(1.0);
+       _ctFunVectorRed.push_back(0.0);
+       _ctFunVectorRed.push_back(0.0);
+       _ctFunVectorRed.push_back(0.0);
+
+       _ctFunVectorGreen.clear();
+       _ctFunVectorGreen.push_back(0.0);
+       _ctFunVectorGreen.push_back(0.0);
+       _ctFunVectorGreen.push_back(0.0);
+       _ctFunVectorGreen.push_back(1.0);
+       _ctFunVectorGreen.push_back(0.2);
+
+       _ctFunVectorBlue.clear();
+       _ctFunVectorBlue.push_back(0.0);
+       _ctFunVectorBlue.push_back(0.0);
+       _ctFunVectorBlue.push_back(1.0);
+       _ctFunVectorBlue.push_back(0.0);
+       _ctFunVectorBlue.push_back(0.0);
+
+
+       if(_ctfun==NULL){
+               _ctfun = vtkColorTransferFunction::New();
+       }
+       _ctfun->RemoveAllPoints();
+
+       int i,size=_ctFunVectorPoint.size();
+       for (i=0;i<size;i++)
+       {
+               _ctfun->AddRGBPoint( _ctFunVectorPoint[i] , _ctFunVectorRed[i],_ctFunVectorGreen[i],_ctFunVectorBlue[i]);
+               
+       }
+/*
+       _ctfun->AddRGBPoint( 100 ,0 ,0,0);
+       _ctfun->AddRGBPoint( 200 ,1 ,0,0);
+       _ctfun->AddRGBPoint( 300 ,0 ,1,0);
+       _ctfun->AddRGBPoint( 400 ,0 ,0,1);
+*/
+//     void *p=this; // JPRx
+
+  // Create the first of the three planes. The filter vtkImageMapToColors
+  // maps the data through the corresponding lookup table created above.  The
+  // vtkImageActor is a type of vtkProp and conveniently displays an image on
+  // a single quadrilateral plane. It does this using texture mapping and as
+  // a result is quite fast. (Note: the input image has to be unsigned char
+  // values, which the vtkImageMapToColors produces.) Note also that by
+  // specifying the DisplayExtent, the pipeline requests data of this extent
+  // and the vtkImageMapToColors only processes a slice of data.
+       
+       if(_saggitalColors==NULL){
+               _saggitalColors = vtkImageMapToColors::New();
+       }
+       _saggitalColors->RemoveAllInputs();
+       
+    _saggitalColors->SetInput( _vtkmprbasedata->GetImageData() );
+//    _saggitalColors->SetLookupTable(_bwLut);
+       
+    _saggitalColors->SetLookupTable(_ctfun);
+
+       
+
+       if(_saggital==NULL){
+               _saggital = vtkImageActor::New();
+               _saggital->SetInput(_saggitalColors->GetOutput());
+       }       
+       //_saggitalColors->Update();
+    
+
+
+  // Create the second (axial) plane of the three planes. We use the
+  // same approach as before except that the extent differs.
+
+       
+       if(_axialColors==NULL){
+               _axialColors = vtkImageMapToColors::New();
+       }
+
+       _axialColors->RemoveAllInputs();
+    _axialColors->SetInput( _vtkmprbasedata->GetImageData() );
+//    _axialColors->SetLookupTable(_hueLut);
+    _axialColors->SetLookupTable(_ctfun);
+
+       if(_axial==NULL){
+               _axial = vtkImageActor::New();
+               _axial->SetInput(_axialColors->GetOutput());
+       }
+       
+       //_axialColors->Update();
+    
+
+       // Create the third (coronal) plane of the three planes. We use 
+  // the same approach as before except that the extent differs.
+       if(_coronalColors==NULL){
+               _coronalColors = vtkImageMapToColors::New();
+       }
+       _coronalColors->RemoveAllInputs();
+    _coronalColors->SetInput( _vtkmprbasedata->GetImageData() );
+//    _coronalColors->SetLookupTable(_satLut);
+    _coronalColors->SetLookupTable(_ctfun);
+
+       if(_coronal==NULL){
+               _coronal = vtkImageActor::New();
+               _coronal->SetInput(_coronalColors->GetOutput());
+       }
+       
+    
+
+  // An outline provides context around the data.
+  //
+       if(_outlineData==NULL){
+               _outlineData = vtkOutlineFilter::New();
+       }
+       _outlineData->RemoveAllInputs();
+    _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() );
+
+       if(_mapOutline==NULL){
+               _mapOutline = vtkPolyDataMapper::New();
+               _mapOutline->SetInput(_outlineData->GetOutput());
+       }
+       _mapOutline->Update();    
+       //_mapOutline->RemoveAllInputs();
+    
+       if(_outline==NULL){
+               _outline = vtkActor::New();
+               _outline->SetMapper(_mapOutline);
+               _outline->GetProperty()->SetColor(0,0,0);
+       }
+       
+    
+
+       int ext[6];
+       _vtkmprbasedata->GetImageData()->GetExtent(ext);
+
+       
+
+
+}
+
+//-------------------------------------------------------------------
+vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_saggital()
+{
+       return _saggital;
+}
+//-------------------------------------------------------------------
+vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_coronal()
+{
+       return _coronal;
+}
+//-------------------------------------------------------------------
+vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_axial()
+{
+       return _axial;
+}
+
+//------------------------------------------------------------------------
+void vtkMPR3DDataViewer::SetPositionX(int pos){
+       int x1,x2,y1,y2,z1,z2;
+       _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
+       _saggital->SetDisplayExtent( pos , pos , y1 ,y2 , z1 , z2 );
+}
+//------------------------------------------------------------------------
+void vtkMPR3DDataViewer::SetPositionY(int pos){
+       int x1,x2,y1,y2,z1,z2;
+       _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
+       _coronal->SetDisplayExtent(x1,x2, pos,pos, z1,z2);
+}
+//------------------------------------------------------------------------
+void vtkMPR3DDataViewer::SetPositionZ(int pos){
+       int x1,x2,y1,y2,z1,z2;
+       _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
+       _axial->SetDisplayExtent(x1,x2, y1,y2, pos,pos);
+}
+//-------------------------------------------------------------------
+void vtkMPR3DDataViewer::SetVisiblePosition(int idPosition, bool visible)
+{
+       _visiblePosition[idPosition]=visible;
+}
+//-------------------------------------------------------------------
+bool vtkMPR3DDataViewer::GetVisiblePosition(int idPosition)
+{
+       return _visiblePosition[idPosition];
+}
\ No newline at end of file
index 760e2c4169a5e1e516cfaa29ae2dbc0803b1616c..3eb02167efe150c8d331db2af7fe4af2f8cd7dd8 100644 (file)
@@ -2,6 +2,13 @@
 #define VTKMPR3DDATAVIEWER_H_
 
 #include "wxMPRBaseData.h"
+#include "vtkProperty.h"
+#include <vtkImageMapToColors.h> 
+#include "vtkOutlineFilter.h"
+#include "vtkPolyDataMapper.h"
+#include "vtkActor.h"
+#include <vtkColorTransferFunction.h>
+#include "vtkImageActor.h"
 
 class creaMaracasVisu_EXPORT vtkMPR3DDataViewer {
 public:
index c178472528ddd8f99c0b23e27a4167c126911e08..2108748c53d888923617f1deaf600cce1ac882f5 100644 (file)
@@ -12,6 +12,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkPlaneSource.h"
 #include "vtkProbeFilter.h"
+#include "vtkPolyDataMapper.h"
 
 class vtkPlane2DView : public wxVtk2DBaseView
 {
index a46feff5b49d41b2ac441a90eceff740b0c503f2..9ec150285bf768281eb8bf1911601030e3b22724 100644 (file)
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
 
-vtkBaseData::vtkBaseData()
-{
-
-       _z                                       = 0;
-       _t                                       = 0;
-       _marImageData            = NULL;
-}
-
-//-------------------------------------------------------------------
-vtkBaseData::~vtkBaseData()
-{
-}
-
-//-------------------------------------------------------------------
-void vtkBaseData::SetMarImageData(marImageData *marimagedata)
-{
-       _marImageData = marimagedata;
-       //Configure();
-}
-
-//-------------------------------------------------------------------
-vtkImageData* vtkBaseData::GetImageData()
-{
-       return _marImageData->GetImageDataT(_t);
-}
-//-------------------------------------------------------------------
-marImageData* vtkBaseData::GetMarImageData()
-{
-       return _marImageData;
-}
-
-//-------------------------------------------------------------------
-
-void vtkBaseData::Configure()  // virtual
-{
-}
-
-//-------------------------------------------------------------------
-void vtkBaseData::SetZ(double z){
-       //int maxZ;
-
-//     int dim[3];
-//     _marImageData->GetDimensions(dim);
-//     maxZ=dim[2];
-
-       int ext[6];
-       vtkImageData* img = _marImageData->GetImageData();
-       if(img!=NULL){
-               /*img->GetWholeExtent(ext);
-               maxZ=ext[5]-ext[4]+1;
-
-               if (z>=maxZ)
-               {
-                       //z=maxZ-1;
-               }
-               if (z<=0)
-               {
-                       z=0;
-               }
-
-               _z=z;*/
-               img->GetExtent(ext);
-               if (z > ext[5])
-               {
-                       z = ext[5];
-               }
-               if (z < ext[4])
-               {
-                       z = ext[4];
-               }
-
-               _z=z;
-       }
-}
-//-------------------------------------------------------------------
-double vtkBaseData::GetZ()
-{
-       return _z;
-}
-//-------------------------------------------------------------------
-int vtkBaseData::GetT()
-{
-       return _t;
-}
-//-------------------------------------------------------------------
-void vtkBaseData::SetT(double t)
-{
-       int maxT = _marImageData->GetMaxT();
-       if (t>=maxT)
-       {
-               t=maxT-1;
-       }
-       if (t<=0)
-       {
-               t=0;
-       }
-       _t=(int)t;
-}
 
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
@@ -276,958 +178,3 @@ void vtkMPRBaseData::InitTransformOrientation(vtkTransform *trans)
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
 
-
-vtkMPR3DDataViewer::vtkMPR3DDataViewer()
-{
-       _visiblePosition[0]=false;
-       _visiblePosition[1]=false;
-       _visiblePosition[2]=false;
-       _ctfun = NULL;
-       _vtkmprbasedata=NULL;
-
-       _ctfun=NULL;
-       _saggitalColors=NULL;
-       _saggital=NULL;
-       _axialColors=NULL;
-       _axial=NULL;
-       _coronalColors=NULL;
-       _coronal=NULL;
-       _mapOutline=NULL;
-       _outline=NULL;
-       _outlineData=NULL;
-}
-//-------------------------------------------------------------------
-vtkMPR3DDataViewer::~vtkMPR3DDataViewer()
-{
-       _outlineData            -> Delete();
-       _mapOutline                     -> Delete();
-       _outline                        -> Delete();
-
-//     if (_bwLut)                             _bwLut                          -> Delete();
-//     if (_hueLut)                    _hueLut                         -> Delete();
-//     if (_satLut)                    _satLut                         -> Delete();
-       if (_ctfun)                             _ctfun                          -> Delete();
-       if (_saggitalColors)    _saggitalColors         -> Delete();
-       if (_saggital)                  _saggital                       -> Delete();
-       if (_axialColors)               _axialColors            -> Delete();
-       if (_axial)                             _axial                          -> Delete();
-       if (_coronalColors)             _coronalColors          -> Delete();
-       if (_coronal)                   _coronal                        -> Delete();
-
-}
-//-------------------------------------------------------------------
-vtkActor* vtkMPR3DDataViewer::GetOutlineActor()
-{
-       return _outline;
-}
-//-------------------------------------------------------------------
-vtkImageActor* vtkMPR3DDataViewer::GetImageActor(int id)
-{
-       vtkImageActor *tmpVtkActor=NULL;
-       if (id==0){
-               tmpVtkActor = GetvtkActor_saggital();
-       }
-       if (id==1){
-               tmpVtkActor = GetvtkActor_coronal();
-       }
-       if (id==2){
-               tmpVtkActor = GetvtkActor_axial();
-       }
-       return tmpVtkActor;
-}
-//-------------------------------------------------------------------
-void vtkMPR3DDataViewer::Refresh()
-{
-       int x = (int)(_vtkmprbasedata->GetX());
-       int y = (int)(_vtkmprbasedata->GetY());
-       int z = (int)(_vtkmprbasedata->GetZ());
-       SetPositionX( x );
-       SetPositionY( y );
-       SetPositionZ( z );
-}
-//-------------------------------------------------------------------
-void vtkMPR3DDataViewer::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata)
-{
-       _vtkmprbasedata=vtkmprbasedata;
-}
-//-------------------------------------------------------------------
-vtkMPRBaseData* vtkMPR3DDataViewer::GetVtkMPRBaseData()
-{
-       return _vtkmprbasedata;
-}
-//-------------------------------------------------------------------
-
-vtkColorTransferFunction *vtkMPR3DDataViewer::GetvtkColorTransferFunction()
-{
-       return _ctfun;
-}
-//-------------------------------------------------------------------
-
-std::vector<double>* vtkMPR3DDataViewer::GetctFunVectorPoint()
-{
-       return &_ctFunVectorPoint;
-}
-//-------------------------------------------------------------------
-std::vector<double>*     vtkMPR3DDataViewer::GetctFunVectorRed()
-{
-       return &_ctFunVectorRed;
-}
-
-//-------------------------------------------------------------------
-std::vector<double>*     vtkMPR3DDataViewer::GetctFunVectorGreen()
-{
-       return &_ctFunVectorGreen;
-}
-
-//-------------------------------------------------------------------
-std::vector<double>*     vtkMPR3DDataViewer::GetctFunVectorBlue()
-{
-       return &_ctFunVectorBlue;
-}
-
-//-------------------------------------------------------------------
-void vtkMPR3DDataViewer::Configure()
-{
-/*
-  // Start by creatin a black/white lookup table.
-       _bwLut = vtkLookupTable::New();
-    _bwLut->SetTableRange (0, 2000);
-    _bwLut->SetSaturationRange (0, 0);
-    _bwLut->SetHueRange (0, 0);
-    _bwLut->SetValueRange (0, 1);
-
-  // Now create a lookup table that consists of the full hue circle
-  // (from HSV).
-       _hueLut = vtkLookupTable::New();
-    _hueLut->SetTableRange (0, 2000);
-    _hueLut->SetHueRange (0, 1);
-    _hueLut->SetSaturationRange (1, 1);
-    _hueLut->SetValueRange (1, 1);
-
-  // Finally, create a lookup table with a single hue but having a range
-  // in the saturation of the hue.
-       _satLut = vtkLookupTable::New();
-    _satLut->SetTableRange (0, 2000);
-    _satLut->SetHueRange (.6, .6);
-    _satLut->SetSaturationRange (0, 1);
-    _satLut->SetValueRange (1, 1);
-*/
-
-
-       double range[2];
-       _vtkmprbasedata->GetImageData()->GetScalarRange(range);
-       double max = range[1];
-
-       _ctFunVectorPoint.clear();
-       _ctFunVectorPoint.push_back(max*0/4);
-       _ctFunVectorPoint.push_back(max*1/4);
-       _ctFunVectorPoint.push_back(max*2/4);
-       _ctFunVectorPoint.push_back(max*3/4);
-       _ctFunVectorPoint.push_back(max*4/4);
-
-       _ctFunVectorRed.clear();
-       _ctFunVectorRed.push_back(0.0);
-       _ctFunVectorRed.push_back(1.0);
-       _ctFunVectorRed.push_back(0.0);
-       _ctFunVectorRed.push_back(0.0);
-       _ctFunVectorRed.push_back(0.0);
-
-       _ctFunVectorGreen.clear();
-       _ctFunVectorGreen.push_back(0.0);
-       _ctFunVectorGreen.push_back(0.0);
-       _ctFunVectorGreen.push_back(0.0);
-       _ctFunVectorGreen.push_back(1.0);
-       _ctFunVectorGreen.push_back(0.2);
-
-       _ctFunVectorBlue.clear();
-       _ctFunVectorBlue.push_back(0.0);
-       _ctFunVectorBlue.push_back(0.0);
-       _ctFunVectorBlue.push_back(1.0);
-       _ctFunVectorBlue.push_back(0.0);
-       _ctFunVectorBlue.push_back(0.0);
-
-
-       if(_ctfun==NULL){
-               _ctfun = vtkColorTransferFunction::New();
-       }
-       _ctfun->RemoveAllPoints();
-
-       int i,size=_ctFunVectorPoint.size();
-       for (i=0;i<size;i++)
-       {
-               _ctfun->AddRGBPoint( _ctFunVectorPoint[i] , _ctFunVectorRed[i],_ctFunVectorGreen[i],_ctFunVectorBlue[i]);
-               
-       }
-/*
-       _ctfun->AddRGBPoint( 100 ,0 ,0,0);
-       _ctfun->AddRGBPoint( 200 ,1 ,0,0);
-       _ctfun->AddRGBPoint( 300 ,0 ,1,0);
-       _ctfun->AddRGBPoint( 400 ,0 ,0,1);
-*/
-//     void *p=this; // JPRx
-
-  // Create the first of the three planes. The filter vtkImageMapToColors
-  // maps the data through the corresponding lookup table created above.  The
-  // vtkImageActor is a type of vtkProp and conveniently displays an image on
-  // a single quadrilateral plane. It does this using texture mapping and as
-  // a result is quite fast. (Note: the input image has to be unsigned char
-  // values, which the vtkImageMapToColors produces.) Note also that by
-  // specifying the DisplayExtent, the pipeline requests data of this extent
-  // and the vtkImageMapToColors only processes a slice of data.
-       
-       if(_saggitalColors==NULL){
-               _saggitalColors = vtkImageMapToColors::New();
-       }
-       _saggitalColors->RemoveAllInputs();
-       
-    _saggitalColors->SetInput( _vtkmprbasedata->GetImageData() );
-//    _saggitalColors->SetLookupTable(_bwLut);
-       
-    _saggitalColors->SetLookupTable(_ctfun);
-
-       
-
-       if(_saggital==NULL){
-               _saggital = vtkImageActor::New();
-               _saggital->SetInput(_saggitalColors->GetOutput());
-       }       
-       //_saggitalColors->Update();
-    
-
-
-  // Create the second (axial) plane of the three planes. We use the
-  // same approach as before except that the extent differs.
-
-       
-       if(_axialColors==NULL){
-               _axialColors = vtkImageMapToColors::New();
-       }
-
-       _axialColors->RemoveAllInputs();
-    _axialColors->SetInput( _vtkmprbasedata->GetImageData() );
-//    _axialColors->SetLookupTable(_hueLut);
-    _axialColors->SetLookupTable(_ctfun);
-
-       if(_axial==NULL){
-               _axial = vtkImageActor::New();
-               _axial->SetInput(_axialColors->GetOutput());
-       }
-       
-       //_axialColors->Update();
-    
-
-       // Create the third (coronal) plane of the three planes. We use 
-  // the same approach as before except that the extent differs.
-       if(_coronalColors==NULL){
-               _coronalColors = vtkImageMapToColors::New();
-       }
-       _coronalColors->RemoveAllInputs();
-    _coronalColors->SetInput( _vtkmprbasedata->GetImageData() );
-//    _coronalColors->SetLookupTable(_satLut);
-    _coronalColors->SetLookupTable(_ctfun);
-
-       if(_coronal==NULL){
-               _coronal = vtkImageActor::New();
-               _coronal->SetInput(_coronalColors->GetOutput());
-       }
-       
-    
-
-  // An outline provides context around the data.
-  //
-       if(_outlineData==NULL){
-               _outlineData = vtkOutlineFilter::New();
-       }
-       _outlineData->RemoveAllInputs();
-    _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() );
-
-       if(_mapOutline==NULL){
-               _mapOutline = vtkPolyDataMapper::New();
-               _mapOutline->SetInput(_outlineData->GetOutput());
-       }
-       _mapOutline->Update();    
-       //_mapOutline->RemoveAllInputs();
-    
-       if(_outline==NULL){
-               _outline = vtkActor::New();
-               _outline->SetMapper(_mapOutline);
-               _outline->GetProperty()->SetColor(0,0,0);
-       }
-       
-    
-
-       int ext[6];
-       _vtkmprbasedata->GetImageData()->GetExtent(ext);
-
-       
-
-
-}
-
-//-------------------------------------------------------------------
-vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_saggital()
-{
-       return _saggital;
-}
-//-------------------------------------------------------------------
-vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_coronal()
-{
-       return _coronal;
-}
-//-------------------------------------------------------------------
-vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_axial()
-{
-       return _axial;
-}
-
-//------------------------------------------------------------------------
-void vtkMPR3DDataViewer::SetPositionX(int pos){
-       int x1,x2,y1,y2,z1,z2;
-       _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
-       _saggital->SetDisplayExtent( pos , pos , y1 ,y2 , z1 , z2 );
-}
-//------------------------------------------------------------------------
-void vtkMPR3DDataViewer::SetPositionY(int pos){
-       int x1,x2,y1,y2,z1,z2;
-       _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
-       _coronal->SetDisplayExtent(x1,x2, pos,pos, z1,z2);
-}
-//------------------------------------------------------------------------
-void vtkMPR3DDataViewer::SetPositionZ(int pos){
-       int x1,x2,y1,y2,z1,z2;
-       _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
-       _axial->SetDisplayExtent(x1,x2, y1,y2, pos,pos);
-}
-//-------------------------------------------------------------------
-void vtkMPR3DDataViewer::SetVisiblePosition(int idPosition, bool visible)
-{
-       _visiblePosition[idPosition]=visible;
-}
-//-------------------------------------------------------------------
-bool vtkMPR3DDataViewer::GetVisiblePosition(int idPosition)
-{
-       return _visiblePosition[idPosition];
-}
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-vtkClipping3DDataViewer::vtkClipping3DDataViewer()
-{
-       int i;
-       for (i=0; i<VTKMPRDATA_MAXTISSUE; i++){
-               _visibleTissue[i]               = false;
-               _representationType[i]  = true;
-       }
-       _visibleVolume=false;
-}
-//-------------------------------------------------------------------
-vtkClipping3DDataViewer::~vtkClipping3DDataViewer()
-{
-       int i;
-       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
-               _mCubes[i]                              ->Delete();
-               _tissueStripper[i]              ->Delete();
-               _tissueMapper[i]                ->Delete();
-               _tissuePlanes[i]                ->Delete();
-               _tissueClipper[i]               ->Delete();
-       }
-       _outlineData            ->Delete();
-       _mapOutline                     ->Delete();
-       _outline                        ->Delete();
-       // Volume
-       _tfun                           ->Delete();
-       _ctfun                          ->Delete();
-       _compositeFunction      ->Delete();
-       _volumeMapper           ->Delete();
-       _volumeProperty         ->Delete();
-       _newvol                         ->Delete();
-       _volumePlanes           ->Delete();
-
-       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
-               _tissue[i]              -> Delete();
-               _observerS[i]   -> Delete();
-       }
-       _observerV              -> Delete();
-}
-//-------------------------------------------------------------------
-vtkActor* vtkClipping3DDataViewer::GetOutlineActor()
-{
-       return _outline;
-}
-//-------------------------------------------------------------------
-vtkClipPolyData* vtkClipping3DDataViewer::GetTissueClipper(int id)
-{
-       return this->_tissueClipper[id];
-}
-//-------------------------------------------------------------------
-vtkPolyDataMapper* vtkClipping3DDataViewer::GetTissueMapper(int id)
-{
-       return _tissueMapper[id];
-}
-//-------------------------------------------------------------------
-vtkPlanes* vtkClipping3DDataViewer::GetTissuePlanes(int id)
-{
-       return _tissuePlanes[id];
-}
-//-------------------------------------------------------------------
-vtkStripper* vtkClipping3DDataViewer::GetTissueStripper(int id)
-{
-       return _tissueStripper[id];
-}
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::Refresh()
-{
-//     _volumeMapper->SetClippingPlanes(_volumePlanes);
-
-//     this->_volumeMapper->Update();
-//     this->_newvol->Update();
-
-//     _newvol->VisibilityOn();
-
-       
-// _volumeMapper = vtkVolumeRayCastMapper::New();
-//     _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() );
-//     _volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
-//     _volumeMapper->SetClippingPlanes( _volumePlanes );
-//     _newvol->SetMapper(_volumeMapper );
-
-
-}
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::RefreshSurface()
-{
-       int i;
-       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++)
-       {
-               SetIsovalue(i, (int) (GetIsovalue(i)+1) );
-//             this->GetMCubes(i)->Update();
-       }
-}
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata)
-{
-       _vtkmprbasedata=vtkmprbasedata;
-}
-//-------------------------------------------------------------------
-vtkMPRBaseData* vtkClipping3DDataViewer::GetVtkMPRBaseData()
-{
-       return _vtkmprbasedata;
-}
-
-
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::SetVisibleTissue(int idTissue, bool visible)
-{
-       _visibleTissue[idTissue]=visible;
-}
-//-------------------------------------------------------------------
-bool vtkClipping3DDataViewer::GetVisibleTissue(int idTissue){
-       return _visibleTissue[idTissue];
-}
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::SetRepresentationType(int idTissue, bool representationType)
-{
-       _representationType[idTissue]=representationType;
-}
-//-------------------------------------------------------------------
-bool vtkClipping3DDataViewer::GetRepresentationType(int idTissue)
-{
-       return _representationType[idTissue];
-}
-
-//-------------------------------------------------------------------
-vtkActor* vtkClipping3DDataViewer::GetTissueActor(int id){
-       return _tissue[id];
-}
-
-//-------------------------------------------------------------------
-boxSurfaceObserver *vtkClipping3DDataViewer::GetObserverS(int idObserverS)
-{
-       return _observerS[idObserverS];
-}
-//-------------------------------------------------------------------
-boxSurfaceObserver *vtkClipping3DDataViewer::GetObserverV()
-{
-       return _observerV;
-}
-
-//-------------------------------------------------------------------
-bool vtkClipping3DDataViewer::GetVisibleVolume()
-{
-       return _visibleVolume;
-}
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::SetVisibleVolume(bool visiblevolume)
-{
-       _visibleVolume = visiblevolume;
-}
-
-
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::Configure_Tissue()
-{
-
-       double range[2];
-       int i;
-       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
-               // Visualisation - original volume
-               vtkImageData *imagedata=_vtkmprbasedata->GetImageData();
-               imagedata->GetScalarRange( range );
-               _mCubes[i] = vtkMarchingCubes::New( );
-               _mCubes[i]->SetInput( imagedata );
-
-               _mCubes[i]->SetValue( 0, range[1]*(4+i) / 8 );
-//             _mCubes[i]->SetValue( 0, 1500 );
-
-           _tissueStripper[i] = vtkStripper::New();
-           _tissueStripper[i]->SetInput( _mCubes[i]->GetOutput( ) );
-
-
-
-               _tissuePlanes[i]  = vtkPlanes::New();
-   
-               int x1,x2,y1,y2,z1,z2;
-               imagedata->GetExtent(x1,x2,y1,y2,z1,z2);
-               _tissuePlanes[i]->SetBounds  (x1,x2,y1,y2,z1,z2);
-               
-               _tissueClipper[i] = vtkClipPolyData::New();
-               _tissueClipper[i]->SetInput( _tissueStripper[i]->GetOutput() );
-               _tissueClipper[i]->SetClipFunction( _tissuePlanes[i] );
-               _tissueClipper[i]->InsideOutOn( );
-
-               _tissueMapper[i] = vtkPolyDataMapper::New( );
-               _tissueMapper[i]->SetInput( _tissueClipper[i]->GetOutput() );
-               _tissueMapper[i]->ScalarVisibilityOff( );
-//             _tissueMapper[i]->Update();
-
-       }
-               
-
-
-       // vtkActor tissue
-       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){
-               // tissue
-               _tissue[i] = vtkActor::New();
-               _tissue[i]->SetMapper( GetTissueMapper(i) );
-               float cr=1,cg=0.5,cb=0.5;
-               _tissue[i]->GetProperty()->SetDiffuseColor(cr/255, cg/255   , cb/255   );
-               _tissue[i]->GetProperty()->SetSpecular(.3);
-               _tissue[i]->GetProperty()->SetSpecularPower(20);
-               _tissue[i]->GetProperty()->SetOpacity(0.5);
-               if (i==0) _tissue[i]->GetProperty()->SetColor(0.85, 0.85   , 0.85   );
-               if (i==1) _tissue[i]->GetProperty()->SetColor(0, 0  ,  1  );
-               if (i==2) _tissue[i]->GetProperty()->SetColor(0.85, 0.20   , 0.20   );
-               if (i==3) _tissue[i]->GetProperty()->SetColor(0, 1   , 0   );
-       }
-
-       for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++)
-       {
-               _observerS[i] = boxSurfaceObserver::New();
-               _observerS[i]->SetPlanes( GetTissuePlanes(i) );
-               _observerS[i]->SetActor( _tissue[i] );
-       }
-
-}
-
-//-----------------------------------------------------------------------------
-
-void vtkClipping3DDataViewer::Configure_Volume()
-{
-  // Volume
-
-  _tfun = vtkPiecewiseFunction::New();
-  _ctfun = vtkColorTransferFunction::New();
-
-       double range[2];
-       this->_vtkmprbasedata->GetImageData()->GetScalarRange(range);
-       double max = range[1];
-
-       /*
-       adding the poinst of the transference function
-       */
-       //X
-       greyValuesTransferenceFVector.push_back(max * 0/2);
-       greyValuesTransferenceFVector.push_back(max * 1/2);
-       greyValuesTransferenceFVector.push_back(max * 2/2);
-       //Y
-       intensityValuesTransferenceFVector.push_back(0.0);
-       intensityValuesTransferenceFVector.push_back(1.0);
-       intensityValuesTransferenceFVector.push_back(1.0);
-
-       _tfun->AddPoint(max * 0/2 , 0.0);
-       _tfun->AddPoint(max * 1/2 , 1.0);
-       _tfun->AddPoint(max * 2/2 , 1.0);
-
-       /*
-               Adding the colors to the vectors        
-       */
-       //RED
-       redColorsOfColorTransferenceFVector.push_back(0.0);
-       redColorsOfColorTransferenceFVector.push_back(1.0);
-       redColorsOfColorTransferenceFVector.push_back(0.0);
-       redColorsOfColorTransferenceFVector.push_back(0.0);
-       redColorsOfColorTransferenceFVector.push_back(0.0);
-
-       //GREEN
-       greenColorsOfColorTransferenceFVector.push_back(0.0);
-       greenColorsOfColorTransferenceFVector.push_back(0.0);
-       greenColorsOfColorTransferenceFVector.push_back(0.0);
-       greenColorsOfColorTransferenceFVector.push_back(1.0);
-       greenColorsOfColorTransferenceFVector.push_back(0.2);
-       
-       //BLUE
-       blueColorsOfColorTransferenceFVector.push_back(0.0);
-       blueColorsOfColorTransferenceFVector.push_back(0.0);
-       blueColorsOfColorTransferenceFVector.push_back(1.0);
-       blueColorsOfColorTransferenceFVector.push_back(0.0);
-       blueColorsOfColorTransferenceFVector.push_back(0.0);
-       //GREY VALUE    
-       greyValueColorsOfColorTransferenceFVector.push_back(max*0/4);
-       greyValueColorsOfColorTransferenceFVector.push_back(max*1/4);
-       greyValueColorsOfColorTransferenceFVector.push_back(max*2/4);
-       greyValueColorsOfColorTransferenceFVector.push_back(max*3/4);
-       greyValueColorsOfColorTransferenceFVector.push_back(max*4/4);
-
-       _ctfun->AddRGBPoint( max*0/4 , 0.0, 0.0, 0.0);
-       _ctfun->AddRGBPoint( max*1/4 , 1.0, 0.0, 0.0);
-       _ctfun->AddRGBPoint( max*2/4 , 0.0, 0.0, 1.0);
-       _ctfun->AddRGBPoint( max*3/4 , 0.0, 1.0, 0.0);
-       _ctfun->AddRGBPoint( max*4/4 , 0.0, 0.2, 0.0);
-
-  _volumePlanes  = vtkPlanes::New();
-//     int x1,x2,y1,y2,z1,z2;
-//     vtkImageData *imagedata=_vtkmprbasedata->GetImageData();
-//     imagedata->GetExtent(x1,x2,y1,y2,z1,z2);
-//     _volumePlanes->SetBounds(x1,x2,y1,y2,z1,z2);
-
-  _compositeFunction = vtkVolumeRayCastCompositeFunction::New();
-
-  _volumeMapper = vtkVolumeRayCastMapper::New();
-       _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() );
-       _volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
-       _volumeMapper->SetClippingPlanes( _volumePlanes );
-       _volumeMapper->AutoAdjustSampleDistancesOn();
-
-  _volumeProperty = vtkVolumeProperty::New();
-       _volumeProperty->SetColor(_ctfun);
-       _volumeProperty->SetScalarOpacity( _tfun );
-// EED 31/03/2008
-       _volumeProperty->SetInterpolationTypeToLinear();
-       _volumeProperty->ShadeOn();
-       _volumeProperty->DisableGradientOpacityOn();
-
-//     _volumeProperty->SetInterpolationTypeToNearest();
-//     _volumeProperty->ShadeOff();
-//     _volumeProperty->SetAmbient(0.3);
-//     _volumeProperty->SetDiffuse(0.1);
-//     _volumeProperty->SetSpecular(0.8);
-//     _volumeProperty->DisableGradientOpacityOn();
-
-  _newvol = vtkVolume::New();
-       _newvol->SetMapper(_volumeMapper );
-       _newvol->SetProperty(_volumeProperty );
-
-  _observerV = boxSurfaceObserver::New();
-       _observerV->SetPlanes( _volumePlanes );
-       _observerV->SetActor( _newvol );
-       _observerV->SetvtkVolumeRayCastMapper( _volumeMapper );
-}
-
-
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::Configure()
-{
-       Configure_Tissue();
-       Configure_Volume();
-
-  // An outline provides context around the data.
-  //
-       _outlineData = vtkOutlineFilter::New();
-    _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() );
-       _mapOutline = vtkPolyDataMapper::New();
-    _mapOutline->SetInput(_outlineData->GetOutput());
-       _outline = vtkActor::New();
-    _outline->SetMapper(_mapOutline);
-    _outline->GetProperty()->SetColor(0,0,0);
-}
-
-
-//-------------------------------------------------------------------
-void vtkClipping3DDataViewer::SetIsovalue(int idTissue, int isoValue)
-{
-       _mCubes[idTissue]->SetValue(0, isoValue);
-}
-//-------------------------------------------------------------------
-double vtkClipping3DDataViewer::GetIsovalue(int idTissue)
-{
-       return _mCubes[idTissue]->GetValue(0);
-}
-//-------------------------------------------------------------------
-vtkVolume* vtkClipping3DDataViewer::GetVolumeActor()
-{
-   return _newvol;
-}
-//-------------------------------------------------------------------
-vtkVolumeRayCastMapper* vtkClipping3DDataViewer::GetVolumeMapper(){
-       return _volumeMapper;
-}
-//-------------------------------------------------------------------
-vtkPlanes* vtkClipping3DDataViewer::GetVolumePlanes()
-{
-       return _volumePlanes;
-}
-
-//-------------------------------------------------------------------
-vtkMarchingCubes *vtkClipping3DDataViewer::GetMCubes(int idTissue)
-{
-       return _mCubes[idTissue];
-}
-//--------------------------------------------------------------------
-//-------------------
-//Getters Vectors
-//-------------------
-
-std::vector<double>*   vtkClipping3DDataViewer::GetGreyValuesTransferenceFVector()
-{
-       return &greyValuesTransferenceFVector;
-}
-//--------------------------------------------------------------------
-std::vector<double>*   vtkClipping3DDataViewer::GetIntensityValuesTransferenceFVector()
-{
-       return &intensityValuesTransferenceFVector;
-}
-//--------------------------------------------------------------------
-std::vector<double>*   vtkClipping3DDataViewer::GetRedColorsOfColorTransferenceFVector()
-{
-       return &redColorsOfColorTransferenceFVector;
-}
-//--------------------------------------------------------------------
-std::vector<double>*   vtkClipping3DDataViewer::GetGreenColorsOfColorTransferenceFVector()
-{
-       return &greenColorsOfColorTransferenceFVector;
-}
-//--------------------------------------------------------------------
-std::vector<double>*   vtkClipping3DDataViewer::GetBlueColorsOfColorTransferenceFVector()
-{      
-       return &blueColorsOfColorTransferenceFVector;
-}
-//--------------------------------------------------------------------
-std::vector<double>*   vtkClipping3DDataViewer::GetGreyValueColorsOfColorTransferenceFVector()
-{
-       return &greyValueColorsOfColorTransferenceFVector;
-}
-//--------------------------------------------------------------------
-//--------------------------------------
-//Getters transference function
-//and color of the transference function
-//---------------------------------------
-vtkPiecewiseFunction* vtkClipping3DDataViewer::GetTransferencefunction()
-{
-       return this->_tfun;
-}
-//--------------------------------------------------------------------
-vtkColorTransferFunction* vtkClipping3DDataViewer::GetColorTransferenceFunction()
-{
-       return this->_ctfun;
-}
-
-//-------------------------------------------------------------------
-
-void vtkClipping3DDataViewer::ReadVolumeFunctions()
-{
-/*
-       int i=0,xi,yi,r,g,b,gValue;
-       vtkImageData *imagedata = this->_vtkmprbasedata->GetImageData();
-       
-       HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Histogram Dialog"),imagedata);
-       // 
-       // put in a method
-       //
-       int tfSize=this->greyValuesTransferenceFVector.size();
-               if(tfSize>0)
-               {
-                       int i=0,y;
-                       hDlg->erasePointsTransferenceFunction();
-                       while(i<tfSize)
-                       {
-                               double g=greyValuesTransferenceFVector[i];
-                               double in=intensityValuesTransferenceFVector[i];
-                               hDlg->addPointToTransferenceFunction(g,in*100);
-                               i++;
-                       }
-                       
-               }
-
-       int ctfSize=this->redColorsOfColorTransferenceFVector.size();
-       if(ctfSize>0)
-       {
-               int i=0,y;
-                       while(i<ctfSize)
-                       {
-                               double gr=greyValueColorsOfColorTransferenceFVector[i];
-                               double r=redColorsOfColorTransferenceFVector[i];
-                               double g=greenColorsOfColorTransferenceFVector[i];
-                               double b=blueColorsOfColorTransferenceFVector[i];
-                               hDlg->addColorPoint(gr,r*255,g*255,b*255);
-                               i++;
-                       }
-       }
-       //If it is smooth activate next line
-       //hDlg->updatePlotter();
-       //setting variables if the user wants to do refresh
-       hDlg->setCTF(_ctfun);
-       hDlg->setTF(_tfun);
-       
-       //
-       // when the user had changed the transference Function
-       //
-       if(hDlg->ShowModal()== wxID_OK )
-       {       
-                       // -- vtkPiecewiseFunction --
-                       this->_tfun->RemoveAllPoints();
-                       greyValuesTransferenceFVector.clear();
-                       intensityValuesTransferenceFVector.clear();
-               
-                       int nTFPoints=hDlg->getSizeTransferenceFunction();
-                       i=0;
-                       while(i<nTFPoints)
-                       {
-                               hDlg->getTransferenceFunctionPoint(i,xi,yi);
-                               this->_tfun->AddPoint( xi , yi/100.0 );
-                               greyValuesTransferenceFVector.push_back(xi);
-                               intensityValuesTransferenceFVector.push_back(yi/100.0);
-                               i++;
-                       }       
-                       // -- vtkColorTransferFunction  --
-                       this->_ctfun->RemoveAllPoints ();
-                       //clean colors
-                       redColorsOfColorTransferenceFVector.clear();
-                       greenColorsOfColorTransferenceFVector.clear();
-                       blueColorsOfColorTransferenceFVector.clear();
-                       greyValueColorsOfColorTransferenceFVector.clear();
-
-                       int nCTFpoints=hDlg->getSizeBarColor();
-                       i=0;    
-                       while(i<nCTFpoints)
-                       {
-                               hDlg->getDataBarColorPoint(i,xi,r,g,b);
-                               this->_ctfun->AddRGBPoint(xi,r/255.0,g/255.0,b/255.0 );
-                               redColorsOfColorTransferenceFVector.push_back(r/255.0);
-                               greenColorsOfColorTransferenceFVector.push_back(g/255.0);
-                               blueColorsOfColorTransferenceFVector.push_back(b/255.0);
-                               greyValueColorsOfColorTransferenceFVector.push_back(xi);
-                               i++;
-                       }
-                       
-                       this->_volumeMapper->Update();
-                       this->_newvol->Update();
-       }
-       
-       else
-       {
-               
-               if(hDlg->getRefreshed())
-               {
-                       int i=0,size;
-                       //--Transference Function----
-                       this->_tfun->RemoveAllPoints();
-                       i=0;
-                       size=greyValuesTransferenceFVector.size();
-                       for(i=0;i<size;i++)
-                       {
-                               double grey1=greyValuesTransferenceFVector[i];
-                               double  in2=intensityValuesTransferenceFVector[i];
-                               this->_tfun->AddPoint( grey1 , in2 );
-                       }
-                       
-                       // -- vtkColorTransferFunction  --
-                       _ctfun->RemoveAllPoints ();
-                       
-                       i=0;
-                       size=greyValueColorsOfColorTransferenceFVector.size();          
-                       for(i=0;i<size;i++)
-                       {
-                               double grey2=(greyValueColorsOfColorTransferenceFVector)[i];
-                               double red =(redColorsOfColorTransferenceFVector)[i];
-                               double green =(greenColorsOfColorTransferenceFVector)[i];
-                               double blue = (blueColorsOfColorTransferenceFVector)[i];
-                               _ctfun->AddRGBPoint(grey2,red,green,blue);
-                       }
-                       this->_volumeMapper->Update();
-                       this->_newvol->Update();
-                }
-                
-       }
-       hDlg->Destroy();
-*/
-}
-/*
-void vtkClipping3DDataViewer::ReadVolumeFunctions(char *namefile)
-{
-       char tmp[256];
-       short int       max;
-       double          range[2];
-       double          x,val,r,g,b;
-
-       FILE *ff = fopen ( namefile ,"r");
-
-       // --  MAX  --
-       fscanf(ff,"%s",tmp);
-       if (strcmp(tmp,"MAX")==0)
-       {
-               vtkImageData *vtkimagedata              = this->_vtkmprbasedata->GetImageData();
-               vtkimagedata->GetScalarRange(range);
-               max = (int) (range[1]);
-       } else {
-               max = atoi(tmp);
-       }
-
-       fscanf(ff,"%s",tmp);   // --
-
-       // -- vtkPiecewiseFunction --
-       this->_tfun->RemoveAllPoints();
-       fscanf(ff,"%s",tmp);   
-       while ( strcmp(tmp,"--")!=0 )
-       {
-               x=atof(tmp);
-               fscanf(ff,"%s",tmp);   
-               val=atof(tmp);
-               this->_tfun->AddPoint( x*max , val );
-               fscanf(ff,"%s",tmp);   
-       }
-
-       this->_ctfun->RemoveAllPoints ();
-       // -- vtkColorTransferFunction  --
-       while ( !feof(ff))
-       {
-               fscanf(ff,"%s",tmp);   
-               x=atof(tmp);
-               fscanf(ff,"%s",tmp);   
-               r=atof(tmp);
-               fscanf(ff,"%s",tmp);   
-               g=atof(tmp);
-               fscanf(ff,"%s",tmp);   
-               b=atof(tmp);
-               this->_ctfun->AddRGBPoint( x*max , r,g,b );                     
-       }
-
-
-       this->_volumeMapper->Update();
-       this->_newvol->Update();
-
-
-       fclose(ff);
-}
-*/
-
-//-------------------------------------------------------------------
-// EED 23 Mai 2007
-void vtkClipping3DDataViewer::ReadMeshVTK(char *namefile)
-{
-       vtkDataSetReader *reader = vtkDataSetReader::New();
-       reader->SetFileName(namefile);
-       reader->Update();
-       _tissueStripper[3]->SetInput( reader->GetPolyDataOutput()  );
-}
index 13fc5f58647aa49dfa0828b3eb0b0fe7befeb9d5..bf91c7479eb81044ab4af196676dfe4653631ef7 100644 (file)
@@ -2,13 +2,13 @@
 #ifndef __WX__MPR__BASE__DATA__H
 #define __WX__MPR__BASE__DATA__H
 
-#include <vtkCommand.h>
+/*#include <vtkCommand.h>
 #include "vtkRenderWindow.h"
 #include <vtkVolumeRayCastMapper.h>
-#include "vtkImageActor.h"
+
 #include "vtkProp.h"
-#include "vtkActor.h"
-#include "vtkPolyDataMapper.h"
+
+
 #include "vtkStripper.h"
 #include <vtkGlyph3D.h>
 #include "vtkLODActor.h"
 #include <vtkMarchingCubes.h> 
 
 #include <vtkClipPolyData.h>
-#include "vtkOutlineFilter.h"
+
 #include <vtkPiecewiseFunction.h>
-#include <vtkColorTransferFunction.h>
+
 #include <vtkVolume.h>
 #include <vtkVolumeProperty.h>
 #include <vtkVolumeRayCastMapper.h>
 #include <vtkVolumeRayCastCompositeFunction.h>
-#include <vtkBoxWidget.h>
+#include <vtkBoxWidget.h>*/
 
-#include "vtkImageData.h"
-#include "vtkLookupTable.h"
+
+
+//#include "vtkLookupTable.h"
 //#include "vtkImageActor.h"
-#include <vtkImageMapToColors.h> 
-#include <vtkPointWidget.h> 
 
-#include "marImageData.h"
+//#include <vtkPointWidget.h> 
+
+
 //#include "./pPlotter/HistogramDialog.h"
+#include "vtkTransform.h"
 
 #include "marTypes.h"
 //------------------------------------------------------------------
@@ -49,7 +50,7 @@
 //------------------------------------------------------------------
 
 #include "vtkBaseData.h"
-#include "boxSurfaceObserver.h"
+//#include "boxSurfaceObserver.h"
 
 //------------------------------------------------------------------
 //------------------------------------------------------------------
index 0c27caa57e434e8df3eecf42ed48e54a4eddf330..53f77dcc8191b7b5c7319479a746f6fc57317aba 100644 (file)
@@ -15,6 +15,8 @@
 #include "vtkCylinderSource.h"
 #include "vtkSphereSource.h"
 
+#include "vtkPolyDataMapper.h"
+
 class wxPanelCuttingImageData : public wxPanel
 {
 public:
index ffc455d2f40553aea3cd087199d635277e9bd2ad..badd3fda9f4c45741d8c593d110aa00b77986144 100644 (file)
@@ -4,6 +4,7 @@
 #include "vtkClipping3DDataViewer.h"
 #include "wxVtk3DBaseView.h"
 #include "wx/wx.h"
+#include "vtkBoxWidget.h"
 //#include "wxVtkClipping3DViewCntrlPanel.h"
 //class wxVtkClipping3DViewCntrlPanel;
 
index b385e4d5ae34b6ef4194d0cbb02458c6c0218cb0..df52dfe5e137ea06001b96ec2bbdcfcff14830ac 100644 (file)
@@ -5,6 +5,12 @@
 
 #include "wxVtk2DBaseView.h"
 
+#include "vtkPolyDataMapper.h"
+#include <vtkPolyData.h>
+#include <vtkPoints.h>
+#include "vtkActor.h"
+#include "vtkPolyData.h"
+
 class creaMaracasVisu_EXPORT wxVtkMPR2DView :  public wxVtk2DBaseView
 {
 public:
index a6685074ff7d883cdb15c4719f777f80a8459174..338e4016ea1ce73fd5a153c3e7cfedb1f27025c8 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "vtkProbeFilter.h"
 #include "vtkPlaneWidget.h"
+#include "vtkPointWidget.h"
 
 
 //class vtkmyPWCallback_3DPointWidget;