|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Object | +--com.nttdocomo.opt.ui.j3d.PrimitiveArray
プリミティブ描画に用いる頂点情報等を格納するプリミティブ配列クラスを定義します。
プリミティブ配列には、頂点・法線・色・テクスチャ座標・ポイントスプライト情報をそれぞれ配列として格納することができます。
プリミティブ配列は必ず頂点情報を持ちますが、
それ以外の情報については個別に格納するかどうかを指定することができます。
プリミティブの型ごとのプリミティブ情報と配列の対応は以下の表のようになります。
なお、各プリミティブ情報の値の範囲や制限等については、このクラスで定義されている各プリミティブ情報の配列を取得するメソッドの説明を参照してください。
PRIMITIVE_POINTS
)
プリミティブ情報 パラメータの値 配列のフォーマット 頂点 ---- プリミティブ一個につき頂点一個を格納します。頂点一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 3 となります。 法線情報 ---- 使用しません。 色情報
COLOR_NONE
なし。 COLOR_PER_COMMAND
プリミティブの個数に関わらず、共通に使われる色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さは常に 1 となります。 COLOR_PER_FACE
プリミティブ一個につき色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さはプリミティブ数 x 1 となります。 テクスチャ座標情報 ---- 使用しません。 ポイントスプライト情報 ---- 使用しません。 PRIMITIVE_LINES
)
プリミティブ情報 パラメータの値 配列のフォーマット 頂点 ---- プリミティブ一個につき頂点二個を格納します。頂点一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 6 となります。 法線情報 ---- 使用しません。 色情報
COLOR_NONE
なし。 COLOR_PER_COMMAND
プリミティブの個数に関わらず、共通に使われる色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さは常に 1 となります。 COLOR_PER_FACE
プリミティブ一個につき色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さはプリミティブ数 x 1 となります。 テクスチャ座標情報 ---- 使用しません。 ポイントスプライト情報 ---- 使用しません。 PRIMITIVE_TRIANGLES
)
プリミティブ情報 パラメータの値 配列のフォーマット 頂点 ---- プリミティブ一個につき頂点三個を格納します。頂点一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 9 となります。 法線情報
NORMAL_NONE
なし。 NORMAL_PER_FACE
プリミティブ一個につき法線情報一個を格納します。法線情報一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 3 となります。 NORMAL_PER_VERTEX
プリミティブ一個につき法線情報三個(頂点一個につき法線情報一個)を格納します。法線情報一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 9 となります。 色情報
COLOR_NONE
なし。 COLOR_PER_COMMAND
プリミティブの個数に関わらず、共通に使われる色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さは常に 1 となります。 COLOR_PER_FACE
プリミティブ一個につき色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さはプリミティブ数 x 1 となります。 テクスチャ座標情報
TEXTURE_COORD_NONE
なし。 TEXTURE_COORD_PER_VERTEX
プリミティブ一個につきテクスチャ座標情報三個(頂点一個につきテクスチャ座標一個)を格納します。テクスチャ座標情報一個につき(u, v)の順で二個の整数値を格納しますので、配列の長さはプリミティブ数 x 6 となります。 ポイントスプライト情報 ---- 使用しません。 PRIMITIVE_QUADS
)
プリミティブ情報 パラメータの値 配列のフォーマット 頂点 ---- プリミティブ一個につき頂点四個を格納します。頂点一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 12 となります。 法線情報
NORMAL_NONE
なし。 NORMAL_PER_FACE
プリミティブ一個につき法線情報一個を格納します。法線情報一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 3 となります。 NORMAL_PER_VERTEX
プリミティブ一個につき法線情報四個(頂点一個につき法線情報一個)を格納します。法線情報一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 12 となります。 色情報
COLOR_NONE
なし。 COLOR_PER_COMMAND
プリミティブの個数に関わらず、共通に使われる色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さは常に 1 となります。 COLOR_PER_FACE
プリミティブ一個につき色情報一個を格納します。色情報一個につきRGB値を表す一個の整数値を格納しますので、配列の長さはプリミティブ数 x 1 となります。 テクスチャ座標情報
TEXTURE_COORD_NONE
なし。 TEXTURE_COORD_PER_VERTEX
プリミティブ一個につきテクスチャ座標情報四個(頂点一個につきテクスチャ座標一個)を格納します。テクスチャ座標情報一個につき(u, v)の順で二個の整数値を格納しますので、配列の長さはプリミティブ数 x 8 となります。 ポイントスプライト情報 ---- 使用しません。 PRIMITIVE_POINT_SPRITES
)
プリミティブ情報 パラメータの値 配列のフォーマット 頂点 ---- プリミティブ一個につき頂点一個を格納します。頂点一個につき(x, y, z)の順で三個の整数値を格納しますので、配列の長さはプリミティブ数 x 3 となります。 法線情報 ---- 使用しません。 色情報 ---- 使用しません。 テクスチャ座標情報 ---- 使用しません。 ポイントスプライト情報
POINT_SPRITE_PER_COMMAND
プリミティブの個数に関わらず、共通に使われるプリミティブ情報一個を格納します。ポイントスプライト情報一個につき、ポイントスプライトの幅・高さ・回転角・ポイントスプライトの左上に対応するテクスチャ位置情報(u0, v0)・右下に対応するテクスチャ位置情報(u1, v1)・表示フラグの八個の整数値を格納しますので、配列の長さは常に 8 となります。 POINT_SPRITE_PER_VERTEX
プリミティブ一個につきポイントスプライト情報一個を格納します。ポイントスプライト情報一個につき、ポイントスプライトの幅・高さ・回転角・ポイントスプライトの左上に対応するテクスチャ位置情報(u0, v0)・右下に対応するテクスチャ位置情報(u1, v1)・フラグの八個の整数値を格納しますので、配列の長さはプリミティブ数 x 8 となります。
コンストラクタの概要 | |
PrimitiveArray(int type,
int param,
int n)
プリミティブ配列オブジェクトを生成します。 |
メソッドの概要 | |
int[] |
getColorArray()
格納されている色情報配列を取得します。 |
int[] |
getNormalArray()
格納されている法線情報配列を取得します。 |
int |
getParam()
格納されているプリミティブ情報の種類を取得します。 |
int[] |
getPointSpriteArray()
格納されているポイントスプライト情報配列を取得します。 |
int[] |
getTextureCoordArray()
格納されているテクスチャ座標情報配列を取得します。 |
int |
getType()
格納されているプリミティブの型を取得します。 |
int[] |
getVertexArray()
格納されている頂点情報配列を取得します。 |
int |
size()
格納されているプリミティブの数を取得します。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public PrimitiveArray(int type, int param, int n)
プリミティブの型は、
PRIMITIVE_POINTS
,
PRIMITIVE_LINES
,
PRIMITIVE_TRIANGLES
,
PRIMITIVE_QUADS
,
PRIMITIVE_POINT_SPRITES
のいずれかを指定します。
プリミティブ情報のうち、頂点情報は全てのプリミティブ配列オブジェクトに格納できるため、
明示的に指定する必要はありません。
それ以外の、頂点・法線・色・テクスチャ座標・ポイントスプライト情報は、
格納するかどうかを個別に指定可能です。
ただし、色情報とテクスチャ座標情報とを同時に指定することはできません。
プリミティブ情報の種類は、
NORMAL_NONE
,
NORMAL_PER_FACE
,
NORMAL_PER_VERTEX
,
COLOR_NONE
,
COLOR_PER_COMMAND
,
COLOR_PER_FACE
,
TEXTURE_COORD_NONE
,
TEXTURE_COORD_PER_VERTEX
,
POINT_SPRITE_PER_COMMAND
,
POINT_SPRITE_PER_VERTEX
を論理和で組み合わせて指定します。
プリミティブ数は、255 個までのプリミティブを一つのプリミティブ配列オブジェクトに格納することができます。
生成直後は全要素の全成分が 0 に初期化されています。
type
- 格納するプリミティブの型を指定します。param
- 格納するプリミティブ情報の種類を指定します。n
- プリミティブの数を指定します。
IllegalArgumentException
- 引数 type に不正な値が指定された場合に発生します。
IllegalArgumentException
- 引数 type に対して、param に不正な組み合わせの値が指定された場合に発生します。
IllegalArgumentException
- 引数 n に 0 以下の値または 256 以上の値が指定された場合に発生します。
メソッドの詳細 |
public int getType()
public int getParam()
public int size()
public int[] getVertexArray()
頂点情報の xi, yi, zi の値は、 -32768 以上で、32767 以下でなければなりません。
public int[] getNormalArray()
法線情報の xi, yi, zi の値は、ベクトルの長さが 4096 に正規化されていなければなりません。 ベクトルの長さが 4096 に正規化されていない場合のレンダリング結果は機種依存です。
public int[] getColorArray()
public int[] getTextureCoordArray()
テクスチャ座標情報の ui, vi の値は、 0 以上で、テクスチャのイメージの幅および高さより小さくなければなりません。
public int[] getPointSpriteArray()
ポイントスプライト情報の anglei の値は、4096 分周円表現で、時計回りの回転角を指定します。
実際には (anglei & 0x0fff) の値が回転角として使用されます。
u0i, v0i, u1i, v1i の値は、
0 以上で、テクスチャのイメージの幅および高さより小さくなければなりません。
flagi の値は、
POINT_SPRITE_FLAG_LOCAL_SIZE
,
POINT_SPRITE_FLAG_PIXEL_SIZE
,
POINT_SPRITE_FLAG_PERSPECTIVE
,
POINT_SPRITE_FLAG_NO_PERSPECTIVE
を論理和で組み合わせて指定します。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
NTT DoCoMo,Inc.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。