X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourViewPanel.cxx;h=de7b90660a8eb27c230f8b4a4736f2bcbef7fbeb;hb=d8ae77db08ab2e951c0e984c20fc47b615744abb;hp=08bc31e0ec5465420e9dd667d0daadf9044825e8;hpb=9212d387102a09fbbfb8876fb7d3eef9ee2617b2;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourViewPanel.cxx b/lib/Interface_ManagerContour_NDimensions/wxContourViewPanel.cxx index 08bc31e..de7b906 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourViewPanel.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxContourViewPanel.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + //---------------------------------------------------------------------------------------------------------------- // Class definition include @@ -22,103 +47,54 @@ //---------------------------------------------------------------------------------------------------------------- DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) - - + + //------------------------------------------------------------------------------------------------------------ // Constructors & Destructors //------------------------------------------------------------------------------------------------------------ - /*{ - - showingVID = theShowingImage; - int gapH = 20; - int gapV = 10; - createHorizontalBar(1,80); - createVerticalBar(1,200); - createViewPanel(); - - wxFlexGridSizer * panelSizer = new wxFlexGridSizer(3,1,0,0); - panelSizer->AddSpacer(gapV); - panelSizer -> AddGrowableCol(1); - panelSizer->Add(theViewPanel, 1, wxEXPAND); - panelSizer->AddSpacer(gapV); - - wxFlexGridSizer * downSizer = new wxFlexGridSizer(1,3,gapV,gapH); - downSizer->Add(_verticalBar, 1, wxEXPAND); - //downSizer->AddSpacer(gapH); - downSizer -> AddGrowableCol(1); - downSizer->Add(panelSizer, 1, wxEXPAND|wxALL|wxCENTER); - //downSizer->AddSpacer(gapH); - outSizer = new wxFlexGridSizer(3,1,1,1); - outSizer->Add(_horizontalBar, 1, wxEXPAND); - outSizer -> AddGrowableRow(1); - outSizer -> AddGrowableCol(1); - outSizer->Add(downSizer, 1, wxEXPAND); - - _horizontalBar->setDeviceBlitStart( _verticalBar->GetWidth() + gapH, gapV); - _horizontalBar->setDeviceEndMargin( gapH+10 ); - - //Connecting the events to the horizontal bar - Connect(_horizontalBar->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onBarrange_Horizontal ); - Connect(_horizontalBar->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onActualChange_Bar_Horizontal ); - Connect(_horizontalBar->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onStartChange_Bar_Horizontal ); - Connect(_horizontalBar->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onEndChange_Bar_Horizontal ); - Connect(_horizontalBar->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onSelectionEnd_Horizontal ); - Connect(_horizontalBar->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onMovedBar_Horizontal ); - - //Connecting the events to the vertical bar - Connect(_verticalBar->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onBarrange_Vertical ); - Connect(_verticalBar->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onActualChange_Bar_Vertical ); - Connect(_verticalBar->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onStartChange_Bar_Vertical ); - Connect(_verticalBar->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onEndChange_Bar_Vertical ); - Connect(_verticalBar->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onSelectionEnd_Vertical ); - Connect(_verticalBar->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onMovedBar_Vertical ); - - - this->SetAutoLayout( true ); - SetSizer( outSizer ); - this->Layout(); - - SetSize(900,700); - theViewPanel->SetSize(800,600); - theViewPanel->GetWindow(1)->SetSize(800,600); - - outSizer->Fit( this ); - SetBackgroundColour(wxColour(255,0,0)); - - }*/ - //:wxScrolledWindow(parent, -1, pos, size, style) - wxContourViewPanel :: wxContourViewPanel ( vtkImageData * theShowingImage, wxWindow *parent, const wxPoint& pos, const wxSize& size,long style, int vertStart, int vertEnd, int horzStart, int horzEnd ) - :wxPanel(parent, -1, pos, size, style) - { + //:wxScrolledWindow(parent, -1, pos, size, style) + wxContourViewPanel::wxContourViewPanel ( vtkImageData * theShowingImage, wxWindow *parent, const wxPoint& pos, const wxSize& size,long style, int vertStart, int vertEnd, int horzStart, int horzEnd ) + :wxPanel(parent, -1, pos, size, style) + { theShowingImage->GetSpacing(last_spacing); - showingVID = theShowingImage; - int gapH = 20; - int gapV = 10; - _verticalConceptName = ""; - _horizontalConceptName = ""; + showingVID = theShowingImage; + _before = false; + _after = false; + int gapH = 20; + int gapV = 10; + _verticalConceptName = ""; + _horizontalConceptName = ""; createHorizontalBar(1,80); createVerticalBar(1,200); createViewPanel(); - _eventHandler = NULL; - - wxFlexGridSizer * panelSizer = new wxFlexGridSizer(1, 4, gapV, gapH); + _eventHandler = NULL; + wxFlexGridSizer * panelSizer = new wxFlexGridSizer(1,4, gapV, gapH); +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 panelSizer -> AddGrowableCol(2); panelSizer -> AddGrowableRow(2); - panelSizer->Add(_verticalBar, 1, wxGROW); +#else + panelSizer -> AddGrowableRow(0,1); + panelSizer -> AddGrowableCol(2,1); +#endif + panelSizer->Add(_verticalBar, 0, wxEXPAND); panelSizer->AddSpacer(gapV); - panelSizer->Add(theViewPanel, 1, wxGROW); + panelSizer->Add(theViewPanel, 1, wxEXPAND); panelSizer->AddSpacer(gapV); - outSizer = new wxFlexGridSizer(3, 1, gapH, gapV); +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 outSizer -> AddGrowableCol(1); outSizer -> AddGrowableRow(1); - outSizer->Add( _horizontalBar, 1, wxGROW); - outSizer->Add( panelSizer, 1, wxGROW); +#else + outSizer -> AddGrowableRow(1,1); + outSizer -> AddGrowableCol(0,1); +#endif + outSizer->Add( _horizontalBar, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT|wxTOP); + outSizer->Add( panelSizer, 1, wxEXPAND); outSizer->AddSpacer(gapH); - _horizontalBar->setDeviceBlitStart( _verticalBar->GetWidth() + 2*gapH, gapV); _horizontalBar->setDeviceEndMargin( 2*gapH+10 ); - //Connecting the events to the horizontal bar Connect(_horizontalBar->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onBarrange_Horizontal ); Connect(_horizontalBar->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onActualChange_Bar_Horizontal ); @@ -126,7 +102,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) Connect(_horizontalBar->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onEndChange_Bar_Horizontal ); Connect(_horizontalBar->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onSelectionEnd_Horizontal ); Connect(_horizontalBar->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onMovedBar_Horizontal ); - + //Connecting the events to the vertical bar Connect(_verticalBar->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onBarrange_Vertical ); Connect(_verticalBar->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onActualChange_Bar_Vertical ); @@ -134,53 +110,46 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) Connect(_verticalBar->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onEndChange_Bar_Vertical ); Connect(_verticalBar->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onSelectionEnd_Vertical ); Connect(_verticalBar->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onMovedBar_Vertical ); - - this->SetSizer( outSizer ); this->SetAutoLayout( true ); this->Layout(); - //SetSize(1900,1900); //theViewPanel->SetSize(800,600); //theViewPanel->GetWindow(1)->SetSize(800,600); - - //outSizer->Fit( this ); - + //outSizer->Fit( this ); initializeScenceManager(); } - + wxContourViewPanel :: ~wxContourViewPanel() { - + delete _sceneManager; } - void wxContourViewPanel::initializeScenceManager(){ - + void wxContourViewPanel::initializeScenceManager() + { //_theViewPanel = theViewPanel; //_theViewPanel->setWxEventHandler( this ); - double spc[3]; this->getSpacing(spc); _sceneManager = new wxVtkBaseView_SceneManager ( this->getWxVtkBaseView(), this, spc ); - Connect( this->GetId(), wxINSTANT_CHANGE, (wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onChangeInstant ); Connect( wxID_ANY, wxEVT_START_CREATE_MULT_ROI, (wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onCreateMultipleROI ); Connect( wxID_ANY, wxEVT_START_CREATE_ROI, (wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onCreateROI ); Connect( wxID_ANY, wxEVT_STOP_CREATE_ROI, (wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onStopCreateROI ); Connect( wxID_ANY, wxEVT_CHANGED_DEEP, (wxObjectEventFunction) (wxCommandEventFunction) &wxContourViewPanel::onChangedDeep ); - Connect( wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxContourViewPanel :: onActionButtonPressed ); - + Connect( wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxContourViewPanel :: onActionButtonPressed ); } - wxVtkBaseView_SceneManager* wxContourViewPanel::getSceneManager(){ + wxVtkBaseView_SceneManager* wxContourViewPanel::getSceneManager() + { return _sceneManager; } //------------------------------------------------------------------------------------------------------------ // Creational and initialization methods //------------------------------------------------------------------------------------------------------------ - + void wxContourViewPanel :: setWxEventHandler( wxEvtHandler * theEventHandler ) { _eventHandler = theEventHandler; @@ -211,26 +180,26 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //------------------------------------------------------------------------------------------------------------ void wxContourViewPanel::createViewPanel() - { + { std::vector * numViews = new std::vector (); - numViews->push_back(-1); - theViewPanel = new wxMaracas_N_ViewersWidget( this, showingVID, numViews ); + numViews->push_back(0); + theViewPanel = new wxMaracas_N_ViewersWidget( this, showingVID, numViews ); SetVisibleAxis(false); theViewPanel->SetBackgroundColour(wxColour(0,0,0)); theViewPanel->SetSize(800,600); theViewPanel->GetWindow(1)->SetSize(800,600); - + } //------------------------------------------------------------------------------------------------------------ void wxContourViewPanel::changeImage(vtkImageData* img){ - + theViewPanel->SetImage(img); } - wxVtkMPR2DView * wxContourViewPanel::GetwxVtkMPR2DView() + wxVtkMPR2DView * wxContourViewPanel::GetwxVtkMPR2DView() { return (wxVtkMPR2DView *) (theViewPanel->GetwxVtkBaseView(1)); } @@ -257,6 +226,13 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) return GetwxVtkMPR2DView()->GetVtkmprbasedata()->GetZ(); } + //------------------------------------------------------------------------------------------------------------ + void wxContourViewPanel::SetXY(int x, int y) + { + GetwxVtkMPR2DView()->GetVtkmprbasedata()->SetX(x); + GetwxVtkMPR2DView()->GetVtkmprbasedata()->SetY(y); + } + //------------------------------------------------------------------------------------------------------------ void wxContourViewPanel::Refresh() { @@ -267,20 +243,20 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //------------------------------------------------------------------------------------------------------------ // Methods for capturing events from the horizontal bar //------------------------------------------------------------------------------------------------------------ - + /** - * Handles the event wxEVT_TSBAR from the horizontal bar + * Handles the event wxEVT_TSBAR from the horizontal bar */ void wxContourViewPanel :: onBarrange_Horizontal(wxCommandEvent& event) { - + } /** - * Handles the event wxEVT_TSBAR_ACTUAL from the horizontal bar + * Handles the event wxEVT_TSBAR_ACTUAL from the horizontal bar */ void wxContourViewPanel :: onActualChange_Bar_Horizontal(wxCommandEvent& event) { - + int actual = getActualHorizontal(); wxContourMainFrame::getInstance()->onChangeInstant(_horizontalConceptName, actual); @@ -288,14 +264,14 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //JCP 26 - 11 - 08 //int nxActual_h = getActualHorizontal(); - + //if (_eventHandler!=NULL) //{ //------------------------------------------------- // Sending the event of wxINSTANT_CHANGE //------------------------------------------------- - // wxCommandEvent newevent(wxINSTANT_CHANGE,GetId()); - + // wxCommandEvent newevent(wxINSTANT_CHANGE,GetId()); + // ConceptDataWrap * cWrap = new ConceptDataWrap( _horizontalConceptName ); // cWrap->setActualValue( nxActual_h ); @@ -306,28 +282,28 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //JCP 26 - 11 - 08 } /** - * Handles the event wxEVT_TSBAR_START from the horizontal bar + * Handles the event wxEVT_TSBAR_START from the horizontal bar */ void wxContourViewPanel :: onStartChange_Bar_Horizontal(wxCommandEvent& event) { // int nxStart_h = getStartHorizontal(); } /** - * Handles the event wxEVT_TSBAR_END from the horizontal bar + * Handles the event wxEVT_TSBAR_END from the horizontal bar */ void wxContourViewPanel :: onEndChange_Bar_Horizontal(wxCommandEvent& event) { // int nxEnd_h = getEndHorizontal(); } /** - * Handles the event wxEVT_SELECTION_END from the horizontal bar + * Handles the event wxEVT_SELECTION_END from the horizontal bar */ void wxContourViewPanel :: onSelectionEnd_Horizontal(wxCommandEvent& event) { - + } /** - * Handles the event wxEVT_TSBAR_MOVED from the horizontal bar + * Handles the event wxEVT_TSBAR_MOVED from the horizontal bar */ void wxContourViewPanel :: onMovedBar_Horizontal(wxCommandEvent& event) { @@ -341,14 +317,14 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //------------------------------------------------------------------------------------------------------------ /** - * Handles the event wxEVT_TSBAR from the vertical bar + * Handles the event wxEVT_TSBAR from the vertical bar */ void wxContourViewPanel :: onBarrange_Vertical(wxCommandEvent& event) { } /** - * Handles the event wxEVT_TSBAR_ACTUAL from the vertical bar + * Handles the event wxEVT_TSBAR_ACTUAL from the vertical bar */ void wxContourViewPanel :: onActualChange_Bar_Vertical(wxCommandEvent& event) { @@ -363,8 +339,8 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //------------------------------------------------- // Sending the event of wxINSTANT_CHANGE //------------------------------------------------- - wxCommandEvent newevent(wxINSTANT_CHANGE,GetId()); - + wxCommandEvent newevent(wxINSTANT_CHANGE,GetId()); + ConceptDataWrap * cWrap = new ConceptDataWrap( _verticalConceptName ); cWrap->setActualValue( nxActual_v ); @@ -374,34 +350,34 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //JCP 26 - 11 - 08 } /** - * Handles the event wxEVT_TSBAR_START from the vertical bar + * Handles the event wxEVT_TSBAR_START from the vertical bar */ void wxContourViewPanel :: onStartChange_Bar_Vertical(wxCommandEvent& event) { - int nxStart_v = getStartVertical(); +// int nxStart_v = getStartVertical(); } /** - * Handles the event wxEVT_TSBAR_END from the vertical bar + * Handles the event wxEVT_TSBAR_END from the vertical bar */ void wxContourViewPanel :: onEndChange_Bar_Vertical(wxCommandEvent& event) { - int nxEnd_v = getEndVertical(); +// int nxEnd_v = getEndVertical(); } /** - * Handles the event wxEVT_SELECTION_END from the vertical bar + * Handles the event wxEVT_SELECTION_END from the vertical bar */ void wxContourViewPanel :: onSelectionEnd_Vertical(wxCommandEvent& event) { } /** - * Handles the event wxEVT_TSBAR_MOVED from the vertical bar + * Handles the event wxEVT_TSBAR_MOVED from the vertical bar */ void wxContourViewPanel :: onMovedBar_Vertical(wxCommandEvent& event) { - int nxStart_v = getStartVertical(); - int nxEnd_v = getEndVertical(); - } +// int nxStart_v = getStartVertical(); +// int nxEnd_v = getEndVertical(); + } //------------------------------------------------------------------------------------------------------------ @@ -437,7 +413,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) _horizontalBar -> setRepresentedValues( minRepresented, maxRepresented ); } } - + /** * Gets the StartVertical value * @return The StartVertical @@ -451,7 +427,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) * @return The EndVertical */ int wxContourViewPanel :: getEndVertical() - { + { return _verticalBar->GetEnd(); } /** @@ -537,7 +513,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) { _horizontalBar->SetActual( nwValue ); } - + /** * Sets the horizontal concept values and name * @param theHorizontalConcept The name of the concept for setting at the horizontal bar @@ -573,7 +549,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) setStartVertical( minShowed ); setEndVertical( maxShowed ); } - + /** * Sets the horizontal concept name @@ -635,20 +611,20 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //return GetZ(); } - + bool wxContourViewPanel::isEditableCControler(std::string theKeyName){ return _sceneManager->isEditableCControler(theKeyName); } void wxContourViewPanel::removeFromScene(std::string theKeyName){ - - _sceneManager->deleteCViewerCControler(theKeyName); - - + + _sceneManager->deleteCViewerCControler(theKeyName); + + } void wxContourViewPanel::onChangeInstant(wxCommandEvent& event){ - ConceptDataWrap * dataConcept = NULL; + ConceptDataWrap * dataConcept = NULL; if ( GetId() == event.GetId() ) { dataConcept = (ConceptDataWrap *)event.GetClientData(); @@ -668,9 +644,10 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) { setHorizontalConcept( dataConcept->getName(), dataConcept->getMinShowedValue()/*dataConcept->getMinValue()*/, /*dataConcept->getMaxValue()*/ dataConcept->getMaxShowedValue(), dataConcept->getMinShowedValue(), dataConcept->getMaxShowedValue(), dataConcept->getActualValue()); } - } + } wxContourMainFrame::getInstance()->changeInstant(); } + void wxContourViewPanel::onCreateMultipleROI (wxCommandEvent& event){ } void wxContourViewPanel::onCreateROI (wxCommandEvent& event){ @@ -682,7 +659,7 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) //setActualVertical( (int)val ); wxContourMainFrame::getInstance()->onChangeDeep((int)val); //_instantPanel->setConceptValue( "Axe Depth", (int)val ); - + // changeInstant(); } void wxContourViewPanel::changeDeep(){ @@ -691,34 +668,34 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) } void wxContourViewPanel::onActionButtonPressed(wxCommandEvent& event){ - + std::vector currentSelection = _sceneManager->getSelectedObjects(); - int elementsSelected = currentSelection.size(); +// int elementsSelected = currentSelection.size(); bool ctrlKey = _sceneManager->isCtrlPressed(); char toolCommand = _sceneManager->getLastKeyCode(); - if ( toolCommand == 3 && ctrlKey ) //'C' || 'c' + if ( toolCommand == 3 && ctrlKey ) //'C' || 'c' { wxContourMainFrame::getInstance()->onCopy(); } - else if( toolCommand == 22 && ctrlKey ) //'V' || 'v' + else if( toolCommand == 22 && ctrlKey ) //'V' || 'v' { wxContourMainFrame::getInstance()->onPaste(); } - else if( toolCommand == 8 || (toolCommand==127) ) // backspace Delete + else if( toolCommand == 8 || (toolCommand==127) ) // backspace Delete { wxContourMainFrame::getInstance()->onDeleteContour(); } - else if( toolCommand == 14 && ctrlKey ) //'N' || 'n' + else if( toolCommand == 14 && ctrlKey ) //'N' || 'n' { //toolCommand = &(CREATE_CONTOUR_KEY); } - else if( toolCommand == 15 && ctrlKey ) //'O' || 'o' + else if( toolCommand == 15 && ctrlKey ) //'O' || 'o' { wxContourMainFrame::getInstance()->onLoad(); } - else if( toolCommand == 19 && ctrlKey ) //'S' || 's' + else if( toolCommand == 19 && ctrlKey ) //'S' || 's' { wxContourMainFrame::getInstance()->saveFileWithContoursAutomatique(); }else if( toolCommand == 26 ){ @@ -728,16 +705,65 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) } } - void wxContourViewPanel::removeSceneContours(){ + void wxContourViewPanel::removeSceneContours() + { _sceneManager->removeSceneContours(); } - void wxContourViewPanel::addNameWrapperToScene(){ - int size = wxContourMainFrame::getInstance()->getNamesWrappingSize(); - for(int i = 0; i < size;i++){ + void wxContourViewPanel::addNameWrapperToScene() + { + int i,size = wxContourMainFrame::getInstance()->getNamesWrappingSize(); + for(i = 0; i < size;i++) + { std::string name = wxContourMainFrame::getInstance()->getNameWrapping(i); _sceneManager->addToScene(name, true, true, true, false, false ); - } + } // for i + + std::vector tempVector; + wxContourMainFrame::getInstance()->getInstantVector( tempVector ); + + if (_before==true) + { + std::vector lstNameBefor; + // Contours Befor + for (i=tempVector[1]-1; i>=0; i--) + { + lstNameBefor = wxContourMainFrame::getInstance()->getOutlinesName( i ); + size = lstNameBefor.size(); + if (size!=0) + { + i=-1; + } //if size + } // for + for(i = 0; i < size;i++) + { + // ctrol active showCtr + _sceneManager->addToScene(lstNameBefor[i], true, true, false, false, false ); + } // for i + } // if _before Contour + + if (_after==true) + { + std::vector lstNameAfter; + // Contours After + int ext[6]; + getImageData()->GetExtent(ext); + int dimZ=ext[5]-ext[4]+1; + for (i=tempVector[1]+1; igetOutlinesName( i ); + size = lstNameAfter.size(); + if (size!=0) + { + i=dimZ; + } //if size + } // for + for(i = 0; i < size;i++) + { + // ctrol active showCtr + _sceneManager->addToScene(lstNameAfter[i], true, true, false, false, false ); + } // for i + } // if _after Contour } std::vector wxContourViewPanel::getSelectedObjects(){ @@ -747,64 +773,75 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE ) void wxContourViewPanel::RefreshInterface(){ getWxVtkBaseView()->Refresh(); } - + vtkImageData* wxContourViewPanel::getImageData(){ return _sceneManager->GetImageData(); } - void wxContourViewPanel::configureViewControlTo(std::string theName,manualContourModel* manModelContour,double* spc,int typeofcontour){ + void wxContourViewPanel::configureViewControlTo(std::string theName,manualBaseModel* manModelContour,double* spc,int typeofcontour) + { _sceneManager->configureViewControlTo(theName, manModelContour, spc, typeofcontour); } - int wxContourViewPanel::GetImageDataSizeZ(){ + int wxContourViewPanel::GetImageDataSizeZ() + { return _sceneManager->GetImageDataSizeZ(); } - void wxContourViewPanel::GetImageDataRange(double *range){ + void wxContourViewPanel::GetImageDataRange(double *range) + { _sceneManager->GetImageDataRange(range); } - void wxContourViewPanel::SetWidthContour(double width ){ + void wxContourViewPanel::SetWidthContour(double width ) + { _sceneManager->SetWidthContour( width ); } - int wxContourViewPanel::getColorWindow(){ + int wxContourViewPanel::getColorWindow() + { wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)getWxVtkBaseView(); vtkImageViewer2 *imageviewer = wxvtk2dbaseview->_imageViewer2XYZ->GetVtkImageViewer2(); int colorwindow = (int)imageviewer->GetWindowLevel()->GetLevel(); return colorwindow; } - int wxContourViewPanel::getWindowLevel(){ + int wxContourViewPanel::getWindowLevel() + { wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)getWxVtkBaseView(); vtkImageViewer2 *imageviewer = wxvtk2dbaseview->_imageViewer2XYZ->GetVtkImageViewer2(); - int windowlevel = (int)imageviewer->GetWindowLevel()->GetWindow(); + int windowlevel = (int)imageviewer->GetWindowLevel()->GetWindow(); return windowlevel; } - void wxContourViewPanel::onBrigthnessColorWindowLevel(int colorwindow,int windowlevel){ + void wxContourViewPanel::onBrigthnessColorWindowLevel(int colorwindow,int windowlevel) + { wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)getWxVtkBaseView(); - vtkImageViewer2 *imageviewer = wxvtk2dbaseview->_imageViewer2XYZ->GetVtkImageViewer2(); - imageviewer->SetColorWindow(colorwindow); - imageviewer->SetColorLevel(windowlevel); + wxvtk2dbaseview->SetColorWindow( colorwindow ); + wxvtk2dbaseview->SetColorLevel( windowlevel ); } - void wxContourViewPanel::onInterpolation(bool interpolate){ + void wxContourViewPanel::onInterpolation(bool interpolate) + { wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)getWxVtkBaseView(); - vtkImageViewer2 *imageviewer = wxvtk2dbaseview->_imageViewer2XYZ->GetVtkImageViewer2(); + wxvtk2dbaseview->SetInterpolate( interpolate ); + } - if (interpolate){ - imageviewer->GetImageActor()->InterpolateOn(); - } else { - imageviewer->GetImageActor()->InterpolateOff(); - } + void wxContourViewPanel::onBeforeAfterContour(bool before, bool after) + { + _before = before; + _after = after; } - void wxContourViewPanel::GetPointsOfActualContour( std::vector *vecX, std::vector *vecY, std::vector *vecZ ){ + void wxContourViewPanel::GetPointsOfActualContour( std::vector *vecX, std::vector *vecY, std::vector *vecZ ) + { _sceneManager->GetPointsOfActualContour(vecX, vecY, vecZ); } void wxContourViewPanel::setImageSlice(int z){ - _sceneManager->getWxVtkViewBase()->GetInteractorStyleBaseView()->GetWxVtk2DBaseView()->SetActualSlice(z); + vtkInteractorStyleBaseView* stylebaseview = (vtkInteractorStyleBaseView*) _sceneManager->getWxVtkViewBase()->GetInteractorStyleBaseView(); + wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)stylebaseview->GetWxVtk2DBaseView(); + baseview->SetActualSlice(z); RefreshInterface(); - } \ No newline at end of file + } +