]> Creatis software - creaContours.git/blobdiff - lib/Interface_ManagerContour_NDimensions/wxContourViewPanel.cxx
Merge remote-tracking branch 'origin/vtk8itk5wx3-mingw64' into vtk8itk5wx3-macos
[creaContours.git] / lib / Interface_ManagerContour_NDimensions / wxContourViewPanel.cxx
index 0115b33cbb411d4947cd29b5b429a575547c1a63..85952db7722110586daf1ed22d76099a95e6f558 100644 (file)
@@ -58,6 +58,8 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE )
        {
                theShowingImage->GetSpacing(last_spacing);
                showingVID                              = theShowingImage;
+               _showBeforeContour              = false;
+               _showAfterContour               = false;
                int gapH                                = 20;
                int gapV                                = 10;
                _verticalConceptName    = "";
@@ -224,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()
        {
@@ -703,22 +712,76 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE )
 
        void wxContourViewPanel::addNameWrapperToScene()
        {
-               int size = wxContourMainFrame::getInstance()->getNamesWrappingSize();
-               for(int i = 0; i < size;i++){
+               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
+
+               _sceneManager->SetLabelNumberOfContours( "contours:"+std::to_string(size) );
+
+               std::vector<int> tempVector;
+               wxContourMainFrame::getInstance()->getInstantVector( tempVector );
+
+               if (_showBeforeContour==true)
+               {
+                       size=0;
+                       std::vector<std::string> 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 (_showAfterContour==true)
+               {
+                       size=0;
+                       std::vector<std::string> lstNameAfter;
+                       // Contours After
+                       int ext[6];
+                       getImageData()->GetExtent(ext);
+                       int dimZ=ext[5]-ext[4]+1;
+                       for (i=tempVector[1]+1; i<dimZ; i++)
+                       {
+                               lstNameAfter = wxContourMainFrame::getInstance()->getOutlinesName( 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<std::string> wxContourViewPanel::getSelectedObjects(){
+       std::vector<std::string> wxContourViewPanel::getSelectedObjects()
+       {
                return _sceneManager->getSelectedObjects();
        }
 
-       void wxContourViewPanel::RefreshInterface(){
+       void wxContourViewPanel::RefreshInterface()
+       {
                getWxVtkBaseView()->Refresh();
        }
 
-       vtkImageData* wxContourViewPanel::getImageData(){
+       vtkImageData* wxContourViewPanel::getImageData()
+       {
                return _sceneManager->GetImageData();
        }
 
@@ -771,12 +834,24 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE )
                wxvtk2dbaseview->SetInterpolate( interpolate );
        }
 
+       void wxContourViewPanel::onBeforeAfterContour(bool before, bool after)
+       {
+               _showBeforeContour      = before;
+               _showAfterContour       = after;
+       }
+
+       void wxContourViewPanel::onShowTextContour(bool show)
+       {
+               _sceneManager->SetShowTextContour( show );
+       }
+
        void wxContourViewPanel::GetPointsOfActualContour( std::vector<double> *vecX, std::vector<double> *vecY, std::vector<double> *vecZ )
        {
                _sceneManager->GetPointsOfActualContour(vecX, vecY, vecZ);
        }
 
-       void wxContourViewPanel::setImageSlice(int z){
+       void wxContourViewPanel::setImageSlice(int z)
+       {
                vtkInteractorStyleBaseView* stylebaseview = (vtkInteractorStyleBaseView*) _sceneManager->getWxVtkViewBase()->GetInteractorStyleBaseView();
                wxVtk2DBaseView* baseview = (wxVtk2DBaseView*)stylebaseview->GetWxVtk2DBaseView();
                baseview->SetActualSlice(z);