com.docomostar.opt.ui.j3d
インタフェース Graphics3D


public interface Graphics3D

3Dグラフィクスを提供するインタフェースです。
3DをサポートするGraphics クラスは、 このインタフェースを実装しなければなりません。

導入されたバージョン:
Star-1.0

フィールドの概要
static int ATTR_BLEND_ADD
          加算モードで描画を行うことを表すプリミティブ属性です(=0x40)。
static int ATTR_BLEND_HALF
          50%ブレンドモードで描画を行うことを表すプリミティブ属性です(=0x20)。
static int ATTR_BLEND_NORMAL
          通常の描画処理を行うことを表すプリミティブ属性です(=0x00)。
static int ATTR_BLEND_SUB
          減算モードで描画を行うことを表すプリミティブ属性です(=0x60)。
static int ATTR_COLOR_KEY
          カラーキーを用いた透過処理を行うことを表すプリミティブ属性です(=0x10)。
static int ATTR_LIGHT
          光源対応処理を行うことを表すプリミティブ属性です(=0x01)。
static int ATTR_SPHERE_MAP
          環境マッピング処理を行うことを表すプリミティブ属性です(=0x02)。
static int COLOR_NONE
          プリミティブが色情報を持たないことを表します(=0x0000)。
static int COLOR_PER_COMMAND
          プリミティブがコマンド単位で同じ色情報を持つことを表します(=0x0400)。
static int COLOR_PER_FACE
          プリミティブが面単位で色情報を持つことを表します(=0x0800)。
static int COMMAND_AMBIENT_LIGHT
          setAmbientLight(int) に相当するコマンドです(=0xa0000000)。
static int COMMAND_ATTRIBUTE
          環境属性を設定することを表すコマンドです(=0x83000000)。
static int COMMAND_CLIP_RECT
          setClipRect3D(int, int, int, int) に相当するコマンドです(=0x84000000)。
static int COMMAND_DIRECTION_LIGHT
          setDirectionLight(Vector3D, int) に相当するコマンドです(=0xa1000000)。
static int COMMAND_END
          コマンドリストの終了を表すコマンドです(=0x80000000)。
static int COMMAND_FLUSH
          flush() に相当するコマンドです(=0x82000000)。
static int COMMAND_LIST_VERSION_1
          コマンドリストのバージョンを表すコマンドです(=0xfe000001)。
static int COMMAND_NOP
          何もしないことを表すコマンドです(=0x81000000)。
static int COMMAND_PERSPECTIVE1
          setPerspective(int, int, int) に相当するコマンドです(=0x92000000)。
static int COMMAND_PERSPECTIVE2
          setPerspective(int, int, int, int) に相当するコマンドです(=0x93000000)。
static int COMMAND_RENDER_LINES
          線を描画することを表すコマンドです(=0x02000000)。
static int COMMAND_RENDER_POINT_SPRITES
          ポイントスプライトを描画することを表すコマンドです(=0x05000000)。
static int COMMAND_RENDER_POINTS
          点を描画することを表すコマンドです(=0x01000000)。
static int COMMAND_RENDER_QUADS
          四角形を描画することを表すコマンドです(=0x04000000)。
static int COMMAND_RENDER_TRIANGLES
          三角形を描画することを表すコマンドです(=0x03000000)。
static int COMMAND_SCREEN_CENTER
          setScreenCenter(int, int) に相当するコマンドです(=0x85000000)。
static int COMMAND_SCREEN_SCALE
          setScreenScale(int, int) に相当するコマンドです(=0x90000000)。
static int COMMAND_SCREEN_VIEW
          setScreenView(int, int) に相当するコマンドです(=0x91000000)。
static int COMMAND_TEXTURE
          setPrimitiveTexture(int) に相当するコマンドです(=0x86000000)。
static int COMMAND_TOON_PARAM
          setToonParam(int, int, int) に相当するコマンドです(=0xaf000000)。
static int COMMAND_VIEW_TRANS
          setViewTrans(int) に相当するコマンドです(=0x87000000)。
static int ENV_ATTR_LIGHT
          光源対応処理を行うことを表す環境属性です(=1)。
static int ENV_ATTR_SEMI_TRANSPARENT
          半透明処理を行うことを表す環境属性です(=8)。
static int ENV_ATTR_SPHERE_MAP
          環境マッピング処理を行うことを表す環境属性です(=2)。
static int ENV_ATTR_TOON_SHADER
          トゥーンシェーディングを行うことを表す環境属性です(=4)。
static int NORMAL_NONE
          プリミティブが法線情報を持たないことを表します(=0x0000)。
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_COMMAND
          プリミティブがコマンド単位で同じポイントスプライト情報を持つことを表します(=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_COORD_NONE
          プリミティブがテクスチャ座標情報を持たないことを表します(=0x0000)。
static int TEXTURE_COORD_PER_VERTEX
          プリミティブが頂点単位でテクスチャ座標情報を持つことを表します(=0x3000)。
 
メソッドの概要
 void drawFigure(Figure figure)
          推奨されていません。 非推奨であるテクスチャの陰影設定に応じて、 enableToonShader(boolean) メソッドと setToonParam(int, int, int) メソッドを呼び出したのと同様の振る舞いとなります。 また、テクスチャの陰影設定が反映される以外は、 renderFigure(Figure) メソッドと flush() メソッドを続けて呼び出したのと同様の振る舞いとなります。 このため、enableToonShader(boolean)、 setToonParam(int, int, int)、 renderFigure(Figure)、 flush() メソッドを使うことを推奨します。
 void enableLight(boolean b)
          光源対応処理の有効化/無効化を行います。
 void enableSemiTransparent(boolean b)
          半透明処理の有効化/無効化を行います。
 void enableSphereMap(boolean b)
          環境マッピング処理の有効化/無効化を行います。
 void enableToonShader(boolean b)
          トゥーンシェーディングの有効化/無効化を行います。
 void executeCommandList(int[] commandlist)
          コマンド配列によってレンダリングの演算や描画を行います。
 void flush()
          レンダリング演算の結果を実際に描画に反映します。
 void renderFigure(Figure figure)
          モデルデータを設定し、レンダリングの演算を実行します。
 void renderPrimitives(PrimitiveArray primitives, int attr)
          プリミティブデータを設定し、レンダリングの演算を行います。
 void renderPrimitives(PrimitiveArray primitives, int offset, int length, int attr)
          プリミティブデータを設定し、レンダリングの演算を行います。
 void setAmbientLight(int intensity)
          環境光の強さ設定します。
 void setClipRect3D(int x, int y, int width, int height)
          キャンバス全体描画領域のうち3D描画のためのクリッピング領域を設定します。
 void setDirectionLight(Vector3D direction, int intensity)
          平行光源の強さと方向を設定します。
 void setPerspective(int zNear, int zFar, int angle)
          視野角を指定して透視投影の設定を行います。
 void setPerspective(int zNear, int zFar, int width, int height)
          ニアクリップ面における投影面の幅および高さを指定して透視投影の設定を行います。
 void setPrimitiveTexture(int index)
          プリミティブ描画において参照されるテクスチャを設定します。
 void setPrimitiveTextureArray(Texture texture)
          プリミティブ描画のためのテクスチャ配列を設定します。
 void setPrimitiveTextureArray(Texture[] textures)
          プリミティブ描画のためのテクスチャ配列を設定します。
 void setScreenCenter(int cx, int cy)
          スクリーンの中心を設定します。
 void setScreenScale(int sx, int sy)
          視点座標からスクリーンへのスケールを指定して平行投影の設定を行います。
 void setScreenView(int width, int height)
          投影面の幅と高さを指定して平行投影の設定を行います。
 void setSphereTexture(Texture texture)
          環境マッピング用のテクスチャを設定します。
 void setToonParam(int threshold, int high, int low)
          レンダリングをトゥーンシェーディングで行うための情報を設定します。
 void setViewTrans(AffineTrans at)
          視点座標への変換行列を設定します。
 void setViewTrans(int index)
          視点座標への変換行列を設定します。
 void setViewTransArray(AffineTrans[] ats)
          視点座標への変換行列の配列を設定します。
 

フィールドの詳細

PRIMITIVE_POINTS

static final int PRIMITIVE_POINTS
点の描画を表すプリミティブの型です(=1)。
点のプリミティブの描画では、頂点と色の情報と、プリミティブ属性の設定が反映されます。

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

PRIMITIVE_LINES

static final int PRIMITIVE_LINES
線の描画を表すプリミティブの型です(=2)。
線のプリミティブの描画では、頂点と色の情報と、プリミティブ属性の設定が反映されます。

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

PRIMITIVE_TRIANGLES

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

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

PRIMITIVE_QUADS

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

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

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

PRIMITIVE_POINT_SPRITES

static final int PRIMITIVE_POINT_SPRITES
ポイントスプライトの描画を表すプリミティブの型です(=5)。
ポイントスプライトのプリミティブの描画では、頂点とポイントスプライトの情報と、プリミティブ属性の設定が反映されます。

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

NORMAL_NONE

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

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

NORMAL_PER_FACE

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

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

NORMAL_PER_VERTEX

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

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

COLOR_NONE

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

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

COLOR_PER_COMMAND

static final int COLOR_PER_COMMAND
プリミティブがコマンド単位で同じ色情報を持つことを表します(=0x0400)。

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

COLOR_PER_FACE

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

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

TEXTURE_COORD_NONE

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

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

TEXTURE_COORD_PER_VERTEX

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

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

POINT_SPRITE_PER_COMMAND

static final int POINT_SPRITE_PER_COMMAND
プリミティブがコマンド単位で同じポイントスプライト情報を持つことを表します(=0x1000)。

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

POINT_SPRITE_PER_VERTEX

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

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

POINT_SPRITE_FLAG_LOCAL_SIZE

static final int POINT_SPRITE_FLAG_LOCAL_SIZE
モデル座標系でのサイズを指定することを表すポイントスプライトフラグです(=0)。 ポイントスプライト情報の幅と高さは、モデル座標系での幅と高さであるとみなされます。 すなわち、モデル座標系の指定された頂点位置に指定された幅と高さのポイントスプライトがあるとしてレンダリングが行われます。
POINT_SPRITE_FLAG_PIXEL_SIZE と同時に指定することはできません。

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

POINT_SPRITE_FLAG_PIXEL_SIZE

static final int POINT_SPRITE_FLAG_PIXEL_SIZE
スクリーン座標系でのサイズを指定することを表すポイントスプライトフラグです(=1)。 ポイントスプライト情報の幅と高さは、スクリーン座標系での幅と高さであるとみなされます。 すなわち、モデル座標系の指定された頂点位置をスクリーンにマップした位置に、指定された幅と高さでポイントスプライトのレンダリングが行われます。
POINT_SPRITE_FLAG_LOCAL_SIZE と同時に指定することはできません。

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

POINT_SPRITE_FLAG_PERSPECTIVE

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

static final int POINT_SPRITE_FLAG_NO_PERSPECTIVE
パースを無効にすることを表すポイントスプライトフラグです(=2)。 透視投影に設定されている場合のみ有効で、平行投影に設定されている場合は無視されます。
ポイントスプライトフラグを (POINT_SPRITE_FLAG_LOCAL_SIZE | POINT_SPRITE_FLAG_NO_PERSPECTIVE) とした場合にどのようにレンダリングされるかは機種依存です。
POINT_SPRITE_FLAG_PERSPECTIVE と同時に指定することはできません。

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

ATTR_LIGHT

static final int ATTR_LIGHT
光源対応処理を行うことを表すプリミティブ属性です(=0x01)。
プリミティブに光源対応処理の指定を行うのに加えて、 enableLight(boolean) メソッドによって Graphics3D オブジェクトの光源対応処理が有効化されている必要があります。

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

ATTR_SPHERE_MAP

static final int ATTR_SPHERE_MAP
環境マッピング処理を行うことを表すプリミティブ属性です(=0x02)。
プリミティブに環境マッピング処理の指定を行うのに加えて、 enableSphereMap(boolean) メソッドと setSphereTexture(Texture) メソッドによって Graphics3D オブジェクトの環境マッピング処理が有効化されている必要があります。

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

ATTR_COLOR_KEY

static final int ATTR_COLOR_KEY
カラーキーを用いた透過処理を行うことを表すプリミティブ属性です(=0x10)。 テクスチャにおいて色番号0の部分が抜き色としてレンダリングされます。

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

ATTR_BLEND_NORMAL

static final int ATTR_BLEND_NORMAL
通常の描画処理を行うことを表すプリミティブ属性です(=0x00)。 ATTR_BLEND_HALF, ATTR_BLEND_ADD, ATTR_BLEND_SUB と同時に指定することはできません。
プリミティブにブレンド処理の指定を行うのに加えて、 enableSemiTransparent(boolean) メソッドによって Graphics3D オブジェクトの半透明処理が有効化されている必要があります。

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

ATTR_BLEND_HALF

static final int ATTR_BLEND_HALF
50%ブレンドモードで描画を行うことを表すプリミティブ属性です(=0x20)。 描画結果は、(背景 x 50% + プリミティブ x 50%) となります。 ATTR_BLEND_NORMAL, ATTR_BLEND_ADD, ATTR_BLEND_SUB と同時に指定することはできません。
プリミティブにブレンド処理の指定を行うのに加えて、 enableSemiTransparent(boolean) メソッドによって Graphics3D オブジェクトの半透明処理が有効化されている必要があります。

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

ATTR_BLEND_ADD

static final int ATTR_BLEND_ADD
加算モードで描画を行うことを表すプリミティブ属性です(=0x40)。 描画結果は、(背景 x 100% + プリミティブ x 100%) となります。 ATTR_BLEND_NORMAL, ATTR_BLEND_HALF, ATTR_BLEND_SUB と同時に指定することはできません。
プリミティブにブレンド処理の指定を行うのに加えて、 enableSemiTransparent(boolean) メソッドによって Graphics3D オブジェクトの半透明処理が有効化されている必要があります。

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

ATTR_BLEND_SUB

static final int ATTR_BLEND_SUB
減算モードで描画を行うことを表すプリミティブ属性です(=0x60)。 描画結果は、(背景 x 100% - プリミティブ x 100%) となります。 ATTR_BLEND_NORMAL, ATTR_BLEND_HALF, ATTR_BLEND_ADD と同時に指定することはできません。
プリミティブにブレンド処理の指定を行うのに加えて、 enableSemiTransparent(boolean) メソッドによって Graphics3D オブジェクトの半透明処理が有効化されている必要があります。

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

COMMAND_LIST_VERSION_1

static final int COMMAND_LIST_VERSION_1
コマンドリストのバージョンを表すコマンドです(=0xfe000001)。 コマンドリストの先頭には必ずバージョンを指定する必要があります。

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

COMMAND_END

static final int COMMAND_END
コマンドリストの終了を表すコマンドです(=0x80000000)。
コマンド配列では、COMMAND_END に続く配列の要素は処理されません。

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

COMMAND_NOP

static final int COMMAND_NOP
何もしないことを表すコマンドです(=0x81000000)。
コマンド配列では、COMMAND_NOP とそれに続いてスキップする配列の要素数とを論理和で組み合わせて指定します。

例 : コマンド配列に COMMAND_SCREEN_CENTER と COMMAND_SCREEN_SCALE が設定されており、COMMAND_SCREEN_CENTER のみをスキップする場合

int command[] = {COMMAND_SCREEN_CENTER, 120, 120,
                 COMMAND_SCREEN_SCALE, 4096, 4096};
command[0] = COMMAND_NOP | 2;

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

COMMAND_FLUSH

static final int COMMAND_FLUSH
flush() に相当するコマンドです(=0x82000000)。

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

COMMAND_ATTRIBUTE

static final int COMMAND_ATTRIBUTE
環境属性を設定することを表すコマンドです(=0x83000000)。 enableLight(boolean), enableSphereMap(boolean), enableToonShader(boolean), enableSemiTransparent(boolean) に相当します。
コマンド配列では、COMMAND_ATTRIBUTE と ENV_ATTR_LIGHT, ENV_ATTR_SPHERE_MAP, ENV_ATTR_TOON_SHADER, ENV_ATTR_SEMI_TRANSPARENT を 論理和で組み合わせて指定します。

例 : 光源対応処理と環境マッピング処理を有効に、トゥーンシェーディングと半透明処理を無効にする場合

int command[] = {COMMAND_ATTRIBUTE | ENV_ATTR_LIGHT | ENV_ATTR_SPHERE_MAP};

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

COMMAND_AMBIENT_LIGHT

static final int COMMAND_AMBIENT_LIGHT
setAmbientLight(int) に相当するコマンドです(=0xa0000000)。 コマンド配列では、COMMAND_AMBIENT_LIGHT に続いて環境光の強さを指定します。

例 : 環境光の強さを 4096 に設定する場合

int command[] = {COMMAND_AMBIENT_LIGHT, 4096};

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

COMMAND_DIRECTION_LIGHT

static final int COMMAND_DIRECTION_LIGHT
setDirectionLight(Vector3D, int) に相当するコマンドです(=0xa1000000)。
コマンド配列では、COMMAND_DIRECTION_LIGHT に続いて平行光源の方向と強さを x, y, z, intensity の順で指定します。

例 : 平行光源を、方向 (1, 2, 3)、強さ 4096 に設定する場合

int command[] = {COMMAND_DIRECTION_LIGHT, 1, 2, 3, 4096};

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

COMMAND_TOON_PARAM

static final int COMMAND_TOON_PARAM
setToonParam(int, int, int) に相当するコマンドです(=0xaf000000)。
コマンド配列では、COMMAND_TOON_PARAM に続いてトゥーンシェーディングのパラメータを threshold, high, low の順で指定します。

例 : トゥーンシェーディングの閾値を 128、high の値を 255, low の値を 0 に設定する場合

int command[] = {COMMAND_TOON_PARAM, 128, 255, 0};

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

COMMAND_CLIP_RECT

static final int COMMAND_CLIP_RECT
setClipRect3D(int, int, int, int) に相当するコマンドです(=0x84000000)。
コマンド配列では、COMMAND_CLIP_RECT に続いてクリッピング領域の座標を left, top, right, bottom の順で指定します。 setClipRect3D(int, int, int, int) では x, y, width, height の順で指定しますが、それとはパラメータの指定の仕方が異なっている点に注意してください。 setClip(x, y, width, height) に対して、COMMAND_CLIP_RECT で指定する場合は x, y, (x + width), (y + height) という値を指定します。

例 : クリッピング領域を画面の (10, 20)-(230, 200) に設定する場合

int command[] = {COMMAND_CLIP_RECT, 10, 20, 230, 220};

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

COMMAND_SCREEN_CENTER

static final int COMMAND_SCREEN_CENTER
setScreenCenter(int, int) に相当するコマンドです(=0x85000000)。
コマンド配列では、COMMAND_SCREEN_CENTER に続いてスクリーンの中心の座標を x, y の順で指定します。

例 : スクリーンの中心を (120, 120) に設定する場合

int command[] = {COMMAND_SCREEN_CENTER, 120, 120};

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

COMMAND_SCREEN_SCALE

static final int COMMAND_SCREEN_SCALE
setScreenScale(int, int) に相当するコマンドです(=0x90000000)。
コマンド配列では、COMMAND_SCREEN_SCALE に続いて視点座標からスクリーンへのスケールを sx, sy の順で指定します。

例 : 視点座標からスクリーンへのスケールを (4096, 4096) に設定する場合

int command[] = {COMMAND_SCREEN_SCALE, 4096, 4096};

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

COMMAND_SCREEN_VIEW

static final int COMMAND_SCREEN_VIEW
setScreenView(int, int) に相当するコマンドです(=0x91000000)。
コマンド配列では、COMMAND_SCREEN_VIEW に続いて投影面の幅と高さを width, height の順で指定します。

例 : 投影面の幅と高さを (4096, 4096) に設定する場合

int command[] = {COMMAND_SCREEN_VIEW, 4096, 4096};

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

COMMAND_PERSPECTIVE1

static final int COMMAND_PERSPECTIVE1
setPerspective(int, int, int) に相当するコマンドです(=0x92000000)。
コマンド配列では、COMMAND_PERSPECTIVE1 に続いて透視投影のパラメータを zNear, zFar, angle の順で指定します。

例 : ニアクリップ面までの距離を 4096、ファークリップ面までの距離を 40960、視野角を 1024 に設定する場合

int command[] = {COMMAND_PERSPECTIVE1, 4096, 40960, 1024};

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

COMMAND_PERSPECTIVE2

static final int COMMAND_PERSPECTIVE2
setPerspective(int, int, int, int) に相当するコマンドです(=0x93000000)。
コマンド配列では、COMMAND_PERSPECTIVE2 に続いて透視投影のパラメータを zNear, zFar, width, height の順で指定します。

例 : ニアクリップ面までの距離を 4096、ファークリップ面までの距離を 40960、投影面の幅と高さを (2048, 2048) に設定する場合

int command[] = {COMMAND_PERSPECTIVE2, 4096, 40960, 2048, 2048};

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

COMMAND_TEXTURE

static final int COMMAND_TEXTURE
setPrimitiveTexture(int) に相当するコマンドです(=0x86000000)。
コマンド配列では、COMMAND_TEXTURE とテクスチャ配列中のインデックスを論理和で組み合わせて指定します。

例 : テクスチャ配列中のインデックス 1 のテクスチャを参照するよう設定する場合

int command[] = {COMMAND_TEXTURE | 1};

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

COMMAND_VIEW_TRANS

static final int COMMAND_VIEW_TRANS
setViewTrans(int) に相当するコマンドです(=0x87000000)。
コマンド配列では、COMMAND_VIEW_TRANS と視点座標への変換行列の配列中のインデックスとを論理和で組み合わせて指定します。

例 : 視点座標への変換行列の配列中のインデックス 1 の行列を視点座標への変換行列として設定する場合

int command[] = {COMMAND_VIEW_TRANS | 1};

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

COMMAND_RENDER_POINTS

static final int COMMAND_RENDER_POINTS
点を描画することを表すコマンドです(=0x01000000)。
コマンド配列では、COMMAND_RENDER_POINTS と、使用するプリミティブ情報を表すパラメータと、プリミティブ属性と、(プリミティブ数 << 16)とを論理和で組み合わせて指定します。 それに続いて、プリミティブ情報を指定します。 プリミティブ情報の指定の仕方は PrimitiveArray と同様で、 頂点情報、色情報の順で必要なものを指定します。

例 :

int command[] = {COMMAND_RENDER_POINTS | COLOR_PER_FACE | ATTR_LIGHT | (10 << 16), ...};

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

COMMAND_RENDER_LINES

static final int COMMAND_RENDER_LINES
線を描画することを表すコマンドです(=0x02000000)。
コマンド配列では、COMMAND_RENDER_LINES と、使用するプリミティブ情報を表すパラメータと、プリミティブ属性と、(プリミティブ数 << 16)とを論理和で組み合わせて指定します。 それに続いて、プリミティブ情報を指定します。 プリミティブ情報の指定の仕方は PrimitiveArray と同様で、 頂点情報、法線情報、色情報、テクスチャ座標情報、ポイントスプライト情報の順で必要なものを指定します。

例 :

int command[] = {COMMAND_RENDER_LINES | COLOR_PER_FACE | ATTR_LIGHT | (10 << 16), ...};

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

COMMAND_RENDER_TRIANGLES

static final int COMMAND_RENDER_TRIANGLES
三角形を描画することを表すコマンドです(=0x03000000)。
コマンド配列では、COMMAND_RENDER_TRIANGLES と、使用するプリミティブ情報を表すパラメータと、プリミティブ属性と、(プリミティブ数 << 16)とを論理和で組み合わせて指定します。 それに続いて、プリミティブ情報を指定します。 プリミティブ情報の指定の仕方は PrimitiveArray と同様で、 頂点情報、法線情報、色情報、テクスチャ座標情報の順で必要なものを指定します。

例 :

int command[] = {COMMAND_RENDER_TRIANGLES | COLOR_PER_FACE | ATTR_LIGHT | (10 << 16), ...};

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

COMMAND_RENDER_QUADS

static final int COMMAND_RENDER_QUADS
四角形を描画することを表すコマンドです(=0x04000000)。
コマンド配列では、COMMAND_RENDER_QUADS と、使用するプリミティブ情報を表すパラメータと、プリミティブ属性と、(プリミティブ数 << 16)とを論理和で組み合わせて指定します。 それに続いて、プリミティブ情報を指定します。 プリミティブ情報の指定の仕方は PrimitiveArray と同様で、 頂点情報、法線情報、色情報、テクスチャ座標情報の順で必要なものを指定します。

例 :

int command[] = {COMMAND_RENDER_QUADS | COLOR_PER_FACE | ATTR_LIGHT | (10 << 16), ...};

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

COMMAND_RENDER_POINT_SPRITES

static final int COMMAND_RENDER_POINT_SPRITES
ポイントスプライトを描画することを表すコマンドです(=0x05000000)。
コマンド配列では、COMMAND_RENDER_POINT_SPRITES と、使用するプリミティブ情報を表すパラメータと、プリミティブ属性と、(プリミティブ数 << 16)とを論理和で組み合わせて指定します。 それに続いて、プリミティブ情報を指定します。 プリミティブ情報の指定の仕方は PrimitiveArray と同様で、 頂点情報、ポイントスプライト情報の順で指定します。

例 :

int command[] = {COMMAND_RENDER_POINT_SPRITES | POINT_SPRITE_PER_VERTEX | ATTR_LIGHT | (10 << 16), ...};

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

ENV_ATTR_LIGHT

static final int ENV_ATTR_LIGHT
光源対応処理を行うことを表す環境属性です(=1)。

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

ENV_ATTR_SPHERE_MAP

static final int ENV_ATTR_SPHERE_MAP
環境マッピング処理を行うことを表す環境属性です(=2)。

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

ENV_ATTR_TOON_SHADER

static final int ENV_ATTR_TOON_SHADER
トゥーンシェーディングを行うことを表す環境属性です(=4)。

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

ENV_ATTR_SEMI_TRANSPARENT

static final int ENV_ATTR_SEMI_TRANSPARENT
半透明処理を行うことを表す環境属性です(=8)。

関連項目:
COMMAND_ATTRIBUTE, 定数フィールド値
メソッドの詳細

setViewTrans

void setViewTrans(AffineTrans at)
視点座標への変換行列を設定します。
このメソッドでは変換行列の要素を内部でコピーするため、 メソッドから戻った後に変換行列を変更したりしても視点は移動しません。

初期状態では、このメソッドで AffineTrans(4096,0,0,0, 0,4096,0,0, 0,0,4096,0)が設定された状態になっています。

このメソッドが呼び出される前に setViewTrans(int) メソッドで視点座標への変換行列が設定されていた場合、その設定はこのメソッドの呼び出しによって上書きされます。

パラメータ:
at - 視点座標への変換行列を指定します。
例外:
NullPointerException -
引数 at に null が指定された場合に発生します。

setViewTransArray

void setViewTransArray(AffineTrans[] ats)
視点座標への変換行列の配列を設定します。 このメソッドでは配列を Graphics3D オブジェクトに設定するだけで、 視点座標への変換行列の設定は行いません。 実際に視点座標への変換行列を設定するには、このメソッドを呼び出した後に setViewTrans(int) メソッドを呼び出します。

引数で指定された配列は、 このメソッドが呼び出された時点で Graphics3D オブジェクトにコピーされます。 そのため、このメソッドを呼び出した後に配列の要素の AffineTrans を変更しても setViewTrans(int) メソッドの呼び出しには反映されません。

パラメータ:
ats - 視点座標への変換行列の配列を指定します。
関連項目:
setViewTrans(int)
例外:
NullPointerException -
引数 ats または引数 ats の配列の要素に null が指定された場合に発生します。

setViewTrans

void setViewTrans(int index)
視点座標への変換行列を設定します。 このメソッドでは、Graphics3D オブジェクトに設定されている視点座標への変換行列の配列の中から、指定されたインデックスの要素を視点座標への変換行列として設定します。 あらかじめ setViewTransArray(AffineTrans[]) メソッドを呼び出して視点座標への変換行列の配列を設定しておき、 このメソッドを呼び出して配列のインデックスを指定することで視点座標への変換行列の設定を行います。
このメソッドでは変換行列の要素を内部でコピーするため、 メソッドから戻った後に変換行列を変更したりしても視点は移動しません。

このメソッドが呼び出される前に setViewTrans(AffineTrans) メソッドで視点座標への変換行列が設定されていた場合、その設定はこのメソッドの呼び出しによって上書きされます。

パラメータ:
index - 視点座標への変換行列の配列中のインデックスを指定します。
関連項目:
setViewTransArray(AffineTrans[])
例外:
NullPointerException -
視点座標への変換行列の配列が未設定の場合に発生します。
ArrayIndexOutOfBoundsException -
引数 index に負の値または視点座標への変換行列の配列の要素数以上の値が指定された場合に発生します。

setScreenCenter

void setScreenCenter(int cx,
                     int cy)
スクリーンの中心を設定します。
視点座標からスクリーン座標に変換する際のスクリーン中心パラメータをセットします。 視点座標における(0,0,0)がスクリーン上のこの座標に来るように描画されます。 再度このメソッドを呼び出すまでパラメータは保持されます。

初期状態では、このメソッドで (0,0) が設定された状態になっています。

パラメータ:
cx - スクリーンの中心の X 座標を指定します。
cy - スクリーンの中心の Y 座標を指定します。

setScreenScale

void setScreenScale(int sx,
                    int sy)
視点座標からスクリーンへのスケールを指定して平行投影の設定を行います。
視点座標からスクリーン座標に変換する際のスケールパラメータをセットします。 スケールを大きくすると、モデルやプリミティブはより大きくレンダリングされることになります。 再度このメソッドを呼び出すまでパラメータは保持されます。

初期状態では、このメソッドで (4096,4096) が設定された状態になっています。

このメソッドの引数に負の値を指定した場合、 レンダリング対象の頂点の座標が X 方向あるいは Y 方向に反転した形でレンダリングされます。
モデルを構成するポリゴンには両面ポリゴンと片面ポリゴンとがありますが、 X 方向と Y 方向の両方に負の値が指定された場合はどちらのポリゴンでも X 方向、Y 方向の両方で反転された位置に描画されます。 X 方向か Y 方向のいずれか一方にのみ負の値が指定された場合は、 位置としては X 方向か Y 方向のいずれかの方向に反転された位置になりますが、 それに加えてポリゴンの法線の方向が変わるためにポリゴンを裏から見たような形でレンダリングされます。 両面ポリゴンは裏から見た形で描画されますが、 片面ポリゴンは法線の方向の影響で描画される・されないが反転します。

このメソッドは setPerspective(int, int, int) メソッドおよび setPerspective(int, int, int, int) メソッドとは排他的な関係です。 このメソッドを呼び出した後は、レンダリングは全て平行投影で処理されます。 同様に、setPerspective(int, int, int) メソッドおよび setPerspective(int, int, int, int) メソッドを呼び出した後は、レンダリングは全て透視投影で処理されます。

パラメータ:
sx - X 方向のスケールを指定します。
sy - Y 方向のスケールを指定します。

setScreenView

void setScreenView(int width,
                   int height)
投影面の幅と高さを指定して平行投影の設定を行います。
投影面の、視点座標系での幅と高さをセットします。 投影面の幅と高さを大きくすると、レンダリングの対象となる領域が広がるため、結果としてモデルやプリミティブはより小さくレンダリングされることになります。

このメソッドは setPerspective(int, int, int) メソッドおよび setPerspective(int, int, int, int) メソッドとは排他的な関係です。 このメソッドを呼び出した後は、レンダリングは全て平行投影で処理されます。 同様に、setPerspective(int, int, int) メソッドおよび setPerspective(int, int, int, int) メソッドを呼び出した後は、レンダリングは全て透視投影で処理されます。

パラメータ:
width - 投影面の幅を指定します。
height - 投影面の高さを指定します。
例外:
IllegalArgumentException -
引数 width, height のいずれかまたは両方に負の値が指定された場合に発生します。

setPerspective

void setPerspective(int zNear,
                    int zFar,
                    int angle)
視野角を指定して透視投影の設定を行います。 ニアクリップ面からファークリップ面までのモデルとプリミティブがレンダリングされます。 パラメータは、視点座標系での距離を指定します。

このメソッドは setScreenScale(int, int) メソッドおよび setScreenView(int, int) メソッドとは排他的な関係です。 このメソッドを呼び出した後は、レンダリングは全て透視投影で処理されます。 同様に、setScreenScale(int, int) メソッドおよび setScreenView(int, int) メソッドを呼び出した後は、レンダリングは全て平行投影で処理されます。

パラメータ:
zNear - カメラからニアクリップ面までの距離を指定します。
zFar - カメラからファークリップ面までの距離を指定します。
angle - 視野角を指定します。 視野角の値は4096分周円表現で、有効範囲は1〜2047、すなわち0度 < 視野角 < 180度です。
例外:
IllegalArgumentException -
引数 zNear, zFar に、0 < zNear < zFar < 32768 の関係を満たしていない値が指定された場合に発生します。
IllegalArgumentException -
引数 angle に 0 以下の値か 2048 以上の値が指定された場合に発生します。

setPerspective

void setPerspective(int zNear,
                    int zFar,
                    int width,
                    int height)
ニアクリップ面における投影面の幅および高さを指定して透視投影の設定を行います。 ニアクリップ面からファークリップ面までのモデルとプリミティブがレンダリングされます。 パラメータは、視点座標系での距離や幅・高さを指定します。

このメソッドは setScreenScale(int, int) メソッドおよび setScreenView(int, int) メソッドとは排他的な関係です。 このメソッドを呼び出した後は、レンダリングは全て透視投影で処理されます。 同様に、setScreenScale(int, int) メソッドおよび setScreenView(int, int) メソッドを呼び出した後は、レンダリングは全て平行投影で処理されます。

パラメータ:
zNear - カメラからニアクリップ面までの距離を指定します。
zFar - カメラからファークリップ面までの距離を指定します。
width - ニアクリップ面における投影面の幅を指定します。
height - ニアクリップ面における投影面の高さを指定します。
例外:
IllegalArgumentException -
引数 zNear, zFar に、0 < zNear < zFar < 32768 の関係を満たしていない値が指定された場合に発生します。
IllegalArgumentException -
引数 width, height のいずれかまたは両方に0以下の値が指定された場合に発生します。

drawFigure

void drawFigure(Figure figure)
推奨されていません。 非推奨であるテクスチャの陰影設定に応じて、 enableToonShader(boolean) メソッドと setToonParam(int, int, int) メソッドを呼び出したのと同様の振る舞いとなります。 また、テクスチャの陰影設定が反映される以外は、 renderFigure(Figure) メソッドと flush() メソッドを続けて呼び出したのと同様の振る舞いとなります。 このため、enableToonShader(boolean)、 setToonParam(int, int, int)、 renderFigure(Figure)、 flush() メソッドを使うことを推奨します。

モデルをクリッピング領域内に描画します。 このメソッドを呼び出した際に、テクスチャや光源処理、 視点などの各種パラメータをもとに実際の描画処理が行われます。

このメソッドでモデルを描画した時には、モデルに設定されているテクスチャの陰影設定が反映されます。

パラメータ:
figure - 描画するモデルオブジェクトを指定します。
例外:
NullPointerException -
引数 figure が null の場合に発生します。
com.docomostar.ui.UIException -
(ILLEGAL_STATE)
引数figureのモデルにテクスチャが設定されていない場合に発生します。
ただし、モデルを全てカラーポリゴンで構築した場合はテクスチャは必要ないため、 引数figureのモデルにテクスチャが設定されていなくても例外は発生しません。
RuntimeException -
描画に失敗した場合に発生します。

renderFigure

void renderFigure(Figure figure)
モデルデータを設定し、レンダリングの演算を実行します。
drawFigure(Figure) メソッドとは異なり、 このメソッドを呼び出しても実際の描画は実行されず、 レンダリングの演算のみが行われます。 このメソッドを複数回呼び出すことで、複数体のモデルを描画することが可能になります。 このメソッドを呼び出した後に flush() メソッドを呼び出すことで実際の描画が行われます。

このメソッドでモデルを描画した時には、 enableToonShader(boolean) メソッドと setToonParam(int,int,int) メソッドによる陰影設定が反映されます。 モデルに設定されているテクスチャの陰影設定は反映されません。

パラメータ:
figure - レンダリングを行うモデルオブジェクトを指定します。
例外:
NullPointerException -
引数 figure に null が指定された場合に発生します。
com.docomostar.ui.UIException -
(ILLEGAL_STATE)
引数 figure のモデルにテクスチャが設定されていない場合に発生します。 ただし、モデルを全てカラーポリゴンで構築した場合はテクスチャは必要ないため、 引数figureのモデルにテクスチャが設定されていなくても例外は発生しません。
RuntimeException -
レンダリングに失敗した場合に発生します。

flush

void flush()
レンダリング演算の結果を実際に描画に反映します。

関連項目:
renderFigure(Figure), renderPrimitives(PrimitiveArray, int), renderPrimitives(PrimitiveArray, int, int, int)
例外:
RuntimeException -
描画に失敗した場合に発生します。

enableSphereMap

void enableSphereMap(boolean b)
環境マッピング処理の有効化/無効化を行います。 初期状態では無効になっています。
環境マッピング関係の各APIはこのメソッドの実行とは無関係に常時正常に実行可能です。 実際に環境マッピングが行われるためには、環境マッピング用のテクスチャ データを用意して setSphereTexture(Texture) メソッドで設定するとともに、 モデルデータにおいても反射光(Specular)が有効なっている必要があります。

パラメータ:
b - 環境マッピング処理を有効にする場合は true を、無効にする場合は false を指定します。

setSphereTexture

void setSphereTexture(Texture texture)
環境マッピング用のテクスチャを設定します。
設定されたテクスチャは、球形環境マッピングの手法で描画されます。

パラメータ:
texture - テクスチャオブジェクトを指定します。 テクスチャオブジェクトは環境マッピング用に生成されたものでなければなりません。
例外:
NullPointerException -
引数 texture が null の場合に発生します。
IllegalArgumentException -
引数 texture が不正(モデルマッピング用に生成されたもの)な場合に発生します。

enableLight

void enableLight(boolean b)
光源対応処理の有効化/無効化を行います。 初期状態では無効になっています。
光源対応の各APIはこのメソッドの実行とは無関係に常時正常に実行可能です。
光源対応処理が無効の場合には、モデルにマッピングされたテクスチャの色が そのまま描画されます。

パラメータ:
b - 光源対応処理を有効にする場合は true を、無効にする場合は false を指定します。

setAmbientLight

void setAmbientLight(int intensity)
環境光の強さ設定します。
光源対応処理が有効になっている場合、環境光は常に有効です。
初期状態では強さ 0 に設定されています。

パラメータ:
intensity - 環境光の強さを指定します。 4096 を指定した時に 1.00 (100%) となります。 なお、強さ 1.00 (100%) とは、真正面から光を当てた場合にテクスチャの RGB 値そのものになることを表します。
例外:
IllegalArgumentException -
引数 intensity に負の値か、4096 より大きい値が指定された場合に発生します。

setDirectionLight

void setDirectionLight(Vector3D direction,
                       int intensity)
平行光源の強さと方向を設定します。
光源対応処理が有効になっている場合、平行光源は常に有効です。
このメソッドでは方向ベクトルの要素を内部でコピーするため、メソッドから戻った後に 方向ベクトルを変更したりしても光源方向は変化しません。 初期状態では、方向 (0,0,1)、強さ 4096 に設定されています。

パラメータ:
direction - 平行光源の方向を表す、視点座標系でのベクトルを指定します。
intensity - 平行光源の強さを指定します。 4096 を指定した時に 1.00 (100%) となります。 なお、強さ 1.00 (100%) とは、真正面から光を当てた場合にテクスチャの RGB 値そのものになることを表します。
例外:
NullPointerException -
引数 direction が null の場合に発生します。
IllegalArgumentException -
引数 direction が零ベクトルの場合に発生します。
IllegalArgumentException -
引数 intensity に負の値か、4096 より大きい値が指定された場合に発生します。

enableSemiTransparent

void enableSemiTransparent(boolean b)
半透明処理の有効化/無効化を行います。 初期状態では無効になっています。
光源対応機能の有効/無効(enableLight(boolean))とは無関係に半透明効果が得られます。 ただし、半透明効果を得るには、モデルデータ自体の「半透明属性」が有効になっている必要があります。

プリミティブの描画において半透明効果を得るには、 プリミティブ自体にブレンドに関するプリミティブ属性 (ATTR_BLEND_HALF, ATTR_BLEND_ADD, ATTR_BLEND_SUB) が設定されている必要があります。

パラメータ:
b - 半透明処理を有効にする場合は true を、無効にする場合は false を指定します。

setClipRect3D

void setClipRect3D(int x,
                   int y,
                   int width,
                   int height)
キャンバス全体描画領域のうち3D描画のためのクリッピング領域を設定します。

Graphics.setOrigin(int, int) による原点指定の影響は受けません。

パラメータ:
x - クリッピング領域の矩形の左上の X 座標を指定します。
y - クリッピング領域の矩形の左上の Y 座標を指定します。
width - クリッピング領域の矩形の幅を指定します。
height - クリッピング領域の矩形の高さを指定します。
例外:
IllegalArgumentException -
引数 width, height のいずれかまたは両方に0未満の値が指定された場合に発生します。

enableToonShader

void enableToonShader(boolean b)
トゥーンシェーディングの有効化/無効化を行います。 初期状態では無効になっています。

drawFigure(Figure)メソッド以外の描画ではこのメソッドの設定がレンダリングに影響します。

パラメータ:
b - トゥーンシェーディングを有効にする場合は true を、無効にする場合は false を指定します。
関連項目:
setToonParam(int,int,int)

setToonParam

void setToonParam(int threshold,
                  int high,
                  int low)
レンダリングをトゥーンシェーディングで行うための情報を設定します。 シェーディング対象となる任意の点に対して、 通常の(グロー)シェーディングの結果として、その点の明るさが 元のテクスチャの明るさのd %と計算されたとすると、 このメソッド呼び出しにより、実際に描画される明るさは、 以下のようになります。

パラメータ:
threshold - 上記thresholdの値を指定します。 区間[0, 255]の値を指定することができ、 255が100%を表します。
high - 上記highの値を指定します。 区間[0, 255]の値を指定することができ、 255が100%を表します。
low - 上記lowの値を指定します。 区間[0, 255]の値を指定することができ、 255が100%を表します。
関連項目:
enableToonShader(boolean)
例外:
IllegalArgumentException -
引数のいずれかが区間[0, 255]に収まっていない場合に発生します。

setPrimitiveTextureArray

void setPrimitiveTextureArray(Texture texture)
プリミティブ描画のためのテクスチャ配列を設定します。 このメソッドは、setPrimitiveTextureArray(Texture[]) メソッドで長さ1のテクスチャ配列を引数に指定するのと同じです。
このメソッドでは配列を Graphics3D オブジェクトに設定するだけで、 実際にプリミティブ描画の際に参照されるテクスチャの設定は行いません。 実際に参照されるテクスチャを設定するには、このメソッドを呼び出した後に setPrimitiveTexture(int) メソッドを呼び出します。

パラメータ:
texture - テクスチャを指定します。
例外:
NullPointerException -
引数 texture に null が指定された場合に発生します。
IllegalArgumentException -
引数 texture が不正(環境マッピング用に生成されたもの)な場合に発生します。

setPrimitiveTextureArray

void setPrimitiveTextureArray(Texture[] textures)
プリミティブ描画のためのテクスチャ配列を設定します。
このメソッドでは配列を Graphics3D オブジェクトに設定するだけで、 実際にプリミティブ描画の際に参照されるテクスチャの設定は行いません。 実際に参照されるテクスチャを設定するには、このメソッドを呼び出した後に setPrimitiveTexture(int) メソッドを呼び出します。

パラメータ:
textures - テクスチャ配列を指定します。
例外:
NullPointerException -
引数 textures または引数 textures の配列の要素に null が指定された場合に発生します。
IllegalArgumentException -
引数 textures のいずれかの要素が不正(環境マッピング用に生成されたもの)な場合に発生します。

setPrimitiveTexture

void setPrimitiveTexture(int index)
プリミティブ描画において参照されるテクスチャを設定します。
このメソッドでは、Graphics3D オブジェクトに設定されているテクスチャ配列の中から、指定されたインデックスの要素をプリミティブ描画の際に参照されるテクスチャとして設定します。 あらかじめ setPrimitiveTextureArray(Texture) メソッドまたは setPrimitiveTextureArray(Texture[]) メソッドを呼び出してテクスチャ配列を設定しておき、 このメソッドを呼び出して配列のインデックスを指定することでテクスチャの設定を行います。

パラメータ:
index - テクスチャ配列中のインデックスを指定します。
例外:
NullPointerException -
テクスチャ配列が未設定の場合に発生します。
ArrayIndexOutOfBoundsException -
引数 index に負の値またはテクスチャ配列の要素数以上の値が指定された場合に発生します。

renderPrimitives

void renderPrimitives(PrimitiveArray primitives,
                      int attr)
プリミティブデータを設定し、レンダリングの演算を行います。
プリミティブにテクスチャ座標情報が含まれている場合、 あらかじめ setPrimitiveTextureArray(Texture) メソッドまたは setPrimitiveTextureArray(Texture[]) メソッドと、 setPrimitiveTexture(int) メソッドによってプリミティブから参照されるテクスチャを設定しておく必要があります。
プリミティブ属性は、 ATTR_LIGHT, ATTR_SPHERE_MAP, ATTR_COLOR_KEY, ATTR_BLEND_NORMAL, ATTR_BLEND_HALF, ATTR_BLEND_ADD, ATTR_BLEND_SUB を論理和で組み合わせて指定します。

このメソッドを呼び出しても実際の描画は実行されず、レンダリングの演算のみが行われます。 このメソッドを呼び出した後に flush() メソッドを呼び出すことで実際の描画が行われます。

パラメータ:
primitives - レンダリングの演算を行うプリミティブ情報を格納したプリミティブ配列オブジェクトを指定します。
attr - レンダリングの演算を行う際に使用するプリミティブ属性を指定します。
例外:
NullPointerException -
引数 primitives に null が指定された場合に発生します。
IllegalArgumentException -
引数 attr に不正な値が指定された場合に発生します。
IllegalArgumentException -
引数 primitives にテクスチャを必要とするプリミティブ配列オブジェクトが指定されたのに、Graphics3D オブジェクトに setPrimitiveTexture(int) メソッドでプリミティブ描画に使用するテクスチャが設定されていない場合に発生します。
RuntimeException -
レンダリングに失敗した場合に発生します。

renderPrimitives

void renderPrimitives(PrimitiveArray primitives,
                      int offset,
                      int length,
                      int attr)
プリミティブデータを設定し、レンダリングの演算を行います。
プリミティブにテクスチャ座標情報が含まれている場合、 あらかじめ setPrimitiveTextureArray(Texture) メソッドまたは setPrimitiveTextureArray(Texture[]) メソッドと、 setPrimitiveTexture(int) メソッドによってプリミティブから参照されるテクスチャを設定しておく必要があります。
プリミティブ属性は、 ATTR_LIGHT, ATTR_SPHERE_MAP, ATTR_COLOR_KEY, ATTR_BLEND_NORMAL, ATTR_BLEND_HALF, ATTR_BLEND_ADD, ATTR_BLEND_SUB を論理和で組み合わせて指定します。

このメソッドを呼び出しても実際の描画は実行されず、レンダリングの演算のみが行われます。 このメソッドを呼び出した後に flush() メソッドを呼び出すことで実際の描画が行われます。

パラメータ:
primitives - レンダリングの演算を行うプリミティブ情報を格納したプリミティブ配列オブジェクトを指定します。
offset - プリミティブ配列オブジェクトの中で使用するプリミティブの先頭のオフセットを指定します。
length - プリミティブ配列オブジェクトの中で使用するプリミティブの数を指定します。
attr - レンダリングの演算を行う際に使用するプリミティブ属性を指定します。
例外:
NullPointerException -
引数 primitives に null が指定された場合に発生します。
IllegalArgumentException -
引数 attr に不正な値が指定された場合に発生します。
ArrayIndexOutOfBoundsException -
引数 offset に負の値が指定された場合、引数 length に負の値が指定された場合、引数 offset または引数 offset + length の値がプリミティブ配列オブジェクトのプリミティブ数を超える場合に発生します。
IllegalArgumentException -
引数 primitives にテクスチャを必要とするプリミティブ配列オブジェクトが指定されたのに、Graphics3D オブジェクトに setPrimitiveTexture(int) メソッドでプリミティブ描画に使用するテクスチャが設定されていない場合に発生します。
RuntimeException -
レンダリングに失敗した場合に発生します。

executeCommandList

void executeCommandList(int[] commandlist)
コマンド配列によってレンダリングの演算や描画を行います。 コマンド配列の設定が煩雑である代わりに、 メソッド呼び出しのオーバヘッドの分だけ高速な処理が可能となります。

コマンド配列に視点座標への変換行列の指定が含まれている場合、 あらかじめ setViewTransArray(AffineTrans[]) メソッドによって視点座標への変換行列の配列を設定しておく必要があります。
コマンド配列にテクスチャの指定が含まれている場合、 あらかじめ setPrimitiveTextureArray(Texture) メソッドまたは setPrimitiveTextureArray(Texture[]) メソッドによってテクスチャの配列を設定しておく必要があります。

コマンド配列は、例えば以下のような形で使用します。

int commandlist[] = {
   COMMAND_LIST_VERSION_1,
   COMMAND_SCREEN_CENTER, 120, 120,
   COMMAND_SCREEN_SCALE, 4096, 4096,
   COMMAND_RENDER_TRIANGLES | COLOR_PER_FACE | ATTR_LIGHT | 1 << 16,
     0, 0, 0, 1024,1024,1024, 2048, 2048, 2048, 0x00112233,
   COMMAND_FLUSH,
   COMMAND_END
 };
 g3d.executeCommandList(commandlist);

パラメータ:
commandlist - コマンド配列を指定します。
例外:
NullPointerException -
引数 commandlist に null が指定された場合に発生します。
IllegalArgumentException -
引数 commandlist の先頭の要素が、実装がサポートしているコマンドリストのバージョン以外だった場合に発生します。
RuntimeException -
コマンド配列の実行に失敗した場合に発生します。


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ドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。