1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-08 18:40:55 +03:00
apl 625e195819 0027038: Visualization - add new presentation for object manipulation
AIS_Manipulator class has been created to provide interactive services for manipulating with mouse local transformations of other interactive objects.

The class features three kinds of transformation modes for attached objects:
- translation of through axis
- scaling within axis
- rotation around axis

For more details please have a look at description of the class in reference manual or in header file.

The patch includes DRAW test workbench for evaluating the AIS_Manipulator features.

Clang warning (override)
2016-06-02 14:23:22 +03:00

142 lines
3.5 KiB
Plaintext

puts "=================================="
puts "AIS_Manipulator - rotate an object"
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
# -------------------------------------
# create manipulated and helper objects
# -------------------------------------
pcylinder c1_1 5 10
pcylinder c1_2 3 10
pcylinder c2 10 20
ttranslate c1_1 100 0 20
ttranslate c1_2 100 0 20
trotate c1_2 100 0 25 0 1 0 90
trotate c1_2 100 0 25 0 0 1 10
ttranslate c2 100 0 0
compound c1_1 c1_2 c1
# ------------------------------------
# display manipulated objects (test 1)
# ------------------------------------
vdisplay c1
vdisplay c2
vsetdispmode 1
vaxo
vfit
# ------------------
# attach manipulator
# ------------------
vmanipulator m -attach c1 -adjustPosition 1 -adjustSize 0 -enableModes 1
# ----------------------------------------------------
# test rotation around x axis (object reference frame)
# ----------------------------------------------------
vmanipulator m -followRotation 1
set mouse_pick {201 092}
set mouse_drag {176 142}
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 $anImage1
# ----------------------------------------------------
# test rotation around y axis (object reference frame)
# ----------------------------------------------------
vmanipulator m -followRotation 1
set mouse_pick {173 137}
set mouse_drag {233 140}
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
# ----------------------------------------------------
# test rotation around z axis (object reference frame)
# ----------------------------------------------------
vmanipulator m -followRotation 1
set mouse_pick {200 094}
set mouse_drag {182 117}
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
# ------------------------------------
# display manipulated objects (test 2)
# ------------------------------------
vremove -all
vdisplay c1
vdisplay c2
vsetdispmode 1
vaxo
vfit
vmanipulator m -attach c1 -adjustPosition 1 -adjustSize 0 -enableModes 1
vmanipulator m -followRotation 0
# ---------------------------------------------------
# test rotation around y axis (world reference frame)
# ---------------------------------------------------
set mouse_pick {211 095}
set mouse_drag {230 127}
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 rotation around z axis (world reference frame)
# ---------------------------------------------------
set mouse_pick {225 143}
set mouse_drag {184 143}
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
set to_dump_screen 0