|
||||||||
フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--com.jblend.graphics.m3d.ObjectBase | +--com.jblend.graphics.m3d.PrimitiveArray
プリミティブ集合のクラスです。
各プリミティブの頂点の座標、属性などのデータの値は、 データ別の int 型の配列を取得して、直接、要素の値を取得・設定してください。
簡易に操作したい場合は、 Primitive
クラスを利用してください。
プリミティブ集合作成時に属性の種類が指定されない場合は、 属性の値を格納する配列のメモリ領域は確保されません。
表 1 に属性の種類と対応する配列の要素数、取得するメソッドを示します。
頂点の座標・属性 | 属性を指定する値 | 配列の要素数 | 取得メソッド |
頂点の座標 | プリミティブ数×プリミティブの頂点数×3 | getVertexArray() | |
法線(面に指定) | Primitive.NORMAL_PER_FACE | プリミティブ数×3 | getNormalArray() |
法線(頂点に指定) | Primitive.NORMAL_PER_VERTEX |
プリミティブ数×プリミティブの頂点数×3 | |
色 | Primitive.COLOR_PER_FACE | プリミティブ数×1 | getColorArray() |
マッピング座標 | Primitive.TEXCOORD_PER_VERTEX |
プリミティブ数×プリミティブの頂点数×2 | getTexCoordArray() |
クラス com.jblend.graphics.m3d.ObjectBase から継承したフィールド |
BLEND_ADD, BLEND_HALF, BLEND_NORMAL, BLEND_SUB |
コンストラクタの概要 | |
PrimitiveArray(int type,
int num,
int param)
プリミティブ集合を生成します。 |
|
PrimitiveArray(Primitive[] primitive)
指定されたデータのプリミティブ集合を生成します。 |
メソッドの概要 | |
ObjectBase |
duplicate()
オブジェクトを複製します。 |
int[] |
getColorArray()
色の int 型の配列を返します。 |
int[] |
getNormalArray()
法線の int 型の配列を返します。 |
int |
getParam()
属性の種類を返します。 |
int[] |
getTexCoordArray()
マッピング座標の int 型の配列を返します。 |
int |
getType()
プリミティブのタイプを返します。 |
int[] |
getVertexArray()
頂点座標の int 型の配列を返します。 |
int |
numPrimitive()
プリミティブ数を返します。 |
クラス com.jblend.graphics.m3d.ObjectBase から継承したメソッド |
getTexture, getTransform, setBlendMode, setColorKey, setLighting, setSphereMap, setTexture, setTexture, setTransform |
クラス java.lang.Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public PrimitiveArray(int type, int num, int param)
プリミティブのタイプと集合の要素数、 どの属性を使用するかを指定してください。
要素数の最大値は 255 個です。 要素数が 256 個以上のプリミティブ集合を生成することはできません。
法線、色、マッピング座標を利用する場合は、
以下のPrimitive
クラスの定義値の論理和(OR 結合)を、
属性パラメータとして指定してください。
ただし、マッピング座標と色はどちらか一方を指定してください。
両方とも指定しない、または両方とも指定することはできません。
Primitive.NORMAL_PER_FACE
: 法線を面に指定
Primitive.NORMAL_PER_VERTEX
: 法線を頂点に指定
Primitive.COLOR_PER_FACE
: 色を面に指定
Primitive.TEXCOORD_PER_VERTEX
: マッピング座標を指定
頂点の座標、法線、色、マッピング座標は、このメソッドでは指定できません。 それぞれ int 型の配列で管理されています。 各配列を取得し、その配列の要素に直接、値を設定してください。
type
- プリミティブのタイプとして以下のいずれかを指定する
Primitive.TYPE_LINE
: 線
Primitive.TYPE_POINT
: 点
Primitive.TYPE_QUAD
: 四角形
Primitive.TYPE_TRIANGLE
: 三角形
num
- プリミティブ数param
- 属性の種類java.lang.IllegalArgumentException
- 以下の場合に発生する
public PrimitiveArray(Primitive[] primitive)
要素数の最大値は 255 個です。 要素数が 256 個以上のプリミティブ集合を生成することはできません。
引数 primitive の各要素は、コンストラクタに同一のタイプを指定して生成した同じプリミティブタイプのオブジェクトでなければなりません。
インスタンス生成後に引数 primitive に指定したプリミティブ配列を変更しても、それは反映されません。
インスタンス生成後のプリミティブの頂点座標と各属性の値は、 それぞれ int 型の配列で管理されます。 各配列を取得し、その配列の要素に直接、値を設定してください。
引数 primitive の各配列の要素が格納しているデータのうち、 オブジェクトの配置やテクスチャの個別の設定は無効となり、 配列の先頭要素のデータをプリミティブ集合全体に適応させます。
primitive
- プリミティブデータの配列NullPointerException
- primitive 配列の要素に null が格納されている場合に発生するjava.lang.IllegalArgumentException
- 以下の場合に発生する
メソッドの詳細 |
public ObjectBase duplicate()
ObjectBase
の記述:
プリミティブなデータは複製せずに、複製先と複製元で共有します。
同じオブジェクトを別々に配置したい時に、このメソッドで複製を作成して
setTransform()
メソッドで、
オブジェクトの配置だけを変更できます。
ObjectBase
内の duplicate
com.jblend.graphics.m3d.ObjectBase
からコピーされたタグ:public int getType()
Primitive.TYPE_LINE
: 線
Primitive.TYPE_POINT
: 点
Primitive.TYPE_QUAD
: 四角形
Primitive.TYPE_TRIANGLE
: 三角形
public int numPrimitive()
public int getParam()
Primitive.NORMAL_PER_FACE
: 法線が面に指定されている
Primitive.NORMAL_PER_VERTEX
: 法線が頂点に指定されている
Primitive.COLOR_PER_FACE
: 色が面に指定されている
Primitive.TEXCOORD_PER_VERTEX
: マッピング座標が頂点に指定されている
public int[] getVertexArray()
返された配列を操作することで、プリミティブの頂点位置を変更できます。
配列の要素数は、プリミティブ数×プリミティブの頂点数×3 です。 配列にはプリミティブデータ 1 つにつき、頂点座標の x 軸の座標値、 y 軸の座標値、z 軸の座標値の順番で格納されます。 たとえば、プリミティブデータが 2 個のときは、 {x1,y1,z1,x2,y2,z2} のように格納されます。public int[] getNormalArray()
返された配列を操作することで、プリミティブの法線を変更できます。
法線の属性が設定されている場合の配列の要素数を以下に示します。
Primitive.NORMAL_PER_FACE
): プリミティブ数×3
Primitive.NORMAL_PER_VERTEX
) : プリミティブ数×プリミティブの頂点数×3
public int[] getColorArray()
返された配列を操作することで、プリミティブの色を変更できます。
色の属性が設定されている場合、配列の要素数は、プリミティブ数×1 です。 色の値として、 R<16|G<<8|B を設定してください。
public int[] getTexCoordArray()
返された配列を操作することで、 プリミティブのマッピング座標を変更できます。
マッピング座標の属性が設定されている場合、 配列の要素数は、プリミティブ数×プリミティブの頂点数×2 です。
たとえば、プリミティブデータが 2 個で頂点の数が 3 個とし、 1 番目のプリミティブのマッピング座標がそれぞれ (u11,v11)、 (u12,v12)、(u13,v13)、 2 番目のプリミティブのマッピング座標がそれぞれ (u21,v21)、 (u22,v22)、(u23,v23) の場合、 {u11,v11,u12,v12,u13,v13,u21,v21,u22,v22,u23,v23} のように格納されます。
|
||||||||
フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |