]> Creatis software - creaContours.git/blobdiff - lib/Interface_ManagerContour_NDimensions/wxVtkBaseView_SceneManager.cxx
no message
[creaContours.git] / lib / Interface_ManagerContour_NDimensions / wxVtkBaseView_SceneManager.cxx
index a6ceb2031d5c4e066156fdea94fceed86d685b58..e80cc4a74bd92dcc09142563fa8913d267641568 100644 (file)
@@ -40,24 +40,24 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
 
        wxVtkBaseView_SceneManager :: wxVtkBaseView_SceneManager( wxVtkBaseView * theWxBaseViewToManage, wxEvtHandler * theEventHandler, double * spc )
        {
-               _widthOfContour                                 = 1.0;
+               
                _lastInteraction                                = NULL;
-               _lastInteractionName                    = "";
+               _lastInteractionName                            = "";
                _eventHandler                                   = theEventHandler;
                _leftClickCount                                 = 0;
                _rigthClickCount                                = 0;
                
-               _contours_ViewControl                   = new std::map< std::string, ContourWrap_ViewControl * >();
-               _sceneContours_ViewControl              = new std::map< std::string, ContourWrap_ViewControl * >();
+               _contours_ViewControl                           = new std::map< std::string, ContourWrap_ViewControl * >();
+               _sceneContours_ViewControl                      = new std::map< std::string, ContourWrap_ViewControl * >();
                _workingGroup                                   = new std::map< std::string, ContourWrap_ViewControl * >();
 
                _creatingMULT_ROI                               = false;
-               _editingROI                                             = false;
-               _toIncludeAtInteractionGroup    = false;
-               _waiting                                                = false;
+               _editingROI                                     = false;
+               _toIncludeAtInteractionGroup                    = false;
+               _waiting                                        = false;
                _creatingROI                                    = false;
-               _drawingSelectionROI                    = false;
-
+               _drawingSelectionROI                            = false;
+               SetWidthContour(1.0);
                
                _wxVtk_BaseView = theWxBaseViewToManage;
                if( _wxVtk_BaseView!=NULL )
@@ -172,12 +172,21 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                        manContourControl       = new manualLineControler();
                        manViewerContour        = new manualViewLine();
                }
+
+               //Points
                if (typeContour==7)
                {
                        manContourControl       = new manualContourControler();
                        manViewerContour        = new manualViewPoints();
                }
 
+               //Polygon
+               if (typeContour==10)
+               {
+                       manContourControl       = new manualContourControler();
+                       manViewerContour        = new manualViewContour();
+               }
+
 
 
         _lastInteraction = insertWrap( theKeyName, manContourControl, manViewerContour );
@@ -186,7 +195,7 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                //Configuring the relations between the contour members representation                  
                manViewerContour->SetModel( manModelContour );
                manViewerContour->SetWxVtkBaseView( _wxVtk_BaseView );
-               manViewerContour->SetRange( 0.5 );
+               manViewerContour->SetRange( _widthOfControlPoint );
                manViewerContour->SetZ( 1000 );
 
                manViewerContour->SetSpacing(spc);
@@ -232,6 +241,10 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
        ContourWrap_ViewControl * wxVtkBaseView_SceneManager :: insertWrap( std::string theKeyName, manualContourBaseControler * manContourControl, manualViewBaseContour  * manViewerContour )
        {       
                ContourWrap_ViewControl * newContourWrap = new ContourWrap_ViewControl(manContourControl, manViewerContour);
+               if(_contours_ViewControl == NULL)
+               {
+                       _contours_ViewControl = new std::map< std::string, ContourWrap_ViewControl * >();
+               }
                _contours_ViewControl->insert(std::pair <std::string, ContourWrap_ViewControl *> ( theKeyName, newContourWrap ));
                return newContourWrap;
        } 
@@ -1173,17 +1186,23 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
        //------------------------------------------------------------------------------------------------------------
        void wxVtkBaseView_SceneManager::SetWidthContour(double width)
        {
-               _widthOfContour = width;
+               _widthOfContour         = width;
+               _widthOfControlPoint    = _widthOfContour*_widthOfContour/2;
                manualViewBaseContour           *cViewer;
                ContourWrap_ViewControl         *conwraviwcont;
-               std::map <std::string, ContourWrap_ViewControl *>::iterator iter;; 
-
-               for (iter=_contours_ViewControl->begin(); iter!=_contours_ViewControl->end(); iter++ )
+               std::map <std::string, ContourWrap_ViewControl *>::iterator iter; 
+       
+               if (_contours_ViewControl!=NULL)
                {
-                       conwraviwcont   = iter->second;
-                       cViewer                 = conwraviwcont->getViewer();
-                       cViewer->SetWidthLine(_widthOfContour);
-               }
+                       for (iter=_contours_ViewControl->begin(); iter!=_contours_ViewControl->end(); iter++ )
+                       {
+                               conwraviwcont           = iter->second;
+                               cViewer                 = conwraviwcont->getViewer();
+                               cViewer->SetShowText( false );                                  // EED 28Mars2011
+                               cViewer->SetWidthLine( _widthOfContour );
+                               cViewer->SetRange( _widthOfControlPoint );
+                       } // for
+               } // if 
        }
 
        bool wxVtkBaseView_SceneManager::isEditableCControler(std::string theKeyName){
@@ -1203,8 +1222,8 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
 
                ContourWrap_ViewControl* ccon = getContourWrap_ViewControlOf(theKeyName);
 
-               manualViewBaseContour                   * cViewer = ccon->getViewer();
-               manualContourBaseControler      * cControler = ccon->getControler();
+               manualViewBaseContour       * cViewer = ccon->getViewer();
+               manualContourBaseControler  * cControler = ccon->getControler();
 
                removeFromScene(theKeyName);
                removeWrap(theKeyName);
@@ -1212,4 +1231,6 @@ DEFINE_EVENT_TYPE( wxEVT_CHANGED_DEEP )
                delete cViewer;         
                delete cControler;
        }
-               
\ No newline at end of file
+       
+       
+