1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-06 10:36:12 +03:00
occt/tests/bugs/vis/bug24569
vpa f751596e46 0024623: Visualization - improve selection mechanism
Redesign of selection mechanism:
- implemented 3-level BVH tree for selection;
- selection now calculates in 3D space;
- intersection tests were moved to SelectMgr_BaseFrustum descendants;
- removed .cdl files in Select3D and .cdl related to selection in MeshVS;
- SelectMgr_ViewerSelectors are now shared between local and global contexts;
- transformations of sensitive entities are now stored in SelectMgr_SelectableObject only. Sensitive entities are independent from transformations, it is applied to SelectMgr_SelectingVolumeManager instance only;
- connected and multiple connected interactive objects are now represented by their child objects only for SelectMgr_SelectionManager;
- if interactive object has child objects, they will be stored as separate objects in SelectMgr_SelectionManager now.
- test cases bugs/vis/bug24623_1, bug24623_2, bug24623_3, bug24623_4 to test performance and memory issues.
2015-04-06 17:27:38 +03:00

49 lines
1008 B
Plaintext

puts "============"
puts "CR24569"
puts "============"
puts ""
#######################################################################
# Test for conversion of sensitives by AIS_InteractiveContext::Update
#######################################################################
set aV "Driver1/Viewer1/View1"
vinit name=$aV l=32 t=32 w=400 h=400
vactivate $aV
vclear
vpoint p1 0 0 0
vpoint p2 1 0 0
vpoint p3 0 1 0
vplane pl1 p1 p2 p3 0
vfit
vmoveto 200 256
checkcolor 395 200 0 1 1
if { $stat != 1 } {
puts "Error : Selection of AIS_Plane does not work initially!"
}
puts "Testing of plane sensitivity update:"
vchangeplane pl1 x=-150 y=150 z=0 sx=10 sy=10
vupdate pl1
vzrange 230.36270740666069 409.91874112463427
vmoveto 200 240
checkcolor 199 23 0 1 0
if { $stat != 1 } {
puts "Error : Sensitive entity of AIS_Plane is not updated!"
}
vmoveto 200 28
checkcolor 199 23 0 1 1
if { $stat != 1 } {
puts "Error : Sensitive entity of AIS_Plane is incorrect after update!"
}
set only_screen 1