From: Juan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Date: Wed, 3 Jun 2009 13:45:19 +0000 (+0000)
Subject: New classes due to separation of vtkMPR*.cxx and some modifications to othar classes
X-Git-Tag: EED.02Oct2009~56
X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=cea19159becbb13fffac6d87a914480c385f8026;p=creaMaracasVisu.git

New classes due to separation of vtkMPR*.cxx and some modifications to othar classes
---

diff --git a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourCrownWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourCrownWidget.cxx
index 7cb3ac5..4ed87a8 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourCrownWidget.cxx
+++ b/lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourCrownWidget.cxx
@@ -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
index 0000000..6f2725b
--- /dev/null
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.cxx
@@ -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
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.h
index 93ddbf3..dad5fac 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkBaseData.h
@@ -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
index 0000000..d1104df
--- /dev/null
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx
@@ -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
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h
index 8620269..55c27d9 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h
@@ -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
index 0000000..acbeb2f
--- /dev/null
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.cxx
@@ -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
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.h
index 760e2c4..3eb0216 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkMPR3DDataViewer.h
@@ -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:
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkPlane2DView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkPlane2DView.h
index c178472..2108748 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkPlane2DView.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkPlane2DView.h
@@ -12,6 +12,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkPlaneSource.h"
 #include "vtkProbeFilter.h"
+#include "vtkPolyDataMapper.h"
 
 class vtkPlane2DView : public wxVtk2DBaseView
 {
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.cxx
index a46feff..9ec1502 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.cxx
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.cxx
@@ -18,104 +18,6 @@
 //-------------------------------------------------------------------
 //-------------------------------------------------------------------
 
-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()  );
-}
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.h
index 13fc5f5..bf91c74 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRBaseData.h
@@ -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"
@@ -18,24 +18,25 @@
 #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"
 
 //------------------------------------------------------------------
 //------------------------------------------------------------------
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxPanelCuttingImageData.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxPanelCuttingImageData.h
index 0c27caa..53f77dc 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxPanelCuttingImageData.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxPanelCuttingImageData.h
@@ -15,6 +15,8 @@
 #include "vtkCylinderSource.h"
 #include "vtkSphereSource.h"
 
+#include "vtkPolyDataMapper.h"
+
 class wxPanelCuttingImageData : public wxPanel
 {
 public:
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DView.h
index ffc455d..badd3fd 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DView.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkClipping3DView.h
@@ -4,6 +4,7 @@
 #include "vtkClipping3DDataViewer.h"
 #include "wxVtk3DBaseView.h"
 #include "wx/wx.h"
+#include "vtkBoxWidget.h"
 //#include "wxVtkClipping3DViewCntrlPanel.h"
 //class wxVtkClipping3DViewCntrlPanel;
 
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h
index b385e4d..df52dfe 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.h
@@ -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:
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.h
index a668507..338e401 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.h
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR3DView.h
@@ -7,6 +7,7 @@
 
 #include "vtkProbeFilter.h"
 #include "vtkPlaneWidget.h"
+#include "vtkPointWidget.h"
 
 
 //class vtkmyPWCallback_3DPointWidget;