Skip to content

irtviewerの視点・画角をプログラムから任意に設定したい #606

@pazeshun

Description

@pazeshun

論文の図を作るような時に、プログラムを再起動しても再起動前と同じ視点・画角のirtviewerを表示してほしい時があります。
良い見た目となるようにirtviewerをマウスで操作した後、その視点・画角を保存して、次回起動時に読み込むようにしたいと考えています。

jmanualとirtviewer.lを読んで、以下のようにすると視点・画角の保存・再現ができましたが、irtviewerクラスのスロット変数left-right-angleup-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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions