mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
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)
150 lines
3.8 KiB
Plaintext
150 lines
3.8 KiB
Plaintext
puts "====================================="
|
|
puts "AIS_Manipulator - translate 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 5 10
|
|
pcylinder c2 10 20
|
|
ttranslate c1 100 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 (scene 1)
|
|
# -------------------------------------
|
|
|
|
vdisplay c1
|
|
vdisplay c2
|
|
vsetdispmode 1
|
|
vaxo
|
|
vfit
|
|
|
|
# ------------------
|
|
# attach manipulator
|
|
# ------------------
|
|
|
|
vmanipulator m -attach c1 -adjustPosition 1 -adjustSize 0 -enableModes 1
|
|
vmanipulator m -followRotation 1
|
|
vmanipulator m -followTranslation 1
|
|
|
|
# ----------------------------------------------------
|
|
# test x translation transform (world reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {204 112}
|
|
set mouse_drag {204 156}
|
|
|
|
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 y translation transform (world reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {215 160}
|
|
set mouse_drag {265 132}
|
|
|
|
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 z translation transform (world reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {263 145}
|
|
set mouse_drag {127 065}
|
|
|
|
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 (scene 2)
|
|
# -------------------------------------
|
|
|
|
vremove -all
|
|
vdisplay c1
|
|
vdisplay c2
|
|
vsetdispmode 1
|
|
vaxo
|
|
vfit
|
|
|
|
# -------------------------------------------
|
|
# attach manipulator and rotate around z axis
|
|
# -------------------------------------------
|
|
|
|
vmanipulator m -attach c1 -adjustPosition 1 -adjustSize 0 -enableModes 1
|
|
vmanipulator m -followRotation 1
|
|
vmanipulator m -followTranslation 1
|
|
|
|
set mouse_pick {223 143}
|
|
set mouse_drag {181 141}
|
|
|
|
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
|
|
|
|
# ----------------------------------------------------
|
|
# test x translation transform (object reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {199 131}
|
|
set mouse_drag {175 168}
|
|
|
|
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 y translation transform (object reference frame)
|
|
# ----------------------------------------------------
|
|
|
|
set mouse_pick {199 164}
|
|
set mouse_drag {246 177}
|
|
|
|
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 |