X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FThresholdImageView%2FLayerImageBase.cxx;h=15ec30669619dfd9f52651a7c45b3a0f6c699771;hb=4ecb6789d069c8dcd40724f03d8225c25629cd52;hp=3b89d1a2f93be5deafdb135839076344a136e19d;hpb=f369752f86b8a540df6638ba87945e83c9498b4b;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx index 3b89d1a..15ec306 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx @@ -33,8 +33,7 @@ #include "wxMPRBaseData.h" #include "wxVtk2DBaseView.h" #include "wxVTKRenderWindowInteractor.h" - - +#include "vtkTextProperty.h" //--------------------------------------------------------------------------------------------- @@ -85,103 +84,6 @@ private: }; -//--------------------------------------------------------------------------------------------- -//--------------------------------------------------------------------------------------------- -//--------------------------------------------------------------------------------------------- - -ColorLayerImageBasevtkInteractor::ColorLayerImageBasevtkInteractor(LayerImageBase* layerImageBase) -{ - _state = false; - _stateKey = false; - _layerImageBase = layerImageBase; - -} - -//--------------------------------------------------------------------------------------------- -ColorLayerImageBasevtkInteractor::~ColorLayerImageBasevtkInteractor() -{ -} - -//--------------------------------------------------------------------------------------------- -bool ColorLayerImageBasevtkInteractor::OnChar() -{ - return true; -} - - -//--------------------------------------------------------------------------------------------- -bool ColorLayerImageBasevtkInteractor::OnMouseMove() // vitual -{ - printf("EED ColorLayerImageBasevtkInteractor::OnMouseMove start \n"); - - vtkRenderWindowInteractor *interactor = _vtkInteractorStyleBaseView->GetInteractor(); - - // For example in ManualPaint Action - // This is not working, because the order of insertion events mecanism (_vtkInteractorStyleBaseView) - // Layer first Paint after. - // the only way to make it works is to take the axes an paint. this force a first SetParent_refresh_waiting() -// if ( this->_vtkInteractorStyleBaseView->GetParent_refresh_waiting() == true ) - - if ( interactor->GetControlKey()==1 ) // EED This if for ManaulPaint Interaction compatibility - { - printf("EED ColorLayerImageBasevtkInteractor::OnMouseMove need Refresh \n" ); - _layerImageBase->onThreshold(); - _layerImageBase->GetvtkImageReslice()->Modified(); - } else { - printf("EED ColorLayerImageBasevtkInteractor::OnMouseMove NOT need Refresh \n" ); - } - - - if ( (_state==true) && (_layerImageBase->GetActorPresent()) ) - { - wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*) _vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); - wxVTKRenderWindowInteractor *wxVTKiren = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor(); - int px, py; - wxVTKiren->GetEventPosition(px, py); - -// int typeView = 1; - double X = (double) px; - double Y = (double) py; - double Z = wxvtk2Dbaseview->GetActualSlice(); -// wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,true, typeView); - wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z, true); - -// _manualPaintControler->PaintImage((int) X, (int) Y, (int) Z); - - _layerImageBase->SetX( (int)X ); - _layerImageBase->SetY( (int)Y ); - _layerImageBase->SetZ( (int)Z ); - _layerImageBase->onThreshold(); -// _layerImageBase->Refresh(); - - this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); - - if (_vtkInteractorStyleBaseView->GetRefresh_waiting()==true) - { - _layerImageBase->GetvtkImageReslice()->Modified(); - } - printf("EED ColorLayerImageBasevtkInteractor::YESSSSSS \n"); - } - return true; -} - -//--------------------------------------------------------------------------------------------- -bool ColorLayerImageBasevtkInteractor::OnRightButtonDown() // virtual -{ - printf("EED ColorLayerImageBasevtkInteractor::OnRightButtonDown \n"); - _state=true; - return true; -} - - -//--------------------------------------------------------------------------------------------- -bool ColorLayerImageBasevtkInteractor::OnRightButtonUp() // virtual -{ - printf("EED ColorLayerImageBasevtkInteractor::OnRightButtonUp \n"); - _state=false; - return true; -} - //--------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------- @@ -263,6 +165,20 @@ bool LayerImageBase::GetActorPresent() void LayerImageBase::SetImage(vtkImageData* image) { _image = image; + double spc[3]; + _image->GetSpacing(spc); + int ext[6]; + _image->GetWholeExtent(ext); + int sx=ext[1]-ext[0]+1; + int sy=ext[3]-ext[2]+1; + int sz=ext[5]-ext[4]+1; + int ssx=(sx/2)*spc[0]; + int ssy=(sy/2)*spc[1]; + int ssz=(sz/2)*spc[2]; + SetX( ssx ); + SetY( ssy ); + SetZ( ssz ); + _image = image; } //---------------------------------------------------------------------------- @@ -271,10 +187,6 @@ void LayerImageBase::SetwxVtkBaseView(wxVtkBaseView *baseview) if (_baseView==NULL) { _baseView = baseview; -// Old EED 2014 11 13 -// vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)(_baseView->GetInteractorStyleBaseView()); -// isbv->AddInteractorStyleMaracas( new ColorLayerImageBasevtkInteractor(this) ); - ColorLayerObserver *colorlayerobserver = ColorLayerObserver::New(); _baseView->GetVtkBaseData()->AddObserver( 1, colorlayerobserver ); colorlayerobserver->SetLayerImageBase(this); @@ -445,9 +357,11 @@ void LayerImageBase::onThreshold() // _scalarbarActor->SetLookupTable( _thresholdTable ); _scalarbarActor->SetLookupTable( _thresholdMapper->GetLookupTable() ); - _scalarbarActor->SetTitle("Value"); - _scalarbarActor->SetNumberOfLabels(5); + _scalarbarActor->SetNumberOfLabels(4); + int fontsize = _scalarbarActor->GetLabelTextProperty()->GetFontSize(); + _scalarbarActor->GetLabelTextProperty()->SetFontSize(fontsize/2); + // _scalarbarActor->SetTextPad(4); ?? } // _image