com.nttdocomo.ui.graphics3d
クラス Group

Object
  拡張com.nttdocomo.ui.graphics3d.Object3D
      拡張com.nttdocomo.ui.graphics3d.DrawableObject3D
          拡張com.nttdocomo.ui.graphics3d.Group

public class Group
extends DrawableObject3D

3Dオブジェクト 群のひとかたまりのグループを表す、 グループクラスを定義します。

グループは、 3Dオブジェクト 群への参照を保持します。 その 3Dオブジェクト は、 グループオブジェクトであっても構いません。 ただし、参照に自分自身を持つことはできません。 また、グループ A がグループ B の参照を持っているときに、 グループB にグループ A の参照を加えるなど、 参照の関係をループさせることはできません。 以上の条件を満たすならば、異なるグループオブジェクトが、 同一の 3Dオブジェクト を参照していても構いません。

グループオブジェクトには、大きく分けて2種類があり、 getType() メソッドにより取得できる値によって区別できます。 通常のグループ Object3D.TYPE_GROUP と、 メッシュグループ Object3D.TYPE_GROUP_MESH の2種類です。メッシュグループは、バイナリデータを入力する メソッド Object3D.createInstance(InputStream) Object3D.createInstance(byte[]) を利用することで生成できます。 このメッシュグループは、以下の特徴を持ちます。

グループは、 変換行列 オブジェクトを一つ保持します。 初期状態では、この行列の内容は恒等変換を意味する状態になっています。 ただし、メソッド Object3D.createInstance(InputStream) Object3D.createInstance(byte[]) によって生成された場合は、行列の内容はバイナリデータによって 設定されることがあります。

メッシュグループに関する、追記事項を以下に示します。

導入されたバージョン:
DoJa-4.0 (901i)

フィールドの概要
 
クラス com.nttdocomo.ui.graphics3d.DrawableObject3D から継承したフィールド
BLEND_ADD, BLEND_ALPHA, BLEND_NORMAL
 
クラス com.nttdocomo.ui.graphics3d.Object3D から継承したフィールド
TYPE_ACTION_TABLE, TYPE_FIGURE, TYPE_FOG, TYPE_GROUP, TYPE_GROUP_MESH, TYPE_LIGHT, TYPE_NONE, TYPE_PRIMITIVE, TYPE_TEXTURE
 
コンストラクタの概要
Group()
           3Dオブジェクト への参照を持たない グループオブジェクトを生成します。
 
メソッドの概要
 void addElement(Object3D obj)
           新規に 3Dオブジェクト への参照を追加します。
 void dispose()
           このオブジェクト、および、参照を保持している 3Dオブジェクト が持っている関連データを解放します。
 Object3D getElement(int index)
           番号を指定して、参照を保持している 3Dオブジェクト のうちの一つを取得します。
 int getNumElements()
           参照を保持している 3Dオブジェクト の数を取得します。
 void getTransform(Transform transform)
           設定されている 変換行列 を取得します。
 void removeElement(int index)
           番号を指定して、参照を保持している 3Dオブジェクト のうちの一つについて、参照を解除します。
 void setBlendMode(int mode)
           参照を保持している 描画可能な3Dオブジェクト すべてに、図形用ブレンドモードを設定します。
 void setPerspectiveCorrectionEnabled(boolean isOn)
           参照を保持している 描画可能な3Dオブジェクト すべてに、パースペクティブコレクションの設定をします。
 void setTime(int time)
           このオブジェクトに現在時刻を設定すると同時に、 参照を保持している 3Dオブジェクト すべてに現在時刻を設定します。
 void setTransform(Transform transform)
           変換行列 を設定します。
 void setTransparency(float v)
           参照を保持している 描画可能な3Dオブジェクト すべてに、透明度を設定します。
 
クラス com.nttdocomo.ui.graphics3d.DrawableObject3D から継承したメソッド
isCross
 
クラス com.nttdocomo.ui.graphics3d.Object3D から継承したメソッド
createInstance, createInstance, getTime, getType
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Group

public Group()

3Dオブジェクト への参照を持たない グループオブジェクトを生成します。

生成したグループオブジェクトの Object3D.getType() メソッドを呼び出すとき、 その値は常に通常のグループ Object3D.TYPE_GROUP になります。

メソッドの詳細

dispose

public void dispose()

このオブジェクト、および、参照を保持している 3Dオブジェクト が持っている関連データを解放します。

具体的には、参照を保持しているすべての 3Dオブジェクトdispose() メソッドを呼び出します。

従って、グループがネストしているときにも、再帰的にすべての 3Dオブジェクトdispose() メソッドが呼ばれます。

このオブジェクトにおいて、 既に dispose() メソッドが呼ばれているときには、 何もしません。このときに例外は発生しません。 また、参照を保持している 3Dオブジェクト (ネストしているオブジェクトも含む)のうち、 既に Object3D.dispose() メソッドが呼ばれているものが あるときには、そのオブジェクトに対しては何もせず、このときにも 例外は発生しません。

オーバーライド:
クラス Object3D 内の dispose

getNumElements

public int getNumElements()

参照を保持している 3Dオブジェクト の数を取得します。

戻り値:
参照を保持している 3Dオブジェクト の数を返します。 参照を保持している 3Dオブジェクト の中に、 既に dispose() されているオブジェクトがあっても、 そのオブジェクトを含めた数を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

getElement

public Object3D getElement(int index)

番号を指定して、参照を保持している 3Dオブジェクト のうちの一つを取得します。

パラメータ:
index - 3Dオブジェクトの番号を指定します。 0 以上、かつ、 getNumElements() メソッドの戻り値より小さいことが必要です。
戻り値:
該当する3Dオブジェクトを返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
IllegalArgumentException - 引数 index が 0 未満の場合、あるいは、 引数 index が getNumElements() メソッドが返す値以上の場合に発生します。

removeElement

public void removeElement(int index)

番号を指定して、参照を保持している 3Dオブジェクト のうちの一つについて、参照を解除します。

外された3Dオブジェクトの番号より、大きい番号に位置している3Dオブジェクトに ついては、すべて番号が一つ減った位置に移動します。

パラメータ:
index - 3Dオブジェクトの番号を指定します。 0 以上、かつ、 getNumElements() メソッドの戻り値より小さいことが必要です。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
IllegalArgumentException - 引数 index が 0 未満の場合、あるいは、 引数 index が getNumElements() メソッドが返す値以上の場合に発生します。
IllegalStateException - グループデータに、 3Dオブジェクトの参照の解除を禁止する状態が設定されている場合に発生します。

addElement

public void addElement(Object3D obj)

新規に 3Dオブジェクト への参照を追加します。

追加された3Dオブジェクトの位置を示す番号は、本メソッドを呼び出す前の getNumElements() メソッドの戻り値になります。

パラメータ:
obj - 追加するオブジェクトを指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
NullPointerException - 引数 obj が null の場合に発生します。
IllegalArgumentException - 引数 obj がこのオブジェクト (this) である場合に発生します。
IllegalArgumentException - 引数 obj が グループであり、かつ、 このオブジェクトが引数 obj の グループに含まれる場合 など、 2つのグループの関係が無限ループする場合に発生します。
IllegalStateException - バイナリデータに、3Dオブジェクトの参照の追加を 禁止する状態が設定されていた場合に発生します。

setTransform

public void setTransform(Transform transform)

変換行列 を設定します。

引数により指定された 変換行列 オブジェクトの内容を、 内部処理により完全に複製します。 そのため、メソッドから戻った後に、 指定された 変換行列 を変更しても設定内容は 変わりません。

パラメータ:
transform - 変換行列 オブジェクトを指定します。 null が指定された場合、恒等変換を意味する行列を設定したことになります。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

getTransform

public void getTransform(Transform transform)

設定されている 変換行列 を取得します。

引数により指定された 変換行列 オブジェクトに、 このオブジェクトが持っている 変換行列 の内容をコピーします。

パラメータ:
transform - 内容をコピーされたい変換行列 オブジェクトを指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
NullPointerException - 引数 transform に null が指定された場合に発生します。

setTime

public void setTime(int time)

このオブジェクトに現在時刻を設定すると同時に、 参照を保持している 3Dオブジェクト すべてに現在時刻を設定します。

具体的には、参照を保持している 3Dオブジェクト のすべてについて、 Object3D.setTime(int) メソッドを呼び出します。 従って、グループがネストしているときにも、再帰的にすべての 3DオブジェクトsetTime(int) メソッドが呼ばれます。

グループ内(ネストしているものも含む)の 3Dオブジェクト のいずれかが既に dispose() されている場合には、 このオブジェクト、および、グループ内の3Dオブジェクトすべてに対して、 setTime(int) メソッドを全く呼び出さずに、 例外を発生して終了します。

メッシュグループ内のフィギュアオブジェクトをアニメーション したいときには、メッシュグループオブジェクトに対して、 このメソッドを呼び出す必要があります。 このとき、時刻値は任意の int 値を指定できます。 int 値とフレームカウントの対応付け、および、その値の単位は、 データに依存します。アクションテーブルとは異なり、 最大値を取得する方法は用意されていません。

オーバーライド:
クラス Object3D 内の setTime
パラメータ:
time - 現在時刻を指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
UIException - グループ内(ネストしているものも含む)の 3Dオブジェクト のいずれかが既に dispose() されている場合に発生します (ILLEGAL_STATE)。

setPerspectiveCorrectionEnabled

public void setPerspectiveCorrectionEnabled(boolean isOn)

参照を保持している 描画可能な3Dオブジェクト すべてに、パースペクティブコレクションの設定をします。

具体的には、参照を保持している 描画可能な3Dオブジェクト のすべてについて、 DrawableObject3D.setPerspectiveCorrectionEnabled(boolean) メソッドを呼び出します。 従って、グループがネストしているときにも、再帰的にすべての 描画可能な3DオブジェクトDrawableObject3D.setPerspectiveCorrectionEnabled(boolean) メソッドが呼ばれます。

グループ内(ネストしているものも含む)の 描画可能な3Dオブジェクト のいずれかが既に dispose() されている場合には、 DrawableObject3D.setPerspectiveCorrectionEnabled(boolean) メソッドを全く呼び出さずに、例外を発生して終了します。

定義:
クラス DrawableObject3D 内の setPerspectiveCorrectionEnabled
パラメータ:
isOn - オンならば true を、オフならば false を指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
UIException - グループ内(ネストしているものも含む)の 描画可能な3Dオブジェクト のいずれかが既に dispose() されている場合に発生します (ILLEGAL_STATE)。

setBlendMode

public void setBlendMode(int mode)

参照を保持している 描画可能な3Dオブジェクト すべてに、図形用ブレンドモードを設定します。

具体的には、参照を保持している 描画可能な3Dオブジェクト のすべてについて、 DrawableObject3D.setBlendMode(int) メソッドを呼び出します。 従って、グループがネストしているときにも、再帰的にすべての 描画可能な3DオブジェクトDrawableObject3D.setBlendMode(int) メソッドが呼ばれます。

グループ内(ネストしているものも含む)の 描画可能な3Dオブジェクト のいずれかが既に dispose() されている場合には、 DrawableObject3D.setBlendMode(int) メソッドを全く呼び出さずに、例外を発生して終了します。

定義:
クラス DrawableObject3D 内の setBlendMode
パラメータ:
mode - ブレンドモードを指定します。 DrawableObject3D.BLEND_NORMAL, DrawableObject3D.BLEND_ALPHA, DrawableObject3D.BLEND_ADD のいずれかを指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
IllegalArgumentException - 引数 mode が DrawableObject3D.BLEND_NORMAL, DrawableObject3D.BLEND_ALPHA, DrawableObject3D.BLEND_ADD, のいずれでもない場合に発生します。
UIException - グループ内(ネストしているものも含む)の 描画可能な3Dオブジェクト のいずれかが既に dispose() されている場合に発生します (ILLEGAL_STATE)。

setTransparency

public void setTransparency(float v)

参照を保持している 描画可能な3Dオブジェクト すべてに、透明度を設定します。

具体的には、参照を保持している 描画可能な3Dオブジェクト のすべてについて、 DrawableObject3D.setTransparency(float) メソッドを呼び出します。 従って、グループがネストしているときにも、再帰的にすべての 描画可能な3DオブジェクトDrawableObject3D.setTransparency(float) メソッドが呼ばれます。

グループ内(ネストしているものも含む)の 描画可能な3Dオブジェクト のいずれかが既に dispose() されている場合には、 DrawableObject3D.setTransparency(float) メソッドを全く呼び出さずに、例外を発生して終了します。

定義:
クラス DrawableObject3D 内の setTransparency
パラメータ:
v - 透明度をパーセントで指定します。 100 のときが不透明です。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
IllegalArgumentException - 引数 v が Float.NaNの場合、 0 未満の場合、あるいは 100 より大きい場合に発生します。
UIException - グループ内(ネストしているものも含む)の 描画可能な3Dオブジェクト のいずれかが既に dispose() されている場合に発生します (ILLEGAL_STATE)。