]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingManagerDataMhd.cxx
structButtonContainerSettings.h changes
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasSurfaceRenderingManagerDataMhd.cxx
index d3375e8c0a15dc0f7ca864bb204661dd076c2cae..58a5db3e135886d61ad18016c8dcbd0aebecffe1 100644 (file)
@@ -1,5 +1,6 @@
 
 #include "wxMaracasSurfaceRenderingManagerDataMhd.h"
+
 #include "vtkStripper.h"
 
 wxMaracasSurfaceRenderingManagerDataMhd::wxMaracasSurfaceRenderingManagerDataMhd(vtkImageData* imagedata, std::string dataname, vtkRenderWindowInteractor*  interactor)
@@ -23,8 +24,10 @@ wxMaracasSurfaceRenderingManagerDataMhd::wxMaracasSurfaceRenderingManagerDataMhd
        _dataMapper = vtkPolyDataMapper::New( );
        _dataMapper->ScalarVisibilityOff( );
        _dataMapper->ImmediateModeRenderingOn();
+       vtkActor* dataActor = vtkActor::New();
 
-       if(_boxWidgetS1){
+       //if(_boxWidgetS1){
+       if(interactor){
 
                _boxWidgetS1 = vtkBoxWidget::New();
                _boxWidgetS1->SetInteractor( interactor );
@@ -32,9 +35,7 @@ wxMaracasSurfaceRenderingManagerDataMhd::wxMaracasSurfaceRenderingManagerDataMhd
 
                _boxWidgetS1->SetInput( this->_imagedata );
                _boxWidgetS1->PlaceWidget();    
-               //_boxWidgetS1->AddObserver( vtkCommand::InteractionEvent                , _vtkclipping3Ddataviewer->GetObserverS(i) );
-               _boxWidgetS1->HandlesOn ();
-               _boxWidgetS1->Off();
+               boxSurfaceObserver* observer = boxSurfaceObserver::New();               
 
                vtkStripper* striper = vtkStripper::New();
            striper->SetInput( _cleanFilter->GetOutput() );
@@ -44,12 +45,17 @@ wxMaracasSurfaceRenderingManagerDataMhd::wxMaracasSurfaceRenderingManagerDataMhd
                _boxWidgetS1->SetInput(striper->GetOutput());
                _boxWidgetS1->PlaceWidget();
 
+               _boxWidgetS1->HandlesOn ();
+               _boxWidgetS1->On();
+
                _tissuePlanes  = vtkPlanes::New();
    
                int x1,x2,y1,y2,z1,z2;
                this->_imagedata->GetExtent(x1,x2,y1,y2,z1,z2);
                _tissuePlanes->SetBounds  (x1,x2,y1,y2,z1,z2);
 
+
+               
                _boxWidgetS1->GetPlanes( _tissuePlanes );
                
                _tissueClipper = vtkClipPolyData::New();
@@ -57,29 +63,38 @@ wxMaracasSurfaceRenderingManagerDataMhd::wxMaracasSurfaceRenderingManagerDataMhd
                _tissueClipper->SetClipFunction( _tissuePlanes );
                _tissueClipper->InsideOutOn( );
                _dataMapper->SetInput( _tissueClipper->GetOutput() );
-               
+               observer->SetPlanes( _tissuePlanes );
+               observer->SetActor( dataActor );
+               _boxWidgetS1->AddObserver( vtkCommand::InteractionEvent          , observer );
+
+
+               _boxWidgetS1->HandlesOn ();
+               _boxWidgetS1->On();
        }else{          
-               _dataMapper->SetInput(_cleanFilter->GetOutput());               
-               
+               _dataMapper->SetInput(_cleanFilter->GetOutput());                               
        }
-       vtkActor* dataActor = vtkActor::New();
+       
        dataActor->SetMapper(_dataMapper);      
        this->_prop3D = dataActor;
 
        
+       
 
        this->changeIsoValue(this->_maxgreylevel);      
 
 
 }
 
-wxMaracasSurfaceRenderingManagerDataMhd::~wxMaracasSurfaceRenderingManagerDataMhd(){   
+
+wxMaracasSurfaceRenderingManagerDataMhd::~wxMaracasSurfaceRenderingManagerDataMhd()
+{
        _cubesFilter->Delete();
        _cleanFilter->Delete();
        _dataMapper->Delete();
 }
        
-void wxMaracasSurfaceRenderingManagerDataMhd::UpdateSurface(){
+void wxMaracasSurfaceRenderingManagerDataMhd::UpdateSurface()
+{
        _cubesFilter->Update();    
        _cleanFilter->Update();
        _dataMapper->Update();