X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxVtkBaseView_SceneManager.cxx;h=fccc03657f72041a8d8d571ff8f6075cc9345c52;hb=a6507d91019d9f428af751e5b0b3a7d19d6f0bf6;hp=dbebb4eccebef8dc1a8742d21580fa26334381e1;hpb=c7aa7286e02028ade712c1284fea9439d0d3c61c;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx b/lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx index dbebb4e..fccc036 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx @@ -3,6 +3,7 @@ // Class definition include //---------------------------------------------------------------------------------------------------------------- #include "wxVtkBaseView_SceneManager.h" +#include "wxVtk2DBaseView.h" //---------------------------------------------------------------------------------------------------------------- // Class implementation @@ -13,7 +14,7 @@ //------------------------------------------------------------------------------------------------------------ // Includes //------------------------------------------------------------------------------------------------------------ -#include "wxContour_ActionCommnadsID.h" +#include "wxContour_ActionCommandsID.h" //------------------------------------------------------------------------------------------------------------ // Generated events declaration and definition @@ -57,10 +58,11 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) _creatingROI = false; _drawingSelectionROI = false; + _wxVtk_BaseView = theWxBaseViewToManage; if( _wxVtk_BaseView!=NULL ) { - vtkInteractorStyleBaseView* theInteractorStyleBaseView = _wxVtk_BaseView->GetInteractorStyleBaseView(); + vtkInteractorStyleBaseView* theInteractorStyleBaseView = (vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView(); theInteractorStyleBaseView->AddInteractorStyleMaracas( this ); SetVtkInteractorStyleBaseView( theInteractorStyleBaseView ); } @@ -76,12 +78,12 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) _contours_ViewControl->erase( iter ); i++; } - delete _contours_ViewControl; _contours_ViewControl->clear(); + delete _contours_ViewControl; _workingGroup->clear(); delete _lastInteraction; delete _workingGroup; - delete _contours_ViewControl; + //delete _contours_ViewControl; } //------------------------------------------------------------------------------------------------------------ @@ -144,6 +146,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) { manContourControl = new manualContourControler(); manViewerContour = new manualViewContour(); + manModelContour->SetCloseContour(false); } if (typeContour==2) @@ -164,6 +167,12 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) manViewerContour = new manualViewBullEye(); } + if (typeContour==6) + { + manContourControl = new manualLineControler(); + manViewerContour = new manualViewLine(); + } + //EED Borrame //FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+"); @@ -178,7 +187,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) //Configuring the relations between the contour members representation manViewerContour->SetModel( manModelContour ); manViewerContour->SetWxVtkBaseView( _wxVtk_BaseView ); - manViewerContour->SetRange( 2 ); + manViewerContour->SetRange( 0.5 ); manViewerContour->SetZ( 1000 ); manViewerContour->SetSpacing(spc); @@ -216,7 +225,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) _viewerSelectionROI->SetSpacing( spc ); _controlerSelectionROI->SetModelView( _modelSelectionROI , _viewerSelectionROI ); - _wxVtk_BaseView->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( _controlerSelectionROI ); + ((vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _controlerSelectionROI ); _controlerSelectionROI->SetActive(false); } @@ -250,6 +259,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) std::map :: iterator iter; iter = _contours_ViewControl->find( theName ); return iter->second; + //return iter->first; } //------------------------------------------------------------------------------------------------------------ ContourWrap_ViewControl * wxVtkBaseView_SceneManager :: getContourWrap_ViewControlOf ( std::string theName, std::map * theMap ) @@ -384,7 +394,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) //fprintf(ff," %p \n", contourWRP->getControler() ); //fclose(ff); - _wxVtk_BaseView->GetInteractorStyleBaseView()->RemoveInteractorStyleMaracas( contourWRP->getControler() ); + ((vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView())->RemoveInteractorStyleMaracas( contourWRP->getControler() ); contourWRP->getControler()->SetActive( control ); contourWRP->getControler()->SetEditable( false ); @@ -406,7 +416,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) std::map :: iterator iter; iter = _sceneContours_ViewControl->find( theKeyName ); - if (iter != _sceneContours_ViewControl->end()){ + if (iter != _sceneContours_ViewControl->end()) + { ContourWrap_ViewControl * contourWRP = iter->second; removeFromScene( contourWRP ); //EED Borrame @@ -508,7 +519,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) if( control ) { - _wxVtk_BaseView->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( contourWRP->getControler() ); + ((vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView())->AddInteractorStyleMaracas( contourWRP->getControler() ); } if( ifActive ) { @@ -574,7 +585,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) int size = _workingGroup->size(); for ( int i = 0; isecond->getViewer(); +//EED??? manualViewBaseContour * viewer = iter->second->getViewer(); selectedObjects.push_back( iter->first); iter++; @@ -585,8 +596,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) void wxVtkBaseView_SceneManager :: selectObjects( std::vector< std::string > theExistingObjectsToSelect ) { std::map ::iterator iter = _contours_ViewControl->begin(); - int size = _contours_ViewControl->size(); - bool selected; +//EED??? int size = _contours_ViewControl->size(); +//EED??? bool selected; /*for ( int i = 0; iGetInteractor()->GetControlKey() == 1; - bool shiftKey = _vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey() == 1; + _ctrlKey = _vtkInteractorStyleBaseView->GetInteractor()->GetControlKey() == 1; + _shiftKey = _vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey() == 1; _lastKeyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); + + wxCommandEvent cevent( wxEVT_COMMAND_BUTTON_CLICKED ); + _eventHandler->ProcessEvent( cevent ); - - if( _eventHandler!=NULL ) + + /*if( _eventHandler!=NULL ) { - const char * toolCommand = NULL; + char * toolCommand = NULL; if ( _lastKeyCode == 3 && ctrlKey ) //'C' || 'c' { - toolCommand = &(wxContour_ActionCommnadsID::COPY_TOOL); + toolCommand = &(COPY_TOOL); } else if( _lastKeyCode == 22 && ctrlKey ) //'V' || 'v' { - toolCommand = &(wxContour_ActionCommnadsID::PASTE_TOOL); + toolCommand = &(PASTE_TOOL); } else if( _lastKeyCode == 8 || (_lastKeyCode==127) ) // Delete { - toolCommand = &(wxContour_ActionCommnadsID::DELETE_KEY); + toolCommand = &(DELETE_KEY); } else if( _lastKeyCode == 14 && ctrlKey ) //'N' || 'n' { - toolCommand = &(wxContour_ActionCommnadsID::CREATE_CONTOUR_KEY); + toolCommand = &(CREATE_CONTOUR_KEY); } else if( _lastKeyCode == 15 && ctrlKey ) //'O' || 'o' { - toolCommand = &(wxContour_ActionCommnadsID::OPEN_TOOL); + toolCommand = &(OPEN_TOOL); } else if( _lastKeyCode == 19 && ctrlKey ) //'S' || 's' { - toolCommand = &(wxContour_ActionCommnadsID::SAVE_KEY); + toolCommand = &(SAVE_KEY); } if ( toolCommand!=NULL ) { + currentkey = toolCommand; wxCommandEvent cevent( wxEVT_COMMAND_BUTTON_CLICKED ); cevent.SetClientData( (void *) toolCommand); _eventHandler->ProcessEvent( cevent ); } - } + }*/ // long int endtime = clock(); @@ -725,7 +752,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) _wxVTKiren->GetEventPosition( X , Y ); bool ctrlKey = _vtkInteractorStyleBaseView->GetInteractor()->GetControlKey() == 1; - bool shiftKey = _vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey() == 1; +//??? bool shiftKey = _vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey() == 1; if( _waiting && !ctrlKey ) { @@ -762,7 +789,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) { //Multiple moving - bool ckecking = false; +//EED??? bool ckecking = false; for( i =0; isecond->getControler(); @@ -820,7 +847,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) _lastInteractionName = iter->first; viewer->UpdateColorActor(); - control->SetPosibleToMove( true ); + control->SetPosibleToMove( true ); // viewer->AddCompleteContourActor(); } iter++; @@ -848,12 +875,12 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) fclose(ff);*/ - char aa = _vtkInteractorStyleBaseView->GetInteractor()->GetKeyCode(); +//EED??? char aa = _vtkInteractorStyleBaseView->GetInteractor()->GetKeyCode(); bool condition = false; //vtkCommand * theComand = _wxVtk_BaseView ->GetInteractorStyleBaseView()->GetCommand( - vtkRenderWindowInteractor * vtkRWInteractor1 = _wxVtk_BaseView ->GetWxVTKRenderWindowInteractor(); - wxVTKRenderWindowInteractor * vtkRWInteractor2 = _wxVtk_BaseView ->GetWxVTKRenderWindowInteractor();//GetInteractorStyleBaseView()->GetInteractor(); - wxVTKRenderWindowInteractorPlus * vtkRWInteractor3 = (wxVTKRenderWindowInteractorPlus*)_wxVtk_BaseView ->GetWxVTKRenderWindowInteractor();//GetInteractorStyleBaseView()->GetInteractor(); +//EED??? vtkRenderWindowInteractor * vtkRWInteractor1 = _wxVtk_BaseView ->GetWxVTKRenderWindowInteractor(); +//EED??? wxVTKRenderWindowInteractor * vtkRWInteractor2 = _wxVtk_BaseView ->GetWxVTKRenderWindowInteractor();//GetInteractorStyleBaseView()->GetInteractor(); +//EED?? wxVTKRenderWindowInteractorPlus * vtkRWInteractor3 = (wxVTKRenderWindowInteractorPlus*)_wxVtk_BaseView ->GetWxVTKRenderWindowInteractor();//GetInteractorStyleBaseView()->GetInteractor(); vtkRenderWindowInteractor * vtkRWInteractor = _vtkInteractorStyleBaseView->GetInteractor(); bool ctrlKey = vtkRWInteractor->GetControlKey() == 1; @@ -940,8 +967,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) bool wxVtkBaseView_SceneManager :: OnRightButtonDown() { bool condition = false; - vtkRenderWindowInteractor * vtkRWInteractor = _vtkInteractorStyleBaseView->GetInteractor(); - bool ctrlKey = vtkRWInteractor->GetControlKey() == 1; +//EED??? vtkRenderWindowInteractor * vtkRWInteractor = _vtkInteractorStyleBaseView->GetInteractor(); +//EED??? bool ctrlKey = vtkRWInteractor->GetControlKey() == 1; _waiting = true; condition = true; @@ -971,7 +998,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) //_lastInteraction->getControler()->SetPosibleToMove( false ); control->SetActive( false ); control->SetEditable( false ); - _wxVtk_BaseView->GetInteractorStyleBaseView()->RemoveInteractorStyleMaracas( control ); + control->SetPosibleToMove( false ); +// _wxVtk_BaseView->GetInteractorStyleBaseView()->RemoveInteractorStyleMaracas( control ); _lastInteraction->getViewer()->Refresh(); this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); } @@ -992,9 +1020,9 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) bool wxVtkBaseView_SceneManager :: OnRightDClick() { bool condition = false; condition = true; - vtkRenderWindowInteractor * vtkRWInteractor = _vtkInteractorStyleBaseView->GetInteractor(); +//EED??? vtkRenderWindowInteractor * vtkRWInteractor = _vtkInteractorStyleBaseView->GetInteractor(); /*vtkRenderWindowInteractor * vtkRWInteractor1 =*/ _vtkInteractorStyleBaseView->OnChar(); - wxVTKRenderWindowInteractor * wxVtkRWInterator = _wxVtk_BaseView ->GetWxVTKRenderWindowInteractor(); +//EED??? wxVTKRenderWindowInteractor * wxVtkRWInterator = _wxVtk_BaseView ->GetWxVTKRenderWindowInteractor(); /*if( _waiting ) { @@ -1100,7 +1128,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) int tmpPx,tmpPy; wxVTKRenderWindowInteractor *wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition( tmpPx , tmpPy ); - fprintf(ff,"::%s (x,y) = (%i, %i) t(sg): \n \n",method, tmpPx, tmpPy, sg); + fprintf(ff,"::%s (x,y) = (%i, %i) t(sg): %f\n \n",method.c_str(), tmpPx, tmpPy, sg); fclose(ff); } @@ -1201,3 +1229,31 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP ) cViewer->SetWidthLine(_widthOfContour); } } + + bool wxVtkBaseView_SceneManager::isEditableCControler(std::string theKeyName){ + + ContourWrap_ViewControl* ccon = getContourWrap_ViewControlOf(theKeyName); + if(ccon != NULL ){ + manualContourBaseControler* cControler = ccon->getControler(); + if(cControler != NULL && cControler->IsEditable() == false){ + return true; + } + } + return false; + } + + void wxVtkBaseView_SceneManager::deleteCViewerCControler(std::string theKeyName){ + + + ContourWrap_ViewControl* ccon = getContourWrap_ViewControlOf(theKeyName); + + manualViewBaseContour * cViewer = ccon->getViewer(); + manualContourBaseControler * cControler = ccon->getControler(); + + removeFromScene(theKeyName); + removeWrap(theKeyName); + + delete cViewer; + delete cControler; + } + \ No newline at end of file