1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-07 18:30:55 +03:00
occt/tests/v3d/manipulator/zoom_persistence
mzernova 2ff1d580f1 0031412: Visualization - entity behind is returned as topmost at the edges
SelectMgr_RectangularFrustum now handles degenerated triangle as a segment or a point.
Triangle orthogonal to view direction is now handled as a segment.
myViewRayDir field is now defined as normalized vector to avoid confusing math.

For the case when the segment and myViewRayDir are almost parallel,
the segmentSegmentDistance function may set the depth to zero, although this will not
be the correct value, therefore it is better to pass a segment that will not
be parallel to myViewRayDir as an argument to the function.

vpoint command has been extended by arguments -2d and -nosel
for displaying picking mouse position as on-screen point in pixels.
Fixed double-binding-map error in case of displaying point with already used name.

bugs/vis/bug31412: test case added.
2020-06-25 19:09:04 +03:00

87 lines
2.1 KiB
Plaintext

puts "==============================================="
puts "AIS_Manipulator - check zoom persistence option"
puts "==============================================="
set anImage1 $imagedir/${casename}_1.png
set anImage2 $imagedir/${casename}_2.png
set anImage3 $imagedir/${casename}_3.png
set anImage4 $imagedir/${casename}_4.png
set anImage5 $imagedir/${casename}_5.png
set anImage6 $imagedir/${casename}_6.png
# -------------------------------------
# create manipulated and helper objects
# -------------------------------------
box b1 0 0 0 20 20 20
box b2 80 0 0 20 20 20
vdisplay b1
vdisplay b2
vtrihedron tri
vsetdispmode 1
vaxo
vfit
# --------------------------------------------------------
# create and test non-zoom persistent manipulator (test 1)
# --------------------------------------------------------
vmanipulator m1 -attach b1 -adjustPosition 1 -adjustSize 1 -enableModes 1 -zoomable 1
set mouse_pick_1 {84 133}
set mouse_pick_2 {29 103}
set mouse_pick_3 {29 103}
set mouse_drag_3 {121 126}
# pick at default zoom
vmoveto 0 0
vmoveto {*}$mouse_pick_1
vdump $anImage1
# pick at changed zoom
vzoom 1.5
vmoveto 0 0
vmoveto {*}$mouse_pick_2
vdump $anImage2
# drag object
vselect {*}$mouse_pick_3
vmanipulator m1 -startTransform {*}$mouse_pick_3
vmanipulator m1 -transform {*}$mouse_drag_3
vmanipulator m1 -stopTransform
vselect 0 0
vdump $anImage3
# ----------------------------------------------------
# create and test zoom persistent manipulator (test 2)
# ----------------------------------------------------
vfit
vmanipulator m2 -attach b2 -adjustPosition 1 -adjustSize 0 -enableModes 1 -zoomable 0 -size 40
set mouse_pick_1 {341 282}
set mouse_pick_2 {277 245}
set mouse_pick_3 {277 245}
set mouse_drag_3 {210 210}
# pick at default zoom
vmoveto 0 0
vmoveto {*}$mouse_pick_1
vdump $anImage4
# pick at changed zoom
vzoom 0.5
vmoveto 0 0
vmoveto {*}$mouse_pick_2
vdump $anImage5
# drag object
vselect {*}$mouse_pick_3
vmanipulator m2 -startTransform {*}$mouse_pick_3
vmanipulator m2 -transform {*}$mouse_drag_3
vmanipulator m2 -stopTransform
vselect 0 0
vdump $anImage6
set to_dump_screen 0