]> Creatis software - creaContours.git/blobdiff - lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx
no message
[creaContours.git] / lib / Interface_ManagerContour_NDimensions / wxVtkBaseView_SceneManager.cxx
index 7fe68cbaeb4aa7a5d09ea6ed6ac7937b22ca1898..fccc03657f72041a8d8d571ff8f6075cc9345c52 100644 (file)
@@ -3,6 +3,7 @@
 // Class definition include
 //----------------------------------------------------------------------------------------------------------------
 #include "wxVtkBaseView_SceneManager.h"
+#include "wxVtk2DBaseView.h"
 
 //----------------------------------------------------------------------------------------------------------------
 // Class implementation
@@ -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);
        }
 
@@ -385,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 );               
@@ -407,7 +416,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
 
                std::map<std::string, ContourWrap_ViewControl *> :: 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
@@ -509,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 )
                {
@@ -575,7 +585,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                int size = _workingGroup->size();
                for ( int i = 0; i<size; i++ )
                {
-                       manualViewBaseContour * viewer = iter->second->getViewer();
+//EED???                       manualViewBaseContour * viewer = iter->second->getViewer();
                        selectedObjects.push_back( iter->first);        
 
                        iter++;
@@ -586,8 +596,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
        void wxVtkBaseView_SceneManager :: selectObjects( std::vector< std::string > theExistingObjectsToSelect )
        {
                std::map <std::string, ContourWrap_ViewControl *>::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; i<size; i++ )
                {
                        selected = false;
@@ -660,51 +670,67 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
        // Inherited Methods
        //------------------------------------------------------------------------------------------------------------
 
+       bool  wxVtkBaseView_SceneManager :: isCtrlPressed()
+       { 
+               return _ctrlKey;
+       }
+       bool  wxVtkBaseView_SceneManager :: isShiftPressed()
+       { 
+               return _shiftKey;
+       }
+       char  wxVtkBaseView_SceneManager :: getLastKeyCode()
+       { 
+               return _lastKeyCode;
+       }
        bool  wxVtkBaseView_SceneManager :: OnChar()
        { 
 
-               bool ctrlKey = _vtkInteractorStyleBaseView->GetInteractor()->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_ActionCommandsID::COPY_TOOL);
+                               toolCommand = &(COPY_TOOL);
                        }
                        else if(  _lastKeyCode == 22 && ctrlKey ) //'V' || 'v' 
                        {
-                               toolCommand = &(wxContour_ActionCommandsID::PASTE_TOOL);
+                               toolCommand = &(PASTE_TOOL);
                        }
                        else if(  _lastKeyCode == 8 || (_lastKeyCode==127) ) // Delete 
                        {
-                               toolCommand = &(wxContour_ActionCommandsID::DELETE_KEY);
+                               toolCommand = &(DELETE_KEY);
                        }
                        else if(  _lastKeyCode == 14 && ctrlKey ) //'N' || 'n' 
                        {
-                               toolCommand = &(wxContour_ActionCommandsID::CREATE_CONTOUR_KEY);
+                               toolCommand = &(CREATE_CONTOUR_KEY);
                        }
                        else if(  _lastKeyCode == 15 && ctrlKey ) //'O' || 'o' 
                        {
-                               toolCommand = &(wxContour_ActionCommandsID::OPEN_TOOL);
+                               toolCommand = &(OPEN_TOOL);
                        }
                        else if(  _lastKeyCode == 19 && ctrlKey ) //'S' || 's' 
                        {
-                               toolCommand = &(wxContour_ActionCommandsID::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();             
@@ -726,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 )
                {
@@ -763,7 +789,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                        {
                                //Multiple moving
                                
-                               bool ckecking = false;
+//EED???                               bool ckecking = false;
                                for( i =0; i<size ; i++ ) 
                                {
                                        control = iter->second->getControler();
@@ -821,7 +847,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                                                _lastInteractionName    = iter->first;
 
                                                viewer->UpdateColorActor();
-                                               control->SetPosibleToMove( true );                                              
+                                               control->SetPosibleToMove( true );
                                                // viewer->AddCompleteContourActor();
                                        }
                                        iter++;
@@ -849,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;
@@ -941,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;               
@@ -972,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();
                        }       
@@ -993,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 )
                {
@@ -1101,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.c_str(), tmpPx, tmpPy, sg);
+               fprintf(ff,"::%s (x,y) = (%i, %i) t(sg): %f\n  \n",method.c_str(), tmpPx, tmpPy, sg);
                fclose(ff);
        }