/**
- * \file
- * \brief Class bbtk::ThresholdImageView .
+ * \file
+ * \brief Class bbtk::ThresholdImageView .
*/
#include "LayerImageBase.h"
+
+//---------------------------------------------------------------------------------------------
+//---------------------------------------------------------------------------------------------
+//---------------------------------------------------------------------------------------------
+
+ColorLayerImageBasevtkInteractor::ColorLayerImageBasevtkInteractor(LayerImageBase* layerImageBase)
+{
+ _layerImageBase=layerImageBase;
+}
+
+//---------------------------------------------------------------------------------------------
+ColorLayerImageBasevtkInteractor::~ColorLayerImageBasevtkInteractor()
+{
+}
+
+
+//---------------------------------------------------------------------------------------------
+bool ColorLayerImageBasevtkInteractor::OnMouseMove()
+{
+
+ if (_vtkInteractorStyleBaseView->GetRefresh_waiting()==true)
+ {
+ _layerImageBase->GetvtkImageReslice()->Modified();
+ }
+
+ return true;
+}
+
+
+//---------------------------------------------------------------------------------------------
+//---------------------------------------------------------------------------------------------
+//---------------------------------------------------------------------------------------------
+
+
+
LayerImageBase::LayerImageBase()
{
_actorPresent = false;
_thresholdMapper = NULL;
_thresholdActor = NULL;
_image = NULL;
+ _baseView = NULL;
_imageReslicer = vtkImageReslice::New();
}
void LayerImageBase::SetwxVtkBaseView(wxVtkBaseView *baseview)
{
_baseView = baseview;
+
+ vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)(_baseView->GetInteractorStyleBaseView());
+ isbv->AddInteractorStyleMaracas( new ColorLayerImageBasevtkInteractor(this) );
}
//----------------------------------------------------------------------------
return _baseView;
}
+//----------------------------------------------------------------------------
+void LayerImageBase::Refresh()
+{
+ printf("EED LayerImageBase::Refresh\n");
+ if (_baseView!=NULL)
+ {
+ _baseView->Refresh();
+ }
+}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
int LayerImageBase::CleanZ(int z)
-{
+{
int ext[6];
_image->GetWholeExtent(ext);
void LayerImageBase::onThreshold()
{
- if (_image!=NULL)
+ if ((_image!=NULL) && (_baseView!=NULL))
{
int z=CleanZ( GetZ() );
if (!GetActorPresent())
- {
+ {
if (_thresholdTable==NULL)
{
//Lookup Table
_thresholdTable = vtkLookupTable::New();
} // _thresholdTable
-
+
if (_thresholdMapper==NULL)
{
_thresholdMapper = vtkImageMapToColors::New( );
}
-
+
if (_thresholdActor==NULL)
{
_thresholdActor = vtkImageActor::New( );
_thresholdActor->SetOpacity( 0.6 );
_thresholdActor->InterpolateOn( );
_thresholdActor->SetPosition( 0,0, 900-1 );
- } // _thresholdActor
+ } // _thresholdActor
_baseView->GetRenderer()->AddActor( _thresholdActor );
- _actorPresent = true;
+ _actorPresent = true;
} // !GetActorPresent()
ConfigLookupTable(); // virtual method
_imageReslicer->SetInput( GetImage() );
- _imageReslicer->SetInformationInput( GetImage() );
+ _imageReslicer->SetInformationInput( GetImage() );
_imageReslicer->SetResliceAxesDirectionCosines(1,0,0, 0,1,0 ,0,0,1);
_imageReslicer->SetOutputDimensionality(2);
_imageReslicer->SetInterpolationModeToLinear();
_imageReslicer->SetResliceAxesOrigin(0,0,z);
vtkImageData *img = _imageReslicer->GetOutput();
- img->Update();
- img->UpdateInformation();
+// img->Update();
+// img->UpdateInformation();
_thresholdMapper->SetInput( img );
_thresholdMapper->SetLookupTable( _thresholdTable );
else
{
_thresholdActor->InterpolateOff( );
- }
+ }
}
}
wxVtkBaseView * baseView = _baseView;
baseView->GetRenderer()->RemoveActor( _thresholdActor );
_actorPresent = false;
- }
+ }
+}
+
+//----------------------------------------------------------------------------
+vtkLookupTable *LayerImageBase::GetvtkLookupTable()
+{
+ return _thresholdTable;
}
+vtkImageReslice *LayerImageBase::GetvtkImageReslice()
+{
+ return _imageReslicer;
+}