]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Correction to use in XML "edges, faces"
authornds <nds@opencascade.com>
Thu, 26 May 2016 09:54:49 +0000 (12:54 +0300)
committernds <nds@opencascade.com>
Thu, 26 May 2016 09:55:47 +0000 (12:55 +0300)
src/ModuleBase/ModuleBase_WidgetSelector.cpp
src/PartSet/PartSet_ResultSketchPrs.cpp
src/PartSet/PartSet_ResultSketchPrs.h

index ea76a64c4c82a082e0e18cd574dd8bcbc6d80469..ebdd60a5348b62b3150975bfb7400d24b00b899b 100755 (executable)
@@ -114,7 +114,7 @@ bool ModuleBase_WidgetSelector::acceptSubShape(const GeomShapePtr& theShape,
   }
 
   QIntList::const_iterator anIt = aShapeTypes.begin(), aLast = aShapeTypes.end();
-  for (; anIt != aLast; anIt++) {
+  for (; anIt != aLast && !aValid; anIt++) {
     TopAbs_ShapeEnum aCurrentShapeType = (TopAbs_ShapeEnum)*anIt;
     if (aShapeType == aCurrentShapeType)
       aValid = true;
@@ -125,7 +125,11 @@ bool ModuleBase_WidgetSelector::acceptSubShape(const GeomShapePtr& theShape,
                                 std::dynamic_pointer_cast<ModelAPI_ResultConstruction>(theResult);
         aValid = aCResult.get() && aCResult->facesNum() > 0;
       }
-      aValid = ModuleBase_ResultPrs::isValidShapeType(aCurrentShapeType, aShapeType);
+      if (!aValid) {
+        // the compared shape types are not equal but presentation might allow some type for another
+        // exactly it allow Wire type of the shape for Face XML shape type
+        aValid = ModuleBase_ResultPrs::isValidShapeType(aCurrentShapeType, aShapeType);
+      }
     }
   }
   return aValid;
index 8769ea22fa39ebd04f4cb6caf9924ce37131d04a..0715850b9c9764cee537e440f25a88750f9b409d 100755 (executable)
@@ -61,18 +61,6 @@ PartSet_ResultSketchPrs::PartSet_ResultSketchPrs(ResultPtr theResult)
   SetAutoHilight(aCompSolid.get() == NULL);
 }
 
-bool PartSet_ResultSketchPrs::isValidShapeType(const TopAbs_ShapeEnum& theBaseType,
-                                            const TopAbs_ShapeEnum& theCheckedType)
-{
-  bool aValid = theBaseType == theCheckedType;
-  if (!aValid) {
-    // currently this functionality is for all, as we have no separate wire selection mode
-    // lately it should be corrected to have the following check only for sketch presentations
-    aValid = theBaseType == TopAbs_FACE && theCheckedType == TopAbs_WIRE;
-  }
-  return aValid;
-}
-
 void PartSet_ResultSketchPrs::Compute(const Handle(PrsMgr_PresentationManager3d)& thePresentationManager,
                                       const Handle(Prs3d_Presentation)& thePresentation, 
                                       const Standard_Integer theMode)
index 3b39b34f50780e0ddebcde238a79592bfc2908b9..ddf21d1ecd72d143e2a0bd0be691425b1daf6325 100755 (executable)
@@ -29,12 +29,6 @@ public:
   /// \param theResult a result object
   Standard_EXPORT PartSet_ResultSketchPrs(ResultPtr theResult);
 
-  /// Returns true if the checked type can be accepted for the base selection type
-  /// It returns true if they are coicide or if the base type is face and the checked type is wire
-  /// @return boolean result
-  static Standard_EXPORT bool isValidShapeType(const TopAbs_ShapeEnum& theBaseType,
-                                               const TopAbs_ShapeEnum& theCheckedType);
-
   DEFINE_STANDARD_RTTI(PartSet_ResultSketchPrs)
 protected:
   /// Redefinition of virtual function