-
Notifications
You must be signed in to change notification settings - Fork 57
Open
Description
論文の図を作るような時に、プログラムを再起動しても再起動前と同じ視点・画角のirtviewerを表示してほしい時があります。
良い見た目となるようにirtviewerをマウスで操作した後、その視点・画角を保存して、次回起動時に読み込むようにしたいと考えています。
jmanualとirtviewer.lを読んで、以下のようにすると視点・画角の保存・再現ができましたが、irtviewerクラスのスロット変数left-right-angleとup-down-angleのgetter/setterメソッドがないために:get-valと:set-valを使っており、正規の方法ではないと思われます。
よりよい方法はありませんでしょうか。
1.irteusgl$ setq a (make-cube 100 100 100)
#<body #X560090199610 (:cube 100.0 100.0 100.0) 0.0 0.0 0.0 / 0.0 0.0 0.0>
2.irteusgl$ objects (list a)
;; (make-irtviewer) executed
(#<body #X560090199610 (:cube 100.0 100.0 100.0) 0.0 0.0 0.0 / 0.0 0.0 0.0>)
3.irteusgl$ setq vp (send *irtviewer* :viewpoint)
#f(155.272 268.939 113.029)
4.irteusgl$ setq vt (send *irtviewer* :viewtarget)
#f(0.0 0.0 0.0)
5.irteusgl$ setq lra (send *irtviewer* :get-val 'x::left-right-angle)
60
6.irteusgl$ setq uda (send *irtviewer* :get-val 'x::up-down-angle)
20
;; ここでirtviewerを適当にマウス操作
7.irteusgl$ send *irtviewer* :viewpoint vp
#f(155.272 268.939 113.029)
8.irteusgl$ send *irtviewer* :viewtarget vt
#f(0.0 0.0 0.0)
9.irteusgl$ send *irtviewer* :set-val 'x::left-right-angle lra
60
10.irteusgl$ send *irtviewer* :set-val 'x::up-down-angle uda
20
11.irteusgl$ send *irtviewer* :look1
#<coordinates #X560090308378 155.272 268.939 113.029 / 2.618 -2.776e-17 1.222>
12.irteusgl$ send *irtviewer* :draw-objects
1
;; irtviewerの表示がマウス操作前の状態に戻る
Metadata
Metadata
Assignees
Labels
No labels