mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
Improved objects sorting by depth. The sensitivity calculation for the manipulator has been changed. Now the sensitivity of the elements of the manipulator depends on its size. Also fixed the problem of erroneous selection of unfilled circles (SelectMgr_Frustum<N>::hasCircleOverlap() function). Test case vselect/bugs/bug27848 added.
106 lines
2.6 KiB
Plaintext
106 lines
2.6 KiB
Plaintext
puts "====================================="
|
|
puts "AIS_Manipulator - drag an object"
|
|
puts "====================================="
|
|
|
|
pload MODELING VISUALIZATION
|
|
|
|
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
|
|
|
|
# -------------------------------------
|
|
# create manipulated and helper objects
|
|
# -------------------------------------
|
|
|
|
pcylinder c1 5 10
|
|
pcylinder c2 10 20
|
|
ttranslate c1 105 0 20
|
|
ttranslate c2 100 0 0
|
|
trotate c1 100 0 25 0 1 0 90
|
|
trotate c1 100 0 25 0 0 1 10
|
|
|
|
# -------------------------------------
|
|
# display manipulated objects
|
|
# -------------------------------------
|
|
|
|
vdisplay c1
|
|
vdisplay c2
|
|
vsetdispmode 1
|
|
vaxo
|
|
vfit
|
|
|
|
# ------------------
|
|
# attach manipulator
|
|
# ------------------
|
|
|
|
vmanipulator m -attach c1 -adjustPosition 1 -adjustSize 0 -enableModes 1 -size 40
|
|
vmanipulator m -followRotation 1
|
|
vmanipulator m -followTranslation 1
|
|
vdump $anImage1
|
|
|
|
# ----------------------------------------------------
|
|
# test xz plane dragging transform (world reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {211 129}
|
|
set mouse_drag {284 248}
|
|
|
|
vmoveto {*}$mouse_pick
|
|
vselect {*}$mouse_pick
|
|
vmanipulator m -startTransform {*}$mouse_pick
|
|
vmanipulator m -transform {*}$mouse_drag
|
|
vmanipulator m -stopTransform
|
|
vselect 0 0
|
|
vmoveto {*}$mouse_drag
|
|
vdump $anImage2
|
|
|
|
# -------------------------------------------
|
|
# rotate around y axis
|
|
# -------------------------------------------
|
|
|
|
set mouse_pick {316 261}
|
|
set mouse_drag {281 286}
|
|
|
|
vmoveto {*}$mouse_pick
|
|
vselect {*}$mouse_pick
|
|
vmanipulator m -startTransform {*}$mouse_pick
|
|
vmanipulator m -transform {*}$mouse_drag
|
|
vmanipulator m -stopTransform
|
|
vselect 0 0
|
|
vmoveto {*}$mouse_drag
|
|
vdump $anImage3
|
|
|
|
# ----------------------------------------------------
|
|
# test xy plane dragging transform (world reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {278 267}
|
|
set mouse_drag {156 276}
|
|
|
|
vmoveto {*}$mouse_pick
|
|
vselect {*}$mouse_pick
|
|
vmanipulator m -startTransform {*}$mouse_pick
|
|
vmanipulator m -transform {*}$mouse_drag
|
|
vmanipulator m -stopTransform
|
|
vselect 0 0
|
|
vmoveto {*}$mouse_drag
|
|
vdump $anImage4
|
|
|
|
# ----------------------------------------------------
|
|
# test yz plane dragging transform (world reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {168 258}
|
|
set mouse_drag {166 182}
|
|
|
|
vmoveto {*}$mouse_pick
|
|
vselect {*}$mouse_pick
|
|
vmanipulator m -startTransform {*}$mouse_pick
|
|
vmanipulator m -transform {*}$mouse_drag
|
|
vmanipulator m -stopTransform
|
|
vselect 0 0
|
|
vmoveto {*}$mouse_drag
|
|
vdump $anImage5
|