RINEARN トップ > RINEARN-X > RINEARN-X 開発API仕様


rxvesapi.system3d.renderer.
Realtime3DPanel クラス

[ 概要 ]
 Realtime3DPanelクラスは、リアルタイムの3DCGディスプレイとして使用できるJPanel互換コンポーネントです。
 Realtime3DPanelクラスは、生成された瞬間から、背景に3D仮想世界の映像をアニメーションで描画し続けます。リアルタイム設計なので、3D仮想世界で立体を移動した際にも、常にその様子が反映されます。
 Realtime3DPanelクラスは、javax.swing.JPanelを継承しているので、javax.swing.JFrameウィンドウの任意の箇所に配置(add)したり、別のコンポーネントと組み合わせるなど、3DCGディスプレイでありながら非常に簡単かつ高自由度なUI設計が可能です。さらにRealtime3DPanelクラスの上にボタンや入力フォームを配置(add)する事も可能です。
 Realtime3DPanelクラスは、指定された画面更新周波数でのアニメーションを実現するための高度な自動調整機構を内蔵しています。このため、機種やCPU性能に左右されず、概ね設計通りのアニメーション速度を実現できます(処理落ち発生時を除く)。
 Realtime3DPanelクラスは、画面更新のタイミングにシンクロしたイベントRealtime3DScreenRefreshEvent を発生させる機能が用意されています。これをイベントリスナRealtime3DScreenRefreshListenerで受け取る事により、機種やCPU性能に左右されないスピードで動く、動的な3D表現を容易に設計実装する事が可能です。

[ 仕様 ]

基本仕様
名称 rxvesapi.system3d.renderer.Realtime3DPanel
概要 リアルタイム3Dディスプレイ オブジェクト
種類 クラス
継承関係 ・javax.swing.JPanel
 |
 +- rxvesapi.system3d.renderer. Realtime3DPanel
インターフェイス Runnable,
MouseListener,
MouseMotionListener,
MouseWheelListener,
ComponentListener

コンストラクタ一覧
Realtime3DPanel( )
デフォルトコンストラクタ

public フィールド一覧
int
IDLE_MODE
(画面更新モード) 完全休止モードです。画面更新をする事は一切ありません。マウス操作を含め全ての処理をスルーし、プロセスは完全に休止状態に移行します
int
SEMI_IDLE_MODE
(画面更新モード) 準休止モードです。画面更新をする事は一切ありません。マウス操作があった時にカメラアングルを変える設定は行いますが、画面は更新されないままです。
int
SEMI_REALTIME_MODE
(画面更新モード) 準リアルタイムモードです。外部からの操作が無い時には休止していますが、マウスにより視点が操作されている時にはカメラアングルを変えつつ、アニメーションによる画面更新を行います。静的な空間を表現する場合に用います。
int
REALTIME_MODE
(画面更新モード) リアルタイム描画モードです。外部から操作のある無しに関わらず、常にアニメーションによる画面更新を行い続けます。動的な空間を表現する場合に用います。

public メソッド一覧 ( javax.swing.JPanelから継承したメソッドは除く )
- 描画関連 -
void
disposeResource( )
スレッドや描画エンジンなどのリソースを全て明示的に破棄します。このクラスはスレッドを動作させているため、このクラスへの参照が無くなっただけではガベージコレクション対象とはなりません。従ってこのクラスが不要になったタイミングで、このメソッドを呼び出してリソースを開放する必要があります。
void
repaint3D( )
現在の3D仮想世界の様子を画面に描画します。通常は自動で画面更新がされるのでこのメソッドを使用する必要はありません。画面更新モードが IDLE_MODE または SEMI_IDLE_MODE の場合は自動画面更新がされないので、このメソッドで明示的に画面更新を行ってください。
void
repaint3DRequest( )
基本的に repaint3D と同様ですが、repaint3D が非スレッド処理であるのに対し、このメソッドは独立スレッドとして処理を行います。アニメーション機能を独自に実装する場合などは、こちらのメソッドを活用した方が滑らかな画面更新を実現できる場合があります。
void
setProcessMode( int mode )
画面更新モードを指定します。引数値にはこのクラスのフィールドを参照してください。
void
setFrameRate( int frameRate )
画面更新周波数を指定します。ここで指定した周波数で3DCG画像が生成・描画されます。
int
getFrameRate( )
設定されている画面更新周波数を返します。あくまで設定されている値を返すので、必ずしも実現されている画面更新周波数と一致しません。
int
getCurrentFrameRate( )
現在実現されている画面更新周波数を返します。
- イベント関連 -
void
addRealtime3DScreenRefreshListener( Realtime3DScreenRefreshListener listener )
画面更新イベントをハンドルするイベントリスナを登録します。ここで登録したイベントリスナクラスは、画面更新毎に screenRefreshed( Realtime3DScreenRefreshEvent event ) メソッドがコールされます。これを利用すると、動的な3D表現を容易に設計実装する事が可能です。
- 座標系関連 -
ScreenSystem3DEG
getScreenSystem( )
スクリーン座標系を返します。3DCG画像に関する諸設定は、このメソッドが返すスクリーン座標系に対して行ってください。
void
setScreenSystem( ScreenSystem3DEG screenSystem )
スクリーン座標系を指定します。
CoordinateSystem3DEG
getWorldSystem( )
ワールド座標系を返します。
void
getWorldSystem( CoordinateSystem3DEG worldSystem )
ワールド座標系を指定します。
void
add( CoordinateSystem3DEG system )
引数に受け取った座標系を、ワールド座標系に配置します。
- 立体登録関連 -
void
format( )
現在登録されている全ての立体オブジェクトを登録解除します。
void
add( Element3DEG addElement )
ポリゴン要素クラスを登録します。登録されたオブジェクトは、ワールド座標系への配置と、スクリーン座標系への描画リクエストが行われ、画面に映るようになります。 引数には3次までの配列も指定可能です。
void
add( Model3DEG addModel )
立体モデルクラスを登録します。登録されたオブジェクトは、ワールド座標系への配置と、スクリーン座標系への描画リクエストが行われ、画面に映るようになります。 引数には3次までの配列も指定可能です。
void
add( Structure3DEG addModel )
構造体モデルクラスを登録します。登録されたオブジェクトは、ワールド座標系への配置と、スクリーン座標系への描画リクエストが行われ、画面に映るようになります。 引数には3次までの配列も指定可能です。
void
remove( Element3DEG addElement )
引数に指定したポリゴン要素クラスの描画リクエストを登録解除します。 引数には3次までの配列も指定可能です。
void
remove( Model3DEG addModel )
引数に指定した立体モデルクラスの描画リクエストを登録解除します。 引数には3次までの配列も指定可能です。
void
remove( Structure3DEG addModel )
引数に指定した構造体モデルクラスの描画リクエストを登録解除します。 引数には3次までの配列も指定可能です。


Copyright(C) 2010 RINEARN All Rights Reserved.