#include "wxMaracasSurfaceRenderingManagerDataMhd.h"
+
#include "vtkStripper.h"
wxMaracasSurfaceRenderingManagerDataMhd::wxMaracasSurfaceRenderingManagerDataMhd(vtkImageData* imagedata, std::string dataname, vtkRenderWindowInteractor* interactor)
_dataMapper = vtkPolyDataMapper::New( );
_dataMapper->ScalarVisibilityOff( );
_dataMapper->ImmediateModeRenderingOn();
+ vtkActor* dataActor = vtkActor::New();
- if(_boxWidgetS1){
+ //if(_boxWidgetS1){
+ if(interactor){
_boxWidgetS1 = vtkBoxWidget::New();
_boxWidgetS1->SetInteractor( interactor );
_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() );
_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();
_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();