]> Creatis software - creaContours.git/blobdiff - lib/Interface_ManagerContour_NDimensions/wxContourViewPanel.cxx
#3322 creaContours Feature New Normal - Show reference contour Befor After actual...
[creaContours.git] / lib / Interface_ManagerContour_NDimensions / wxContourViewPanel.cxx
index f0d33dd4656755af22c7b25f9ca7ff6b874ebc86..de7b90660a8eb27c230f8b4a4736f2bcbef7fbeb 100644 (file)
@@ -58,6 +58,8 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE )
        {
                theShowingImage->GetSpacing(last_spacing);
                showingVID                              = theShowingImage;
+               _before                                 = false;
+               _after                                  = false;
                int gapH                                = 20;
                int gapV                                = 10;
                _verticalConceptName    = "";
@@ -717,40 +719,51 @@ DEFINE_EVENT_TYPE( wxINSTANT_CHANGE )
                        _sceneManager->addToScene(name, true, true, true, false, false );
                } // for i
 
-
-printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code ...\n");
-printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code ...\n");
-printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code ...\n");
-printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code ...\n");
-printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code ...\n");
-printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code ...\n");
-//EED 2019-12-05
-// falta buscar slice antes y despues para encontrar elementos
-// falta cambiar de colores para antes y despues
-// falta un flag que active y desactive esta opcion
-
                std::vector<int> tempVector;
                wxContourMainFrame::getInstance()->getInstantVector( tempVector );
 
-               // Contours Befor
-               std::vector<std::string> lstNameBefor = wxContourMainFrame::getInstance()->getOutlinesName(tempVector[1]-10);
-               size = lstNameBefor.size();
-               for(i = 0; i < size;i++)
+               if (_before==true)
                {
-                       //                                                    ctrol  active showCtr
-                       _sceneManager->addToScene(lstNameBefor[i], true, true, false, false, false );
-               } // for i
-
-               // Contours After
-               std::vector<std::string> lstNameAfter = wxContourMainFrame::getInstance()->getOutlinesName(tempVector[1]+10);
-               size = lstNameAfter.size();
-               for(i = 0; i < size;i++)
+                       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 (_after==true)
                {
-                       //                                                    ctrol  active showCtr
-                       _sceneManager->addToScene(lstNameAfter[i], true, true, false, false, false );
-               } // for i
-
-
+                       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(){
@@ -814,6 +827,12 @@ printf("EED \wxContourViewPanel::addNameWrapperToScene   Clean this part of code
                wxvtk2dbaseview->SetInterpolate( interpolate );
        }
 
+       void wxContourViewPanel::onBeforeAfterContour(bool before, bool after)
+       {
+               _before = before;
+               _after  = after;
+       }
+
        void wxContourViewPanel::GetPointsOfActualContour( std::vector<double> *vecX, std::vector<double> *vecY, std::vector<double> *vecZ )
        {
                _sceneManager->GetPointsOfActualContour(vecX, vecY, vecZ);