ArcBall(天体球; アークボール)は、3Dシーンの周りに球を設定します。ユーザは、その球の表面をクリックしてドラッグすることにより、シーンを回転させることができます。
Call Listコマンドの代わりにArcBallを使って、シーンを天体球(アークボール)に配置します。天体球に張り付けられたシーンは、自動的にマウスのクリック&ドラッグに対応するようになります。新しいプログラムを作成する必要はありません。ただし、天体球での回転は保存されません (技術的に説明すると、ArcBallは暗黙のPush MatrixとPop Matrixブロックの中にあるので、戻ったときにはその動きは消滅しています。プッシュとポップの詳細については、第 “行列スタックの使用”を参照してください)。
例として、第 “基本要素の例”のスクリプトを調べてみましょう。次のような行があります。
scene << CallList(shape); // 表示リストをシーンに送る
scene << ArcBall(shape,2); // 表示リストを天体球に送る
このスクリプトは、表示を直径2の天体球に関連付けます。スクリプトを実行してウィンドウが表示されたら、右クリックし、表示されるメニューから[天体球の表示]>[常に]を選択します。
Show ArcBallコマンドを使って、JSLで天体球の表示状態を設定することもできます。
scene << Show Arcball(state)
図13.9 天体球の表示