1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-08 14:17:06 +03:00

0026147: Visualization - restore the ability to pick only fully included objects in rectangular selection

2 modes of rectangular selection are available: inclusion-only and overlap-allowing;
The modes can be switched using method AllowOverlapDetection from StdSelect_ViewerSelector3d;
BVH for sensitive entities now builds if there is more than max number of leafs in collection;
Added option -allowoverlap to command vselect;
Interactive rectangular selection in Draw is now available in 2 modes:
- if the user starts selection from upper corners, only fully included objects will be selected;
- if the user starts selection from lower corners, both partially and fully overlapped objects will be selected.
This commit is contained in:
vpa
2015-05-07 18:53:21 +03:00
committed by abv
parent 35c4a17c46
commit 2157d6ac63
44 changed files with 728 additions and 547 deletions

60
tests/bugs/vis/bug26147 Normal file
View File

@@ -0,0 +1,60 @@
puts "============"
puts "CR26147"
puts "============"
puts ""
##########################################################################################
puts "Visualization - restore the ability to pick only fully included objects in rectangular selection"
##########################################################################################
pload VISUALIZATION MODELING
box b1 0 0 0 1 1 1
box b2 2 2 2 1 1 1
box b3 4 4 4 1 1 1
vinit View1
vdisplay b1 b2 b3
vfit
vselmode b1 1 1
vselmode b1 2 1
vselmode b2 1 1
vselmode b2 2 1
vselect 75 230 235 320 -allowoverlap 0
set aNbSelected1 [vnbselected]
if {$aNbSelected1 != 4} {
puts "ERROR: Wrong number of entities in vertice-edge selection without overlap allowed!"
}
vselect 75 230 235 320 -allowoverlap 1
vnbselected
set aNbSelected2 [vnbselected]
if {$aNbSelected2 != 11} {
puts "ERROR: Wrong number of entities in vertice-edge selection with overlap allowed!"
}
vselect 0 0
vselmode b3 4 1
vselect 75 230 235 320 -allowoverlap 0 1
vselect 350 150 380 170 1
vnbselected
set aNbSelected3 [vnbselected]
if {$aNbSelected3 != 4} {
puts "ERROR: Wrong number of entities in vertice-edge-face shift selection without overlap allowed!"
}
vselect 0 0
vselect 75 230 235 320 -allowoverlap 1 1
vselect 350 150 380 170 1
vnbselected
set aNbSelected4 [vnbselected]
if {$aNbSelected4 != 13} {
puts "ERROR: Wrong number of entities in vertice-edge-face shift selection with overlap allowed!"
}
vdump $imagedir/${casename}