0026217: Visualization, Select3D_SensitiveCircle - fix compilation with CLang for iOS
authorvpa <vpa@opencascade.com>
Wed, 13 May 2015 09:30:38 +0000 (12:30 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 21 May 2015 10:30:08 +0000 (13:30 +0300)
Inclusion detection for filled sensitive circles was corrected

src/Select3D/Select3D_SensitiveCircle.cxx
src/ViewerTest/ViewerTest_ObjectCommands.cxx
tests/bugs/vis/bug26217 [new file with mode: 0644]

index 3f8eaa2..bd5c9fd 100644 (file)
@@ -256,9 +256,11 @@ Standard_Boolean Select3D_SensitiveCircle::Matches (SelectBasics_SelectingVolume
     if (!theMgr.IsOverlapAllowed())
     {
       thePickResult = SelectBasics_PickResult (aDepth, aDistToCOG);
-      if (!theMgr.Overlaps (myBndBox.CornerMin(), myBndBox.CornerMax(), Standard_False))
+      for (Standard_Integer aPntIdx = anArrayOfPnt->Lower(); aPntIdx <= anArrayOfPnt->Upper(); ++aPntIdx)
       {
-        return Standard_False;
+        Standard_Real aDummy;
+        if (!theMgr.Overlaps (anArrayOfPnt->Value (aPntIdx), aDummy))
+          return Standard_False;
       }
       return Standard_True;
     }
index 0c59eee..c28f0d2 100644 (file)
@@ -4337,7 +4337,7 @@ class Triangle: public AIS_InteractiveObject
 {
 public: 
   // CASCADE RTTI
-  DEFINE_STANDARD_RTTI(FilledCircle); 
+  DEFINE_STANDARD_RTTI(Triangle);
   Triangle (const gp_Pnt& theP1, 
             const gp_Pnt& theP2, 
             const gp_Pnt& theP3);
diff --git a/tests/bugs/vis/bug26217 b/tests/bugs/vis/bug26217
new file mode 100644 (file)
index 0000000..5fb9e00
--- /dev/null
@@ -0,0 +1,33 @@
+puts "============"
+puts "CR26217"
+puts "============"
+puts ""
+
+##########################################################################################
+puts "Visualization, Select3D_SensitiveCircle - fix compilation with CLang for iOS"
+##########################################################################################
+
+pload VISUALIZATION
+
+vinit View1
+vpoint radP1 0 0 0
+vpoint radP2 50 50 0
+vpoint radP3 100 0 0
+vcircle circle radP1 radP2 radP3 1
+vfit
+
+vselect 40 120 185 320
+set aColor [vreadpixel 120 200 rgb name]
+if {$aColor != "DARKGOLDENROD3"} {
+  puts "ERROR: the circle is selected with no overlap mode activated"
+}
+
+vselect 0 0
+
+vselect 40 120 185 320 -allowoverlap 1
+set aColor [vreadpixel 120 200 rgb name]
+if {$aColor != "GRAY80"} {
+  puts "ERROR: the circle is not selected with overlap mode activated"
+}
+
+vdump ${imagedir}/${casename}.png