]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Increase sensitivity for vertexes selection
authorvsv <vitaly.smetannikov@opencascade.com>
Mon, 26 Oct 2015 11:39:14 +0000 (14:39 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Mon, 26 Oct 2015 11:39:14 +0000 (14:39 +0300)
src/XGUI/XGUI_Displayer.cpp
src/XGUI/XGUI_Displayer.h

index b68df4408d22bedaf1b9345620a5826d8e30ae68..a3a39a870eb319cfe2c893686865c2036c01eb8d 100644 (file)
@@ -220,8 +220,10 @@ bool XGUI_Displayer::display(ObjectPtr theObject, AISObjectPtr theAIS,
     // the fix from VPA for more suitable selection of sketcher lines
     if(anAISIO->Width() > 1) {
       for(int aModeIdx = 0; aModeIdx < myActiveSelectionModes.length(); ++aModeIdx) {
-        aContext->SetSelectionSensitivity(anAISIO,
-          myActiveSelectionModes.value(aModeIdx), anAISIO->Width() + 2);
+        int aMode = myActiveSelectionModes.value(aModeIdx);
+        double aPrecision = (aMode == getSelectionMode(TopAbs_VERTEX))? 15 : 
+                                                    (anAISIO->Width() + 2);
+        aContext->SetSelectionSensitivity(anAISIO, aMode, aPrecision);
       }
     }
   } 
@@ -390,16 +392,19 @@ void XGUI_Displayer::getModesOfActivation(ObjectPtr theObject, QIntList& theMode
   }
 }
 
+int XGUI_Displayer::getSelectionMode(int theShapeType)
+{
+  return (theShapeType >= TopAbs_SHAPE)? theShapeType : 
+    AIS_Shape::SelectionMode((TopAbs_ShapeEnum)theShapeType);
+}
+
 void XGUI_Displayer::activateObjects(const QIntList& theModes, const QObjectPtrList& theObjList,
                                      const bool theUpdateViewer)
 {
   // Convert shape types to selection types
   QIntList aModes;
   foreach(int aType, theModes) {
-    if (aType >= TopAbs_SHAPE) 
-      aModes.append(aType);
-    else
-      aModes.append(AIS_Shape::SelectionMode((TopAbs_ShapeEnum)aType));
+    aModes.append(getSelectionMode(aType));
   }
 
 #ifdef DEBUG_ACTIVATE_OBJECTS
index 3cd6f9c73d5934e52b435e0b7468e23a97c83815..91129ece67f03f84afbd3061cf923fd09e96a8ac 100644 (file)
@@ -226,6 +226,10 @@ class XGUI_EXPORT XGUI_Displayer: public QObject
   /// \param theUpdateViewer update viewer flag
   /// \return previously defined color on the object
   QColor setObjectColor(ObjectPtr theObject, const QColor& theColor, bool theUpdateViewer = true);
+  
+  /// Converts shape type (TopAbs_ShapeEnum) to selection mode
+  /// \param theShapeType a shape type from TopAbs_ShapeEnum
+  static int getSelectionMode(int theShapeType);
 
 signals:
   /// Signal on object display