Salome HOME
Fix compilation error (conflict of OK name between OCCT Plate_Plate.hxx and GEOM...
[modules/geom.git] / src / EntityGUI / EntityGUI_FeatureDetectorDlg.cxx
index 7d8b1080ecf05bbc240bc96f9c215d964b907283..2a684aa233dea4d60a8e60b55f9204bfbdcb1266 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -51,6 +51,8 @@
 
 #include <SalomeApp_Study.h>
 
+#include <Basics_OCCTVersion.hxx>
+
 #include <utilities.h>
 #include <Precision.hxx>
 
@@ -67,7 +69,7 @@
 #include <AIS_Shape.hxx>
 
 #include <TCollection_AsciiString.hxx>
-#include <StdSelect_DisplayMode.hxx>
+//#include <StdSelect_DisplayMode.hxx>
 
 #include <Graphic3d_MaterialAspect.hxx>
 
 #include <utility>
 
 // boost includes
+#include <boost/version.hpp>
+#if BOOST_VERSION < 106700
 #include <boost/utility.hpp>
+#else
+#include <boost/next_prior.hpp>
+#endif
 
 // Constructors
-enum{
+enum {
   CONTOURS,
   CORNERS,
   LINES
@@ -282,7 +289,7 @@ EntityGUI_FeatureDetectorDlg::EntityGUI_FeatureDetectorDlg( GeometryGUI* theGeom
   // about what will be considered INSIDE the zone we want to find the frontier of
   // This makes the algorithm more robust against a bit inhomogeneous parts in the zone
   // that we want to delimitate.
-  // The drawback is if we want to delimitate a zone wich color is very similar to the zone
+  // The drawback is if we want to delimitate a zone which color is very similar to the zone
   // we consider as the OUTSIDE, the result will be bad.
   // The current use cases are more of the first form : 
   //  - Strongly contrasted INSIDE and OUTSIDE zones
@@ -400,8 +407,8 @@ void EntityGUI_FeatureDetectorDlg::SelectionIntoArgument()
 {
   
   // TODO supprimer les lignes qui ne servent à rien le cas échéant
-  SUIT_ViewWindow*       theViewWindow  = getDesktop()->activeWindow();
-  SOCC_Viewer* soccViewer = (SOCC_Viewer*)(theViewWindow->getViewManager()->getViewModel());
+  //SUIT_ViewWindow*       theViewWindow  = getDesktop()->activeWindow();
+  //SOCC_Viewer* soccViewer = (SOCC_Viewer*)(theViewWindow->getViewManager()->getViewModel());
 
   if (!myEditCurrentArgument->isEnabled())
     return;
@@ -450,7 +457,7 @@ void EntityGUI_FeatureDetectorDlg::SelectionIntoArgument()
       myDetector->SetPath( theImgFileName.toStdString() );
       height            =  myDetector->GetImgHeight();
       width             =  myDetector->GetImgWidth();
-      pictureLeft       = -0.5 * width;              // X coordinate of the top left  corner of the background image in the view
+      pictureLeft       = -0.5 * width;              // X coordinate of the top left corner of the background image in the view
       pictureTop        =  0.5 * height;             // Y coordinate of both top corners
       
     } 
@@ -498,7 +505,7 @@ bool EntityGUI_FeatureDetectorDlg::ClickOnApply()
 //=================================================================================
 void EntityGUI_FeatureDetectorDlg::ConstructorsClicked(int id)
 {
-  MESSAGE("Constructor id ="<<id)
+  MESSAGE("Constructor id ="<<id);
   myConstructorId = id;
   switch (id)
   {
@@ -611,9 +618,10 @@ ShapeRec_Parameters* EntityGUI_FeatureDetectorDlg::parametersChanged()
     aCornersParameters->qualityLevel = (dynamic_cast<QDoubleSpinBox*>(myWidgets[QUALITY_LEVEL]))->value();
     aCornersParameters->minDistance  = (dynamic_cast<QDoubleSpinBox*>(myWidgets[MIN_DISTANCE]))->value();
     switch ( (dynamic_cast<QComboBox*>(myWidgets[TYPE_CRITERIA]))->currentIndex() ) {
-    case 0: aCornersParameters->typeCriteria = CV_TERMCRIT_ITER;
-    case 1: aCornersParameters->typeCriteria = CV_TERMCRIT_EPS;
-    case 2: aCornersParameters->typeCriteria = CV_TERMCRIT_ITER | CV_TERMCRIT_EPS;
+    case 0: aCornersParameters->typeCriteria = CV_TERMCRIT_ITER; break;
+    case 1: aCornersParameters->typeCriteria = CV_TERMCRIT_EPS; break;
+    case 2: aCornersParameters->typeCriteria = CV_TERMCRIT_ITER | CV_TERMCRIT_EPS; break;
+    default: break;
     }
     aCornersParameters->maxIter = (dynamic_cast<QSpinBox*>(myWidgets[MAX_ITER]))->value();
     aCornersParameters->epsilon = (dynamic_cast<QDoubleSpinBox*>(myWidgets[EPSILON]))->value();
@@ -663,7 +671,7 @@ ShapeRec_Parameters* EntityGUI_FeatureDetectorDlg::parametersChanged()
 void EntityGUI_FeatureDetectorDlg::setStartPnt(const gp_Pnt& theStartPnt)
 {
   myStartPnt = theStartPnt;
-  MESSAGE("myStartPnt = ("<<theStartPnt.X()<<", "<<theStartPnt.Y()<<")")
+  MESSAGE("myStartPnt = ("<<theStartPnt.X()<<", "<<theStartPnt.Y()<<")");
 }
 
 //=================================================================================
@@ -673,7 +681,7 @@ void EntityGUI_FeatureDetectorDlg::setStartPnt(const gp_Pnt& theStartPnt)
 void EntityGUI_FeatureDetectorDlg::setEndPnt(const gp_Pnt& theEndPnt)
 {
   myEndPnt = theEndPnt;
-  MESSAGE("myEndPnt = ("<<theEndPnt.X()<<", "<<theEndPnt.Y()<<")")
+  MESSAGE("myEndPnt = ("<<theEndPnt.X()<<", "<<theEndPnt.Y()<<")");
   if (setSelectionRect() && myDetector->GetImgHeight() > 0)
     showImageSample();
 }
@@ -720,7 +728,7 @@ void EntityGUI_FeatureDetectorDlg::showImageSample()
 //=================================================================================
 GEOM::GEOM_IOperations_ptr EntityGUI_FeatureDetectorDlg::createOperation()
 {
-  return myGeomGUI->GetGeomGen()->GetIShapesOperations( getStudyId() );
+  return myGeomGUI->GetGeomGen()->GetIShapesOperations();
 }
 
 //=================================================================================
@@ -731,7 +739,7 @@ bool EntityGUI_FeatureDetectorDlg::execute( ObjectList& objects )
 {
   bool res = false;
   
-  GEOM::GEOM_IBasicOperations_var  aBasicOperations  = myGeomGUI->GetGeomGen()->GetIBasicOperations( getStudyId() );
+  GEOM::GEOM_IBasicOperations_var  aBasicOperations  = myGeomGUI->GetGeomGen()->GetIBasicOperations();
   GEOM::GEOM_IShapesOperations_var aShapesOperations = GEOM::GEOM_IShapesOperations::_narrow( getOperation() );
 
   ShapeRec_Parameters* parameters = parametersChanged();
@@ -792,7 +800,7 @@ bool EntityGUI_FeatureDetectorDlg::execute( ObjectList& objects )
     }
     else if (myConstructorId == CONTOURS)
     {    
-      GEOM::GEOM_ICurvesOperations_var aCurveOperations = myGeomGUI->GetGeomGen()->GetICurvesOperations( getStudyId() );
+      GEOM::GEOM_ICurvesOperations_var aCurveOperations = myGeomGUI->GetGeomGen()->GetICurvesOperations();
 
       myDetector->ComputeContours( useROI, parameters );
       std::vector< std::vector<cv::Point> >   contours  = myDetector->GetContours();
@@ -806,10 +814,10 @@ bool EntityGUI_FeatureDetectorDlg::execute( ObjectList& objects )
     
       bool insert;
     
-      MESSAGE("hierarchy.size() =" << hierarchy.size()) 
+      MESSAGE("hierarchy.size() =" << hierarchy.size());
       if ( hierarchy.size() < 1 ) {
-       getOperation()->SetErrorCode( "Impossible detected contours" );
-       return false;
+        getOperation()->SetErrorCode( "Impossible detected contours" );
+        return false;
       }
 
       for( ; idx >= 0; idx = hierarchy[idx][0])