0026430: Visualization - segmentation fault in opened local context
authorvpa <vpa@opencascade.com>
Tue, 21 Jul 2015 14:04:42 +0000 (17:04 +0300)
committerbugmaster <bugmaster@opencascade.com>
Tue, 28 Jul 2015 14:59:29 +0000 (17:59 +0300)
- check for empty dataset in Select3D_SensitiveSet was added;
- test case for issue #26430

src/Select3D/Select3D_SensitiveSet.cxx
tests/bugs/vis/bug26430 [new file with mode: 0644]

index ba2dcc59ce2ae5373750dc0dd434d958c73d2883..17cd050b10d03a485fa0816b895dbf9d955b8b76 100644 (file)
@@ -51,8 +51,8 @@ Standard_Boolean Select3D_SensitiveSet::Matches (SelectBasics_SelectingVolumeMan
 
   thePickResult = SelectBasics_PickResult (RealLast(), RealLast());
 
-  if (!theMgr.Overlaps (aBVH->MinPoint (0),
-                        aBVH->MaxPoint (0)))
+  if (myContent->Size() < 1 || !theMgr.Overlaps (aBVH->MinPoint (0),
+                                                 aBVH->MaxPoint (0)))
   {
     return Standard_False;
   }
diff --git a/tests/bugs/vis/bug26430 b/tests/bugs/vis/bug26430
new file mode 100644 (file)
index 0000000..9c1c8fb
--- /dev/null
@@ -0,0 +1,46 @@
+puts "============"
+puts "CR26430"
+puts "============"
+puts ""
+
+##########################################################################################
+puts "Visualization - segmentation fault in opened local context"
+##########################################################################################
+
+pload MODELING VISUALIZATION
+
+restore [locate_data_file bug26430.brep] aShape
+
+vinit View1
+vdisplay aShape
+vfit
+vsetdispmode aShape 1
+
+vselmode aShape 1 1
+vselmode aShape 2 1
+vselmode aShape 3 1
+vselmode aShape 4 1
+vselmode aShape 5 1
+
+# check selection for all problematic cases
+vselect 125 155
+set aNbSelected [vnbselected]
+if {$aNbSelected != 1} {
+  puts "ERROR: Vertex was not selected!"
+}
+
+vselect 0 0
+vselect 121 155 130 160
+set aNbSelected [vnbselected]
+if {$aNbSelected != 1} {
+  puts "ERROR: Vertex was not selected!"
+}
+
+vselect 0 0
+vselect 100 100 200 200
+set aNbSelected [vnbselected]
+if {$aNbSelected != 14} {
+  puts "ERROR: Vertex was not selected!"
+}
+
+vdump ${imagedir}/${casename}