|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.opt.ui.eruption.Object3D
com.docomostar.opt.ui.eruption.IndexBuffer
public final class IndexBuffer
VertexBuffer とともに用いて Figure 内のサブメッシュを構成するクラスです。
IndexBuffer はインデックス情報を保持し、VertexBuffer が頂点情報を保持することでサブメッシュを構成します。
サブメッシュは連続するインデックスをひとまとまりにした、より細かい単位であるストリップに分解できますが、Appearance やGeometricShape は IndexBuffer に対して関連付けられるため、
サブメッシュがプログラム上におけるモデルデータの処理単位となっています。また、IndexBuffer は Figure を用いずに VertexBuffer との対で描画することもできます。
IndexBuffer は VertexBuffer が持つ頂点情報に対して、どの頂点をどのような順序で使用して自身が表すサブメッシュが構成されるのかを表します。その際、頂点の並びを点、線、三角形、スプライトのうち、
どれに解釈するかという情報も持っています。ここで、三角形は面を構成するため裏表が存在し、MascotCapsule eruption においてはインデックスが反時計回りになる側をポリゴンの表としています。
ポリゴンの裏表の概念は Appearance.setCullingMode(int) 等で用います。
IndexBuffer には最初の頂点と長さだけを指定し、最初の頂点から長さ分だけ連続して頂点を取得する暗黙的インデックスと、
使用する全ての頂点の位置を示す明示的インデックスの 2 通りのインデクシング方式をとることができ、そのどちらを用いるかは IndexBuffer の生成時に選択します。
なお、生成後のIndexBuffer は保持するインデックス情報が変更可能になっていますが、 Figure の構成要素として用いる際には事前に fix() を用いて内容を変更不可にしておく必要があります。
端末によって、本クラスはサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点で UnsupportedOperationException が発生します。
| フィールドの概要 | |
|---|---|
static int |
MCE_LINE_STRIP
線(ストリップ)を表します(=3)。 |
static int |
MCE_LINES
線を表します(=2)。 |
static int |
MCE_POINTS
点を表します(=1)。 |
static int |
MCE_SPRITES
スプライトを表します(=7)。 |
static int |
MCE_TRIANGLE_FAN
三角形(ファン)を表します(=6)。 |
static int |
MCE_TRIANGLE_STRIP
三角形(ストリップ)を表します(=5)。 |
static int |
MCE_TRIANGLES
三角形を表します(=4)。 |
| コンストラクタの概要 | |
|---|---|
IndexBuffer(int stripLengthsNum)
暗黙的 IndexBuffer を生成します。 |
|
IndexBuffer(int stripLengthsNum,
int indicesNum)
明示的 IndexBuffer を生成します。 |
|
| メソッドの概要 | |
|---|---|
void |
fix()
IndexBuffer を書込み禁止状態 (fix状態) にします。 |
Appearance |
getAppearance()
Appearance を取得します。 |
GeometricShape |
getGeometricShape(int type)
GeometricShape を取得します。 |
int |
getIndexLengths(int[] result)
ストリップ数と各ストリップ長を取得します。 |
int |
getIndexType()
インデックスタイプを取得します。 |
int |
getIndices(short[] result)
インデックスを取得します。 |
int |
getPolygonCount()
ポリゴン数を取得します。 |
int |
getUserData(int index)
ユーザデータを取得します。 |
boolean |
isConvertStrip()
TriangleStrip がリスト化されているかを検査します。 |
boolean |
isFix()
fix 状態であるかを検査します。 |
void |
set(int type,
int[] stripLengths,
short[] indices)
明示インデックスを設定します。 |
void |
set(int type,
int firstIndex,
int[] stripLengths)
暗黙インデックスを設定します (実際にはインデックスの長さのみ指定します)。 |
void |
setAppearance(Appearance appearance)
Appearance を設定します。 |
void |
setGeometricShape(GeometricShape gs)
GeometricShape を設定します。 |
void |
setUserData(int firstIndex,
int[] data,
int start,
int num)
三角形のポリゴンに対してユーザデータを設定します。 |
| クラス com.docomostar.opt.ui.eruption.Object3D から継承されたメソッド |
|---|
dispose, equals, findObject3D, findObject3D, getClassType, getUserId, hashCode, isDisposed, isRenderEnable, setRenderEnable, setUserId |
| クラス Object から継承されたメソッド |
|---|
getClass, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final int MCE_POINTS
public static final int MCE_LINES
public static final int MCE_LINE_STRIP
public static final int MCE_TRIANGLES
public static final int MCE_TRIANGLE_STRIP
public static final int MCE_TRIANGLE_FAN
public static final int MCE_SPRITES
| コンストラクタの詳細 |
|---|
public IndexBuffer(int stripLengthsNum,
int indicesNum)
IndexBuffer を生成します。
生成時は unfix 状態となります。初期値は以下の通りです。
null
Appearance : null
GeometricShape : null
stripLengthsNum - ストリップ長を格納する領域の個数を指定します。indicesNum - 格納するインデックスの長さを指定します。この長さは格納するストリップの長さの合計になります。MCE_SPRITES の種別を格納する場合には必要量の 6 倍の長さを指定する必要があります。
IllegalArgumentException -
stripLengthsNum が [1, 32767] 以外の場合に発生します。
IllegalArgumentException -
indicesNum が [1, 65535] 以外の場合に発生します。public IndexBuffer(int stripLengthsNum)
IndexBuffer を生成します。
実際には STRIP の長さのみを格納します。頂点の並び順が STRIP である事を前提とします。
生成時は unfix 状態となります。
stripLengthsNum - ストリップ長を格納する領域の個数を指定します。
IllegalArgumentException -
stripLengthsNum が [1, 32767] 以外の場合に発生します。| メソッドの詳細 |
|---|
public final void set(int type,
int[] stripLengths,
short[] indices)
ミニマム長は、点とスプライトが 1、線が 2、三角形が 3 になります。
type - インデックスの種別を指定します。指定できる値は、以下の通りです。
MCE_POINTS
MCE_LINES
MCE_LINE_STRIP
MCE_TRIANGLES
MCE_TRIANGLE_STRIP
MCE_TRIANGLE_FAN
MCE_SPRITES
stripLengths - インデックスの長さを配列で指定します。indices - インデックスを配列で指定します。
NullPointerException -
stripLengths が null の場合に発生します。
NullPointerException -
indices が null の場合に発生します。
IllegalArgumentException -
type が不正な場合に発生します。
IllegalArgumentException -
stripLengths.length が [1, 32767] 以外の場合に発生します。
IllegalArgumentException -
indices.length が [1, 65535] 以外の場合に発生します。
IllegalArgumentException -
stripLengths の要素にミニマム長を下回るものが存在する。又は 65535 を越えるものが存在する場合に発生します。
IllegalArgumentException -
IndexBuffer の格納サイズを超えた場合に発生します。
IllegalArgumentException -
IndexBuffer に対してこのメソッドを使用した場合に発生します。
com.docomostar.lang.IllegalStateException -
IndexBuffer が既に fix されている場合に発生します。
IllegalArgumentException -
indices の要素のいずれかの値が 0 未満の場合に発生します。
public final void set(int type,
int firstIndex,
int[] stripLengths)
ミニマム長は、点とスプライトが 1、線が 2、三角形が 3 になります。
type - インデックスの種別を指定します。指定できる値は、以下の通りです。
MCE_POINTS
MCE_LINES
MCE_LINE_STRIP
MCE_TRIANGLES
MCE_TRIANGLE_STRIP
MCE_TRIANGLE_FAN
MCE_SPRITES
firstIndex - インデックスの開始位置を指定します。組合わせた VertexBuffer のこの位置から暗黙インデックスの適用を開始します。stripLengths - インデックスの長さを配列で指定します。
NullPointerException -
stripLengths が null の場合に発生します。
IllegalArgumentException -
type が不正な場合に発生します。
IllegalArgumentException -
stripLengths.length が [1, 32767] 以外の場合に発生します。
IndexOutOfBoundsException -
firstIndexが 0 未満の場合に発生します。
IllegalArgumentException -
stripLengths の要素にミニマム長を下回るものが存在する。又は 65535 を越えるものが存在する場合に発生します。
IndexOutOfBoundsException -
IllegalArgumentException -
IndexBuffer の格納サイズを超えた場合に発生します。
IllegalArgumentException -
IndexBuffer に対してこのメソッドを使用した場合に発生します。
com.docomostar.lang.IllegalStateException -
IndexBuffer が既に fix されている場合に発生します。public final void fix()
IndexBuffer を書込み禁止状態 (fix状態) にします。
一度書込み禁止にすると最適化情報を生成するため元には戻せません。
Figure に使用する場合には書込み禁止状態にする必要があります。
public final boolean isFix()
fix 状態であるかを検査します。
fix されている - true
fix されていない - false
public final int getIndexLengths(int[] result)
result - ストリップ長の格納先となる配列を指定します。nullにすることで、ストリップ数のみの取得ができます。
public final boolean isConvertStrip()
TriangleStrip がリスト化されているかを検査します。
MCM ファイルのロード時に 短いストリップをリスト化します。
この API が true を返す場合には getIndexLengths(int[]) で取得した最後の個数に該当するインデックスはリスト化されています。
true
MCE_TRIANGLE_STRIP以外の場合 - false
public final int getIndices(short[] result)
result - インデックスの格納先となる配列を指定します。nullにすることで、インデックスの個数のみの取得ができます。
public final int getPolygonCount()
public final int getIndexType()
public final void setUserData(int firstIndex,
int[] data,
int start,
int num)
firstIndex - ユーザデータ先頭のインデックスを指定します。data - 設定するデータの配列を指定します。start - 設定するデータの開始位置を指定します。num - 設定するデータ数を指定します。
NullPointerException -
data が null の場合に発生します。
IndexOutOfBoundsException -
firstIndex < 0、もしくは firstIndex がポリゴン数以上の場合に発生します。
IndexOutOfBoundsException -
num <= 0、もしくは firstIndex + num がポリゴン数を超える場合に発生します。
IndexOutOfBoundsException -
start < 0、もしくは start が data.length を超える場合に発生します。
IndexOutOfBoundsException -
start + num が data.length を超える場合に発生します。
com.docomostar.lang.IllegalStateException -
MCE_TRIANGLES, MCE_TRIANGLE_STRIP, MCE_TRIANGLE_FAN 以外) である場合に発生します。public final int getUserData(int index)
index - ユーザデータのインデックスを指定します。
IndexOutOfBoundsException -
index < 0、もしくは index がポリゴン数以上の場合に発生します。
com.docomostar.lang.IllegalStateException -
public final void setAppearance(Appearance appearance)
Appearance を設定します。
appearance - 設定する Appearance を指定します。public final Appearance getAppearance()
Appearance を取得します。
Appearance を返します。public final void setGeometricShape(GeometricShape gs)
GeometricShape を設定します。
gs - GeometricShape オブジェクトを指定します。
IllegalArgumentException -
gs の型が GeometricShape.MCE_GEOMETRICSHAPE_TYPE_SPHERE 以外の場合に発生します。
IllegalArgumentException -
gs が既に他の Figure や IndexBuffer に設定されている場合に発生します。public final GeometricShape getGeometricShape(int type)
GeometricShape を取得します。
type - 取得する GeometricShape のタイプを指定します。指定できる値は、以下の通りです。
GeometricShape.MCE_GEOMETRICSHAPE_TYPE_SPHERE_AUTO
GeometricShape.MCE_GEOMETRICSHAPE_TYPE_SPHERE
GeometricShape オブジェクトを返します。
IllegalArgumentException -
type が不正な場合に発生します。
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
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ドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。