com.nttdocomo.ui.graphics3d
クラス Primitive

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

public class Primitive
extends DrawableObject3D

プリミティブ図形群の頂点データなどを保持する、 プリミティブクラスを定義します。

プリミティブオブジェクトは、レンダリング機能のメソッド Graphics3D.renderObject3D(DrawableObject3D, Transform) において、描画対象となるポリゴン等の形状に関する情報を保持します。

プリミティブオブジェクトは、以下のレンダリング用の情報を保持します。

各種パラメータは、初期状態では以下のようになります。
パラメータ初期状態
テクスチャ歪み補正 無効
setPerspectiveCorrectionEnabled(false) が呼ばれた状態
図形用ブレンドモード 無設定 ( DrawableObject3D.BLEND_NORMAL )
透明度 100 パーセント(不透明)

プリミティブオブジェクトの 透明度は、設定されている図形用ブレンドモードが DrawableObject3D.BLEND_ALPHA, DrawableObject3D.BLEND_ADD のどちらかのときに有効になります。 このとき、プリミティブの型のすべて (点・線・三角形・四角形・ポイントスプライト)に該当する図形 の描画について、設定されている透明度は影響を与えます。

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

プリミティブオブジェクトに、テクスチャ座標の情報を設定するときには、 一つの モデル用の テクスチャ オブジェクトを、 setTexture(Texture) メソッドにより 設定する必要があります。 一つのプリミティブオブジェクトが利用できる モデル用の テクスチャ オブジェクトはただ一つです。 初期状態では、テクスチャ オブジェクトは設定されていません。

setTime(int) メソッド呼び出しによって 現在時刻が変更されても、保持しているデータ内容は変化しません。

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

プリミティブオブジェクトを実際に描画するときは、 Graphics3D.renderObject3D(DrawableObject3D, Transform) メソッドを利用します。

ポリゴンのプリミティブ(三角形・四角形)に関して、特記事項を以下に 示します。

プリミティブ型のうち、ポリゴンではない特殊プリミティブ (点・線・ポイントスプライト)については、以下の制限事項があります。

カラーキーに関して、特記事項を以下に示します。

導入されたバージョン:
DoJa-4.0 (901i)
関連項目:
数値演算に関する共通の定義

フィールドの概要
static int COLOR_NONE
           プリミティブが色情報を持たないことを表します(=0)。
static int COLOR_PER_FACE
           プリミティブが面単位で色情報を持つことを表します (=0x0800)。
static int COLOR_PER_PRIMITIVE
           プリミティブが 同じ色情報を持つことを表します (=0x0400)。
static int NORMAL_NONE
           プリミティブが法線情報を持たないことを表します (=0)。
static int NORMAL_PER_FACE
           プリミティブが面単位で法線情報を持つことを表します (=0x0200)。
static int NORMAL_PER_VERTEX
           プリミティブが頂点単位で法線情報を持つことを表します (=0x0300)。
static int POINT_SPRITE_FLAG_LOCAL_SIZE
           モデル座標系でのサイズを指定することを表す ポイントスプライトフラグです(=0)。
static int POINT_SPRITE_FLAG_NO_PERSPECTIVE
           パースを無効にすることを表すポイントスプライトフラグです(=2)。
static int POINT_SPRITE_FLAG_PERSPECTIVE
           パースを有効にすることを表すポイントスプライトフラグです(=0)。
static int POINT_SPRITE_FLAG_PIXEL_SIZE
           スクリーン座標系でのサイズを指定することを表す ポイントスプライトフラグです(=1)。
static int POINT_SPRITE_PER_PRIMITIVE
           プリミティブが 同じポイントスプライト情報を持つことを表します (=0x1000)。
static int POINT_SPRITE_PER_VERTEX
           プリミティブが頂点単位でポイントスプライト情報を持つことを表します (=0x3000)。
static int PRIMITIVE_LINES
           線の描画を表すプリミティブの型です(=2)。
static int PRIMITIVE_POINT_SPRITES
           ポイントスプライトの描画を表すプリミティブの型です(=5)。
static int PRIMITIVE_POINTS
           点の描画を表すプリミティブの型です(=1)。
static int PRIMITIVE_QUADS
           四角形の描画を表すプリミティブの型です(=4)。
static int PRIMITIVE_TRIANGLES
           三角形の描画を表すプリミティブの型です(=3)。
static int TEXTURE_COLORKEY
           プリミティブに設定したテクスチャの透過色を有効にすることを表すフラグです (=0x0010)。
static int TEXTURE_COORD_NONE
           プリミティブがテクスチャ座標情報を持たないことを表します(=0)。
static int TEXTURE_COORD_PER_VERTEX
           プリミティブが頂点単位でテクスチャ座標情報を持つことを表します (=0x3000)。
 
クラス 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
 
コンストラクタの概要
Primitive(int type, int param, int n)
           プリミティブオブジェクトを生成します。
 
メソッドの概要
static int convertAngle(float degree)
           角度(degree)を示す float 値を、 4096 分周円表現の整数値に変換します。
static float convertAngle(int angle)
           4096 分周円表現の整数値を、角度(degree)を示す float 値に変換します。
 int[] getColorArray()
           格納されている色情報の配列を取得します。
 int[] getNormalArray()
           格納されている法線情報の配列を取得します。
 int[] getPointSpriteArray()
           格納されているポイントスプライト情報の配列を取得します。
 int getPrimitiveParam()
           格納されているプリミティブ情報(属性)を取得します。
 int getPrimitiveType()
           格納されているプリミティブ図形の型を取得します。
 int[] getTextureCoordArray()
           格納されているテクスチャ座標情報の配列を取得します。
 int[] getVertexArray()
           格納されている頂点情報の配列を取得します。
static void normalize(int[] ary, int index)
           int 配列内の三つの要素を三次元ベクトルとみなし、 正規化(単位ベクトル化)します。
 void setBlendMode(int mode)
           図形用ブレンドモードを設定します。
 void setPerspectiveCorrectionEnabled(boolean isOn)
           パースペクティブコレクション(テクスチャの歪み補正)の有効化/無効化を設定します。
 void setTexture(Texture texture)
           モデル用の テクスチャ オブジェクトを設定します。
 void setTransparency(float v)
           透明度をパーセントで設定します。
 int size()
           格納されているプリミティブの数を取得します。
 
クラス com.nttdocomo.ui.graphics3d.DrawableObject3D から継承したメソッド
isCross
 
クラス com.nttdocomo.ui.graphics3d.Object3D から継承したメソッド
createInstance, createInstance, dispose, getTime, getType, setTime
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

PRIMITIVE_POINTS

public static final int PRIMITIVE_POINTS

点の描画を表すプリミティブの型です(=1)。

点のプリミティブの描画では、頂点と色の情報と、プリミティブ属性の設定が反映されます。

関連項目:
定数フィールド値

PRIMITIVE_LINES

public static final int PRIMITIVE_LINES

線の描画を表すプリミティブの型です(=2)。

線のプリミティブの描画では、頂点と色の情報と、プリミティブ属性の設定が反映されます。

関連項目:
定数フィールド値

PRIMITIVE_TRIANGLES

public static final int PRIMITIVE_TRIANGLES

三角形の描画を表すプリミティブの型です(=3)。

三角形のプリミティブの描画では、頂点と法線(光源対応処理を行う場合)と、 色またはテクスチャ座標の情報と、プリミティブ属性の設定が反映されます。 色情報とテクスチャ座標情報とを同時に指定することはできません。

関連項目:
定数フィールド値

PRIMITIVE_QUADS

public static final int PRIMITIVE_QUADS

四角形の描画を表すプリミティブの型です(=4)。

四角形のプリミティブの描画では、頂点と法線(光源対応処理を行う場合)と、 色またはテクスチャ座標の情報と、プリミティブ属性の設定が反映されます。 色情報とテクスチャ座標情報とを同時に指定することはできません。

なお、四角形の頂点は、同一平面上にあり、 凸状の四角形を構成していなければなりません。 頂点が同一平面上になかったり、凸状の四角形ではなかったりした場合の レンダリング結果は機種依存です。

関連項目:
定数フィールド値

PRIMITIVE_POINT_SPRITES

public static final int PRIMITIVE_POINT_SPRITES

ポイントスプライトの描画を表すプリミティブの型です(=5)。

ポイントスプライトのプリミティブの描画では、頂点とポイントスプライトの情報と、 プリミティブ属性の設定が反映されます。

関連項目:
定数フィールド値

NORMAL_NONE

public static final int NORMAL_NONE

プリミティブが法線情報を持たないことを表します (=0)。

関連項目:
定数フィールド値

NORMAL_PER_FACE

public static final int NORMAL_PER_FACE

プリミティブが面単位で法線情報を持つことを表します (=0x0200)。

関連項目:
定数フィールド値

NORMAL_PER_VERTEX

public static final int NORMAL_PER_VERTEX

プリミティブが頂点単位で法線情報を持つことを表します (=0x0300)。

関連項目:
定数フィールド値

COLOR_NONE

public static final int COLOR_NONE

プリミティブが色情報を持たないことを表します(=0)。

関連項目:
定数フィールド値

COLOR_PER_PRIMITIVE

public static final int COLOR_PER_PRIMITIVE

プリミティブが 同じ色情報を持つことを表します (=0x0400)。

関連項目:
定数フィールド値

COLOR_PER_FACE

public static final int COLOR_PER_FACE

プリミティブが面単位で色情報を持つことを表します (=0x0800)。

関連項目:
定数フィールド値

TEXTURE_COORD_NONE

public static final int TEXTURE_COORD_NONE

プリミティブがテクスチャ座標情報を持たないことを表します(=0)。

関連項目:
定数フィールド値

TEXTURE_COORD_PER_VERTEX

public static final int TEXTURE_COORD_PER_VERTEX

プリミティブが頂点単位でテクスチャ座標情報を持つことを表します (=0x3000)。

関連項目:
定数フィールド値

TEXTURE_COLORKEY

public static final int TEXTURE_COLORKEY

プリミティブに設定したテクスチャの透過色を有効にすることを表すフラグです (=0x0010)。

テクスチャにおいて色番号 0 の部分が抜き色としてレンダリングされます。

関連項目:
定数フィールド値

POINT_SPRITE_PER_PRIMITIVE

public static final int POINT_SPRITE_PER_PRIMITIVE

プリミティブが 同じポイントスプライト情報を持つことを表します (=0x1000)。

関連項目:
定数フィールド値

POINT_SPRITE_PER_VERTEX

public static final int POINT_SPRITE_PER_VERTEX

プリミティブが頂点単位でポイントスプライト情報を持つことを表します (=0x3000)。

関連項目:
定数フィールド値

POINT_SPRITE_FLAG_LOCAL_SIZE

public static final int POINT_SPRITE_FLAG_LOCAL_SIZE

モデル座標系でのサイズを指定することを表す ポイントスプライトフラグです(=0)。

ポイントスプライト情報の幅と高さは、モデル座標系での幅と高さであるとみなされます。 すなわち、モデル座標系の指定された頂点位置に指定された幅と高さのポイントスプライト があるとしてレンダリングが行われます。

POINT_SPRITE_FLAG_PIXEL_SIZE と同時に指定することはできません。

関連項目:
定数フィールド値

POINT_SPRITE_FLAG_PIXEL_SIZE

public static final int POINT_SPRITE_FLAG_PIXEL_SIZE

スクリーン座標系でのサイズを指定することを表す ポイントスプライトフラグです(=1)。

ポイントスプライト情報の幅と高さは、 スクリーン座標系での幅と高さであるとみなされます。 すなわち、モデル座標系の指定された頂点位置をスクリーンにマップした位置に、 指定された幅と高さでポイントスプライトのレンダリングが行われます。

POINT_SPRITE_FLAG_LOCAL_SIZE と同時に指定することはできません。

関連項目:
定数フィールド値

POINT_SPRITE_FLAG_PERSPECTIVE

public static final int POINT_SPRITE_FLAG_PERSPECTIVE

パースを有効にすることを表すポイントスプライトフラグです(=0)。

透視投影に設定されている場合のみ有効で、 平行投影に設定されている場合は無視されます。

ポイントスプライトフラグを ( POINT_SPRITE_FLAG_PIXEL_SIZE | POINT_SPRITE_FLAG_PERSPECTIVE ) とした場合は、ポイントスプライトがニアクリップ面上にあるときに 指定された幅と高さになるようにパースをつけてレンダリングされます。

POINT_SPRITE_FLAG_NO_PERSPECTIVE と同時に指定することはできません。

関連項目:
定数フィールド値

POINT_SPRITE_FLAG_NO_PERSPECTIVE

public static final int POINT_SPRITE_FLAG_NO_PERSPECTIVE

パースを無効にすることを表すポイントスプライトフラグです(=2)。

透視投影に設定されている場合のみ有効で、 平行投影に設定されている場合は無視されます。

ポイントスプライトフラグを ( POINT_SPRITE_FLAG_LOCAL_SIZE | POINT_SPRITE_FLAG_NO_PERSPECTIVE ) とした場合にどのようにレンダリングされるかは機種依存です。

POINT_SPRITE_FLAG_PERSPECTIVE と同時に指定することはできません。

関連項目:
定数フィールド値
コンストラクタの詳細

Primitive

public Primitive(int type,
                 int param,
                 int n)

プリミティブオブジェクトを生成します。

プリミティブ図形の型と、格納する情報の種類と、図形の数を指定する 必要があります。 指定された情報群に対応する、情報格納用の配列が それぞれ生成されます。ただし、頂点情報用の配列は、常に生成されます。 この配列には、 getVertexArray() getNormalArray() getColorArray() getTextureCoordArray() getPointSpriteArray() のメソッドの戻り値を用いることでアクセスできます。

プリミティブの図形の型には、 PRIMITIVE_POINTS, PRIMITIVE_LINES, PRIMITIVE_TRIANGLES, PRIMITIVE_QUADS, PRIMITIVE_POINT_SPRITES のいずれかを指定します。

情報の種類のうち、頂点情報は必携であるため指定する必要はありません。 頂点・法線・色・テクスチャ座標・ポイントスプライト情報については、 格納するかどうかを個別に指定可能です。 ただし、色情報とテクスチャ座標情報とを同時に指定することはできません。 プリミティブ情報(属性)には、 NORMAL_NONE, NORMAL_PER_FACE, NORMAL_PER_VERTEX, COLOR_NONE, COLOR_PER_PRIMITIVE, COLOR_PER_FACE, TEXTURE_COLORKEY, TEXTURE_COORD_NONE, TEXTURE_COORD_PER_VERTEX, POINT_SPRITE_PER_PRIMITIVE, POINT_SPRITE_PER_VERTEX を論理和で組み合わせて指定します。

このコンストラクタ によって作成されたプリミティブオブジェクトには、 255 個までのプリミティブ図形を、 格納することができます。

生成直後は 各種の情報格納用の配列 の全成分が 0 に初期化されています。

パラメータ:
type - プリミティブ図形の型を指定します。
param - プリミティブ情報(属性)を指定します。
n - プリミティブ図形の数を指定します。
例外:
IllegalArgumentException - 引数 n が 0 以下の場合、または 256 以上の場合に発生します。
IllegalArgumentException - 引数 type に不正な値が指定された 場合に発生します。
IllegalArgumentException - 引数 type に対して、引数 param に不正な組み合わせが指定された場合に発生します。
メソッドの詳細

getPrimitiveType

public int getPrimitiveType()

格納されているプリミティブ図形の型を取得します。

戻り値:
プリミティブ図形の型を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

getPrimitiveParam

public int getPrimitiveParam()

格納されているプリミティブ情報(属性)を取得します。

戻り値:
プリミティブ情報(属性)の値を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

size

public int size()

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

戻り値:
プリミティブの数を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

getVertexArray

public int[] getVertexArray()

格納されている頂点情報の配列を取得します。

頂点情報配列は、{x0, y0, z0, x1, y1, z1, …} という順番で頂点座標が格納された int 型の配列です。

頂点情報には、モデル座標系での位置を指定します。 値を指定するときに、整数の精度では足りない場合には、 モデルを大きくする、つまり、 値にある程度の倍数を掛けて近似することで、値同士の比を構成してください。 この場合、描画時には、掛けた倍数値だけ縮小する必要があります。

この配列の値を読み書きすることで、本オブジェクトのデータ内容を 直接に参照および変更できます。

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

float 値による頂点情報を int 値に変換するときには、 FastMath.floatToInnerInt(float) メソッドを利用すると便利です。 たとえば float 値 1.0 をこのメソッドに与えると、 int 値 4096 を 取得できます。この値は 4096 倍されていますので、 float 値と int 値との単位を同じと定義されるのであれば、 int 値を 1/4096 倍 (たとえば 12 回右シフト演算)することで、 所望の値 1 を得ることができます。

戻り値:
頂点情報の配列を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
関連項目:
数値演算に関する共通の定義

getNormalArray

public int[] getNormalArray()

格納されている法線情報の配列を取得します。

法線情報配列は、{x0, y0, z0, x1, y1, z1, …} という順番で法線情報が格納された int 型の配列です。

法線情報には、法線ベクトルの向きを指定します。 sqrt(x * x + y * y + z * z) の値が、4096 になるようにしてください。

この配列の値を読み書きすることで、 プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

法線情報の xi, yi, zi の値は、ベクトルの長さが 4096 に正規化されていなければなりません。 ベクトルの長さが 4096 に正規化されていない場合のレンダリング結果は機種依存です。 なお、int 値の情報から動的にベクトル値を生成するときには、 normalize(int[], int) メソッド を用いるのが便利です。

float 値による情報から、動的にベクトル値を生成するときには、 Vector3D.normalize() メソッドと FastMath.floatToInnerInt(float) メソッドを併用すると便利です。
具体的には、 Vector3D オブジェクトに float 値を設定しておき、 Vector3D.normalize() メソッドを呼び出します。 このメソッドによる演算は、単位ベクトルの長さが 1.0 となるように行われます。 この演算後、メソッド Vector3D.getX() , Vector3D.getY() , Vector3D.getX() によって float 値 3 つによる結果を取得できます。 このとき、取得した 3 つの値をそれぞれ、 メソッド FastMath.floatToInnerInt(float) によって変換すると、 その結果は 4096 に正規化された int 値 3 つになります。 この int 値 3 つは、配列の要素用の法線情報としてそのまま利用できます。

戻り値:
法線情報の配列を返します。 法線情報を持たないときは null を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
関連項目:
数値演算に関する共通の定義

getColorArray

public int[] getColorArray()

格納されている色情報の配列を取得します。

色情報配列は、{((r0 <<16) | (g0 << 8) | (b0)), ((r1 <<16) | (g1 << 8) | (b1)), …} という順番で色情報が格納された int 型の配列です。

各要素の上位 8 ビットの内容は無視されます。 この配列の値を読み書きすることで、 プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

戻り値:
色情報の配列を返します。 色情報を持たないプリミティブ配列の場合は null を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

getTextureCoordArray

public int[] getTextureCoordArray()

格納されているテクスチャ座標情報の配列を取得します。

テクスチャ座標情報配列は、{u0, v0, u1, v1, …} という順番でテクスチャ座標情報が格納された int 型の配列です。 テクスチャ座標情報には、テクスチャ画像上のピクセル座標を指定します。 テクスチャ座標情報の ui, vi の値は、 0 以上で、テクスチャのイメージの幅および高さより小さくなければなりません。

この配列の値を読み書きすることで、 プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

この範囲外の値を指定したときの動作は、機種依存です。

戻り値:
テクスチャ座標情報の配列を返します。 テクスチャ座標を持たないプリミティブ配列の場合は null を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

getPointSpriteArray

public int[] getPointSpriteArray()

格納されているポイントスプライト情報の配列を取得します。

ポイントスプライト情報配列は、 {w0, h0, angle0, u00, v00, u10, v10, flag0, w1, h1, angle1, u01, v01, u11, v11, flag1, …} という順番でポイントスプライト情報が格納された int 型の配列です。 w は幅、 h は高さ、 angle は回転角度、 u2n, v2n, u2n+1, v2n+1 はテクスチャ画像の座標、 flag は ポイントスプライトフラグを意味します。 テクスチャ画像の座標とは、テクスチャ画像上のピクセル座標です。 u2n, v2n により左上端の x, y 座標を、 u2n+1, v2n+1 により右下端の x, y 座標を、 それぞれ指定します。

この配列の値を読み書きすることで、 プリミティブ配列が持つプリミティブ情報に直接アクセスすることができます。

幅と高さの値は、ポイントスプライトフラグに POINT_SPRITE_FLAG_LOCAL_SIZE が指定されているときはモデル座標系での幅と高さを、 ポイントスプライトフラグに POINT_SPRITE_FLAG_PIXEL_SIZE が指定されているときはスクリーン座標系での幅と高さを意味します。

float 値による幅および高さの情報を int 値に変換するときには、 FastMath.floatToInnerInt(float) メソッドを利用すると便利です。 たとえば float 値 1.0 をこのメソッドに与えると、 int 値 4096 を 取得できます。この値は 4096 倍されていますので、 float 値と int 値との単位を同じと定義されるのであれば、 int 値を 1/4096 倍 (たとえば 12 回右シフト演算)することで、 所望の値 1 を得ることができます。

ポイントスプライト情報の anglei の値は、4096 分周円表現で、 時計回りの回転角を指定します。 実際には (anglei & 0x0fff) の値が回転角として使用されます。 なお、動的に角度値を生成するときには、 convertAngle(float) メソッドおよび convertAngle(int) メソッド を用いるのが便利です。


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 を返します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
関連項目:
数値演算に関する共通の定義

normalize

public static void normalize(int[] ary,
                             int index)

int 配列内の三つの要素を三次元ベクトルとみなし、 正規化(単位ベクトル化)します。

ary[index] を x 要素、 ary[index+1] を y 要素、 ary[index+2] を z 要素とみなして正規化を行います。 単位ベクトルの長さは 4096 です。 演算結果によって配列内の該当要素の値が上書きされます。

パラメータ:
ary - int 配列を指定します。
index - 先頭の要素の番号を指定します。
例外:
NullPointerException - 引数 ary が null の場合に発生します。
IllegalArgumentException - 引数 index に 3 を足した値が 引数 ary の長さより大きい場合に発生します。
ArithmeticException - ベクトルが零ベクトルの場合に発生します。

convertAngle

public static int convertAngle(float degree)

角度(degree)を示す float 値を、 4096 分周円表現の整数値に変換します。

引数 degree の符号は有効として扱われます。 たとえば、引数 degree が -1.0 のときと、 359.0 のときの結果は同じです。

引数 degree に、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合、値 0 とみなされます。

結果は、0 以上 4095 以下の値になります。

パラメータ:
degree - float 値を指定します。
戻り値:
int 値を返します。

convertAngle

public static float convertAngle(int angle)

4096 分周円表現の整数値を、角度(degree)を示す float 値に変換します。

引数 angle の符号は有効として扱われます。 たとえば、引数 angle が -1 のときと、 4095 のときの結果は同じです。

結果は、0.0 以上 360.0 未満の値になります。

パラメータ:
angle - int 値を指定します。
戻り値:
float 値を返します。

setTexture

public void setTexture(Texture texture)

モデル用の テクスチャ オブジェクトを設定します。

パラメータ:
texture - テクスチャ オブジェクトを指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。
NullPointerException - 引数 texture が null の場合に発生します。
IllegalArgumentException - コンストラクト時、 TEXTURE_COORD_NONE がプリミティブ情報(属性)に指定されていた場合に発生します。
IllegalArgumentException - コンストラクト時、 PRIMITIVE_POINTS あるいは PRIMITIVE_LINES がプリミティブ図形の型に指定されていた場合に発生します。
UIException - 引数 texture が 既に dispose() されたオブジェクトの場合に発生します (ILLEGAL_STATE)。

setPerspectiveCorrectionEnabled

public void setPerspectiveCorrectionEnabled(boolean isOn)
クラス DrawableObject3D の記述:

パースペクティブコレクション(テクスチャの歪み補正)の有効化/無効化を設定します。

初期状態では、無効に設定されています。

定義:
クラス DrawableObject3D 内の setPerspectiveCorrectionEnabled
パラメータ:
isOn - 有効化するならば true を指定します。 しないならば false を指定します。
例外:
UIException - 既に dispose() されたオブジェクトに対して呼ばれた場合に発生します (ILLEGAL_STATE)。

setBlendMode

public void setBlendMode(int mode)
クラス DrawableObject3D の記述:

図形用ブレンドモードを設定します。

定義:
クラス 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, のいずれでもない場合に発生します。

setTransparency

public void setTransparency(float v)
クラス DrawableObject3D の記述:

透明度をパーセントで設定します。

透明度は、設定されている図形用ブレンドモードが DrawableObject3D.BLEND_ALPHA, DrawableObject3D.BLEND_ADD のどちらかのときに有効になります。

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