|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.opt.ui.eruption.Object3D
com.docomostar.opt.ui.eruption.VertexBuffer
public final class VertexBuffer
頂点データを集約するクラスです。
VertexBuffer 単体では頂点同士の関係を持ちませんが、一つ以上の IndexBuffer と組み合わせて自身の持つ情報がどのような形状であるのかという意味を持ちます。
頂点データの種類には位置、法線、バイノーマル、タンジェント、色、Texture0、 Texture1、ポイントスプライトがありますが、VertexBuffer の生成時にどの情報を持たせるかを指定します。
それぞれの情報は内部的に一次元配列の形で保持されていますが、アクセスは配列を介して行います。このとき、情報ごとに内部で保持する配列のサイズは異なります。位置、法線、バイノーマル、
タンジェントでは頂点数 * 3、色では頂点数 * 1、Texture0、Texture1 では頂点数 * 2、ポイントスプライトでは頂点数 * 7 がそれぞれの配列サイズになります。またポイントスプライトには 0 枚目のテクスチャのみが適用できます。
ポイントスプライトを使用する際に、各ポイントスプライトに対して指定するポイントスプライト情報は、順に幅の半分、高さの半分、反時計回り方向の回転角、および左、上、右、下のテクスチャ座標の計 7 つです。
ただし、すべてのポイントスプライトに単一のポイントスプライト情報を適用することもできます。
ポイントスプライトに対しては 0 枚目のテクスチャのみが適用されます。
端末によって、本クラスはサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点で UnsupportedOperationException が発生します。
| フィールドの概要 | |
|---|---|
static int |
MCE_BINORMAL
バイノーマル情報を表します(=0x00000004)。 |
static int |
MCE_COLOR
色情報を表します(=0x00000010)。 |
static int |
MCE_COORDTYPE_COORD
頂点配列のコンポネントタイプ:float 型, fixed 型を表します(=0)。 |
static int |
MCE_COORDTYPE_INT
頂点配列のコンポネントタイプ:int 型を表します(=2)。 |
static int |
MCE_COORDTYPE_SHORT
頂点配列のコンポネントタイプ:short 型を表します(=3)。 |
static int |
MCE_NORMAL
ノーマル情報を表します(=0x00000002)。 |
static int |
MCE_POSITION
位置情報を表します(=0x00000001)。 |
static int |
MCE_SPRITE
ポイントスプライト情報を表します(=0x00000080)。 |
static int |
MCE_SPRITE_PER_OBJ
すべてのポイントスプライトに 1 つのポイントスプライト情報を使用します(=0x01000000)。 |
static int |
MCE_TANGENT
タンジェント情報を表します(=0x00000008)。 |
static int |
MCE_TEXTURE2D_0
Texture0 情報を表します(=0x00000020)。 |
static int |
MCE_TEXTURE2D_1
Texture1 情報を表します(=0x00000040)。 |
static int |
MCE_TEXTURECOORDF_0
Texture0 情報を float 型で表します(=0x00100000)。 |
static int |
MCE_TEXTURECOORDF_1
Texture1 情報を float 型で表します(=0x00200000)。 |
| コンストラクタの概要 | |
|---|---|
VertexBuffer(int params,
int num)
VertexBuffer を生成します。 |
|
| メソッドの概要 | |
|---|---|
void |
dispose()
Native資源を破棄します。 |
int |
getMaxVerticesNum()
すべての頂点情報で最大の頂点数を取得します。 |
int |
getParams()
VertexBuffer 生成時に指定したパラメータを取得します。 |
void |
getTexCoordScale(int flags,
float[] scaleBias)
テクスチャ座標のスケールと移動成分を取得します。 |
void |
getVertices(int flags,
int firstIndex,
byte[] data,
int start,
int num)
頂点情報(byte)を取得します。 |
void |
getVertices(int flags,
int firstIndex,
float[] data,
int start,
int num)
頂点情報(float)を取得します。 |
void |
getVertices(int flags,
int firstIndex,
short[] data,
int start,
int num)
頂点情報(short)を取得します。 |
Object |
getVerticesArray(int flags)
頂点配列を取得します。 |
int |
getVerticesComponentNum(int flags)
flags で指定した頂点配列のコンポネント数を取得します。 |
int |
getVerticesComponentType(int flags)
flags で指定した頂点配列のコンポネントタイプを取得します。 |
int |
getVerticesNum(int params)
指定されたパラメータの頂点数を取得します。 |
void |
multiVertexColors(float a,
float b,
float g,
float r)
頂点カラーの割合を設定します。 |
boolean |
pick(IndexBuffer ib,
Graphics3D g3d,
int xp,
int yp,
IntersectionAttributes attr,
int targetFlag,
boolean isAllPick,
Transform toWorld)
ピック処理を行います。 |
boolean |
pick(IndexBuffer ib,
Vector3D origin,
Vector3D direction,
IntersectionAttributes attr,
int targetFlag,
boolean isAllPick,
Transform toWorld)
ピック処理を行います。 |
void |
setTexCoordScale(int flags,
float scale,
float[] bias)
テクスチャ座標のスケールと移動成分を設定します。 |
void |
setVertices(int flags,
int firstIndex,
byte[] data,
int start,
int num)
頂点情報(byte)を設定します。 |
void |
setVertices(int flags,
int firstIndex,
float[] data,
int start,
int num)
頂点情報(float)を設定します。 |
void |
setVertices(int flags,
int firstIndex,
short[] data,
int start,
int num)
頂点情報(short)を設定します。 |
void |
updateVertices(int flags)
フラグで指定した頂点配列を更新します。 |
| クラス com.docomostar.opt.ui.eruption.Object3D から継承されたメソッド |
|---|
equals, findObject3D, findObject3D, getClassType, getUserId, hashCode, isDisposed, isRenderEnable, setRenderEnable, setUserId |
| クラス Object から継承されたメソッド |
|---|
getClass, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final int MCE_POSITION
public static final int MCE_NORMAL
public static final int MCE_BINORMAL
public static final int MCE_TANGENT
public static final int MCE_COLOR
public static final int MCE_TEXTURE2D_0
public static final int MCE_TEXTURE2D_1
public static final int MCE_SPRITE
public static final int MCE_SPRITE_PER_OBJ
public static final int MCE_TEXTURECOORDF_0
public static final int MCE_TEXTURECOORDF_1
public static final int MCE_COORDTYPE_COORD
public static final int MCE_COORDTYPE_INT
public static final int MCE_COORDTYPE_SHORT
| コンストラクタの詳細 |
|---|
public VertexBuffer(int params,
int num)
VertexBuffer を生成します。
初期値は以下の通りです。
params - パラメータを指定します。指定できる値は、以下の通りです(複数指定可)。
MCE_POSITION
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_COLOR
MCE_TEXTURE2D_0、Texture0情報をfloat型にする場合は MCE_TEXTURECOORDF_0 も指定します。
MCE_TEXTURE2D_1、Texture1情報をfloat型にする場合は MCE_TEXTURECOORDF_1 も指定します。
MCE_SPRITE、すべてのポイントスプライトに 1 つのポイントスプライト情報を使用する場合は MCE_SPRITE_PER_OBJ も指定します。
MCE_SPRITE_PER_OBJ は MCE_SPRITE と、MCE_TEXTURECOORDF_0 は MCE_TEXTURE2D_0 と、
MCE_TEXTURECOORDF_1 は MCE_TEXTURE2D_1 と共に用いる必要があります。MCE_SPRITE_PER_OBJ を使用した場合、This が表すポイントスプライトすべてに対して 0 番目のポイントスプライト情報が適用されます。num - 頂点数を指定します。
IllegalArgumentException -
IllegalArgumentException -
MCE_NORMAL 指定なし、かつ MCE_BINORMAL/MCE_TANGENT が指定されている場合に発生します。
IllegalArgumentException -
MCE_SPRITE 指定時、MCE_NORMAL、MCE_BINORMAL、MCE_TANGENT、MCE_TEXTURE2D_0、MCE_TEXTURE2D_1 のいずれかがが指定されている場合に発生します。
IllegalArgumentException -
| メソッドの詳細 |
|---|
public final int getVerticesComponentNum(int flags)
flags で指定した頂点配列のコンポネント数を取得します。
flags - 頂点配列を指定します。:指定できる値は、以下の通りです。
MCE_POSITION
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_COLOR
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
MCE_SPRITE
IllegalArgumentException -
flags に不正な値を指定した時、もしくはこの VertexBuffer に存在しない頂点配列を指定した場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。public final int getVerticesComponentType(int flags)
flags で指定した頂点配列のコンポネントタイプを取得します。
flags - 頂点配列を指定します。:指定できる値は、以下の通りです。
MCE_POSITION
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_COLOR
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
MCE_SPRITE
MCE_COORDTYPE_COORD
MCE_COORDTYPE_INT
MCE_COORDTYPE_SHORT
IllegalArgumentException -
flags に不正な値を指定した時、もしくはこの VertexBuffer に存在しない頂点配列を指定した場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
public final void setVertices(int flags,
int firstIndex,
float[] data,
int start,
int num)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_POSITION
MCE_SPRITE
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
firstIndex - 最初のインデックスを指定します。data - 設定する頂点情報の配列を指定します。 1 つのデータにつき指定できる値は、以下の通りです。
start - dataで使用する最初のインデックスを指定します。num - 設定する頂点数を指定します。
NullPointerException -
data が null の場合に発生します。
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
IllegalArgumentException -
IndexOutOfBoundsException -
firstIndexが[0, 頂点数 - 1] 以外の場合に発生します。
IndexOutOfBoundsException -
num が 0 以下、または firstIndex + num が頂点数を超える場合に発生します。
public final void getVertices(int flags,
int firstIndex,
float[] data,
int start,
int num)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_POSITION
MCE_SPRITE
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
firstIndex - 最初のインデックスを指定します。data - 頂点情報を格納する配列を指定します。start - dataで使用する最初のインデックスを指定します。num - 取得する頂点数を指定します。
NullPointerException -
data が null の場合に発生します。
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
IllegalArgumentException -
IndexOutOfBoundsException -
firstIndexが[0, 頂点数 - 1] 以外の場合に発生します。
IndexOutOfBoundsException -
num が 0 以下、または firstIndex + num が頂点数を超える場合に発生します。
public final void setVertices(int flags,
int firstIndex,
short[] data,
int start,
int num)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
firstIndex - 最初のインデックスを指定します。data - 設定する頂点情報の配列を指定します。1 つのデータにつき以下の要素を指定します。
start - dataで使用する最初のインデックスを指定します。num - 設定する頂点数を指定します。
NullPointerException -
data が null の場合に発生します。
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
IllegalArgumentException -
IndexOutOfBoundsException -
firstIndexが[0, 頂点数 - 1] 以外の場合に発生します。
IndexOutOfBoundsException -
num が 0 以下、または firstIndex + num が頂点数を超える場合に発生します。
public final void getVertices(int flags,
int firstIndex,
short[] data,
int start,
int num)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
firstIndex - 最初のインデックスを指定します。data - 頂点情報を格納する配列を指定します。start - dataで使用する最初のインデックスを指定します。num - 取得する頂点数を指定します。
NullPointerException -
data が null の場合に発生します。
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
IllegalArgumentException -
IndexOutOfBoundsException -
firstIndexが[0, 頂点数 - 1] 以外の場合に発生します。
IndexOutOfBoundsException -
num が 0 以下、または firstIndex + num が頂点数を超える場合に発生します。
public final void setVertices(int flags,
int firstIndex,
byte[] data,
int start,
int num)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_COLOR
firstIndex - 最初のインデックスを指定します。data - 設定する頂点情報の配列を指定します。 1 つのデータにつき指定できる値は、以下の通りです。
0xRRGGBBAA の4要素
start - dataで使用する最初のインデックスを指定します。num - 設定する頂点数を指定します。
NullPointerException -
data が null の場合に発生します。
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
IndexOutOfBoundsException -
firstIndexが[0, 頂点数 - 1] 以外の場合に発生します。
IndexOutOfBoundsException -
num が 0 以下、または firstIndex + num が頂点数を超える場合に発生します。
public final void getVertices(int flags,
int firstIndex,
byte[] data,
int start,
int num)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_COLOR
firstIndex - 最初のインデックスを指定します。data - 頂点情報を格納する配列を指定します。start - dataで使用する最初のインデックスを指定します。num - 取得する頂点数を指定します。
NullPointerException -
data が null の場合に発生します。
IllegalArgumentException -
flags が複数指定されている場合に発生します。
IndexOutOfBoundsException -
firstIndexが[0, 頂点数 - 1] 以外の場合に発生します。
IndexOutOfBoundsException -
num が 0 以下、または firstIndex + num が頂点数を超える場合に発生します。public final Object getVerticesArray(int flags)
フラグで指定した頂点配列を取得します。取得した配列への変更は updateVertices(int) を呼ぶことで This に反映されます。
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_POSITION
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_COLOR
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
MCE_SPRITE
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。public final void updateVertices(int flags)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_POSITION
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_COLOR
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
MCE_SPRITE
IllegalArgumentException -
flags が複数指定されている場合に発生します。
com.docomostar.lang.IllegalStateException -
This が保持していない flags の場合に発生します。
public final void setTexCoordScale(int flags,
float scale,
float[] bias)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
scale - スケール値を指定します。bias - 移動成分の配列(x, y, z の順)を指定します。
NullPointerException -
bias が null の場合に発生します。
IllegalArgumentException -
flags が不正な場合に発生します。
public final void getTexCoordScale(int flags,
float[] scaleBias)
flags - フラグを指定します。指定できる値は、以下の通りです。
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
scaleBias - スケール値と移動成分を格納する配列(scale, bias.x, bias.y, bias.z の順)を指定します。
NullPointerException -
scaleBias が null の場合に発生します。
IllegalArgumentException -
flags が不正な場合に発生します。public final int getParams()
VertexBuffer 生成時に指定したパラメータを取得します。
public int getMaxVerticesNum()
public int getVerticesNum(int params)
params - パラメータを指定します。指定できる値は、以下の通りです。
MCE_POSITION
MCE_NORMAL
MCE_BINORMAL
MCE_TANGENT
MCE_COLOR
MCE_TEXTURE2D_0
MCE_TEXTURE2D_1
MCE_SPRITE
IllegalArgumentException -
params が複数指定されている場合に発生します。
IllegalArgumentException -
params が不正な場合に発生します。
public void multiVertexColors(float a,
float b,
float g,
float r)
a - アルファの割合を指定します。b - Blue の割合を指定します。g - Green の割合を指定します。r - Red の割合を指定します。
IllegalArgumentException -
a, b, g, r のいずれかが 0.0 未満の場合に発生します。
IllegalArgumentException -
This が色情報を持っていない場合に発生します。
public final boolean pick(IndexBuffer ib,
Vector3D origin,
Vector3D direction,
IntersectionAttributes attr,
int targetFlag,
boolean isAllPick,
Transform toWorld)
attr が nullの場合、ピック情報を取得しません。
targetFlag は組み合わせで用いることができますが、Pick.MCE_USE_ONLY_GS_PRUNING が優先されます。
ib - IndexBufferを指定します。origin - ピッキング線の原点座標を指定します。direction - ピッキング線の方向ベクトルを指定します。attr - 交点におけるピック情報を指定します。targetFlag - GeometricShape を用いた枝刈り法を指定します。指定できる値は、以下の通りです(複数指定可)。
GeometricShape がセットされている場合、GeometricShape を用いて事前に内部のメッシュに対してピック処理を行うかどうかの枝刈りを行う。 - Pick.MCE_USE_GS_PRUNING
GeometricShape を用いて事前に内部のメッシュに対してピック処理を行うかどうかの枝刈りを行う。GeometricShape がセットされていないメッシュに対してはピック処理を行わない。 - Pick.MCE_USE_ONLY_GS_PRUNING
isAllPick - 指定できる値は、以下の通りです。
true
false
toWorld - ワールド座標系への変換行列を指定します。
true
false
NullPointerException -
origin, direction のいずれかが null の場合に発生します。
NullPointerException -
ib が null の場合に発生します。
IllegalArgumentException -
ib が VertexBuffer の範囲外を指定している場合に発生します。
IllegalArgumentException -
public final boolean pick(IndexBuffer ib,
Graphics3D g3d,
int xp,
int yp,
IntersectionAttributes attr,
int targetFlag,
boolean isAllPick,
Transform toWorld)
attr が nullの場合、ピック情報を取得しません。
targetFlag は組み合わせで用いることができますが、Pick.MCE_USE_ONLY_GS_PRUNING が優先されます。
ib - IndexBufferを指定します。g3d - Graphics3Dを指定します。xp - ピックx座標(スクリーン座標)を指定します。yp - ピックy座標(スクリーン座標)を指定します。attr - 交点におけるピック情報を指定します。targetFlag - GeometricShape を用いた枝刈り法を指定します。指定できる値は、以下の通りです(複数指定可)。
GeometricShape がセットされている場合、GeometricShape を用いて事前に内部のメッシュに対してピック処理を行うかどうかの枝刈りを行う。 - Pick.MCE_USE_GS_PRUNING
GeometricShape を用いて事前に内部のメッシュに対してピック処理を行うかどうかの枝刈りを行う。GeometricShape がセットされていないメッシュに対してはピック処理を行わない。 - Pick.MCE_USE_ONLY_GS_PRUNING
isAllPick - 指定できる値は、以下の通りです。
true
false
toWorld - ワールド座標系への変換行列を指定します。
true
false
NullPointerException -
ib, g3d いずれかが null の場合に発生します。
com.docomostar.lang.IllegalStateException -
g3d に Camera オブジェクトが設定されていない場合に発生します。
IllegalArgumentException -
ib が VertexBuffer の範囲外を指定している場合に発生します。
com.docomostar.lang.IllegalStateException -
public final void dispose()
Object3D 内の dispose
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。