com.nttdocomo.opt.ui.j3d
クラス PrimitiveArray

Object
  |
  +--com.nttdocomo.opt.ui.j3d.PrimitiveArray

public class PrimitiveArray
extends Object

プリミティブ描画に用いる頂点情報等を格納するプリミティブ配列クラスを定義します。 プリミティブ配列には、頂点・法線・色・テクスチャ座標・ポイントスプライト情報をそれぞれ配列として格納することができます。 プリミティブ配列は必ず頂点情報を持ちますが、 それ以外の情報については個別に格納するかどうかを指定することができます。

プリミティブの型ごとのプリミティブ情報と配列の対応は以下の表のようになります。 なお、各プリミティブ情報の値の範囲や制限等については、このクラスで定義されている各プリミティブ情報の配列を取得するメソッドの説明を参照してください。

導入されたバージョン:
DoJa-3.0

コンストラクタの概要
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
 

コンストラクタの詳細

PrimitiveArray

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 以上の値が指定された場合に発生します。
メソッドの詳細

getType

public int getType()
格納されているプリミティブの型を取得します。

戻り値:
プリミティブ配列のプリミティブの型を返します。

getParam

public int getParam()
格納されているプリミティブ情報の種類を取得します。

戻り値:
プリミティブ配列のプリミティブ情報の種類を返します。

size

public int size()
格納されているプリミティブの数を取得します。

戻り値:
プリミティブ配列のプリミティブの数を返します。

getVertexArray

public int[] getVertexArray()
格納されている頂点情報配列を取得します。
頂点情報配列は、{x0, y0, z0, x1, y1, z1, …} という順番で頂点座標が格納された int 型の配列です。 この配列の値を読み書きすることで、プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

頂点情報の xi, yi, zi の値は、 -32768 以上で、32767 以下でなければなりません。

戻り値:
頂点情報配列を返します。

getNormalArray

public int[] getNormalArray()
格納されている法線情報配列を取得します。
法線情報配列は、{x0, y0, z0, x1, y1, z1, …} という順番で法線情報が格納された int 型の配列です。 この配列の値を読み書きすることで、プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

法線情報の xi, yi, zi の値は、ベクトルの長さが 4096 に正規化されていなければなりません。 ベクトルの長さが 4096 に正規化されていない場合のレンダリング結果は機種依存です。

戻り値:
法線情報配列を返します。 法線情報を持たないプリミティブ配列の場合は null を返します。

getColorArray

public int[] getColorArray()
格納されている色情報配列を取得します。
色情報配列は、{((r0 << 16) | (g0 << 8) | (b0)), ((r1 << 16) | (g1 << 8) | (b1)), …} という順番で色情報が格納された int 型の配列です。 この配列の値を読み書きすることで、プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

戻り値:
色情報配列を返します。 色情報を持たないプリミティブ配列の場合は null を返します。

getTextureCoordArray

public int[] getTextureCoordArray()
格納されているテクスチャ座標情報配列を取得します。
テクスチャ座標情報配列は、{u0, v0, u1, v1, …} という順番でテクスチャ座標情報が格納された int 型の配列です。 この配列の値を読み書きすることで、プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

テクスチャ座標情報の ui, vi の値は、 0 以上で、テクスチャのイメージの幅および高さより小さくなければなりません。

戻り値:
テクスチャ座標情報配列を返します。 テクスチャ座標情報を持たないプリミティブ配列の場合は null を返します。

getPointSpriteArray

public int[] getPointSpriteArray()
格納されているポイントスプライト情報配列を取得します。
ポイントスプライト情報配列は、{w0, h0, angle0, u00, v00, u10, v10, flag0, w1, h1, angle1, u01, v01, u11, v11, flag1, …} という順番でポイントスプライト情報が格納された int 型の配列です。 この配列の値を読み書きすることで、プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

ポイントスプライト情報の 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 を論理和で組み合わせて指定します。

戻り値:
ポイントスプライト情報配列を返します。 ポイントスプライト情報を持たないプリミティブ配列の場合は null を返します。


NTT DoCoMo,Inc.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。