com.jblend.graphics.m3d
クラス PrimitiveArray <Phase3>

java.lang.Object
  |
  +--com.jblend.graphics.m3d.ObjectBase
        |
        +--com.jblend.graphics.m3d.PrimitiveArray

public class PrimitiveArray
extends ObjectBase

プリミティブ集合のクラスです。

各プリミティブの頂点の座標、属性などのデータの値は、 データ別の int 型の配列を取得して、直接、要素の値を取得・設定してください。

簡易に操作したい場合は、 Primitive クラスを利用してください。

プリミティブ集合作成時に属性の種類が指定されない場合は、 属性の値を格納する配列のメモリ領域は確保されません。

表 1 に属性の種類と対応する配列の要素数、取得するメソッドを示します。

表 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
 

コンストラクタの詳細

PrimitiveArray

public PrimitiveArray(int type,
                      int num,
                      int param)
プリミティブ集合を生成します。

プリミティブのタイプと集合の要素数、 どの属性を使用するかを指定してください。

要素数の最大値は 255 個です。 要素数が 256 個以上のプリミティブ集合を生成することはできません。

法線、色、マッピング座標を利用する場合は、 以下のPrimitive クラスの定義値の論理和(OR 結合)を、 属性パラメータとして指定してください。 ただし、マッピング座標と色はどちらか一方を指定してください。 両方とも指定しない、または両方とも指定することはできません。

頂点の座標、法線、色、マッピング座標は、このメソッドでは指定できません。 それぞれ int 型の配列で管理されています。 各配列を取得し、その配列の要素に直接、値を設定してください。

パラメータ:
type - プリミティブのタイプとして以下のいずれかを指定する
num - プリミティブ数
param - 属性の種類
例外:
java.lang.IllegalArgumentException - 以下の場合に発生する
  • 不正なプリミティブのタイプが指定された場合
  • サポートされていない属性が指定された場合
  • プリミティブ数に 256 以上が指定された場合

PrimitiveArray

public PrimitiveArray(Primitive[] primitive)
指定されたデータのプリミティブ集合を生成します。

要素数の最大値は 255 個です。 要素数が 256 個以上のプリミティブ集合を生成することはできません。

引数 primitive の各要素は、コンストラクタに同一のタイプを指定して生成した同じプリミティブタイプのオブジェクトでなければなりません。

インスタンス生成後に引数 primitive に指定したプリミティブ配列を変更しても、それは反映されません。

インスタンス生成後のプリミティブの頂点座標と各属性の値は、 それぞれ int 型の配列で管理されます。 各配列を取得し、その配列の要素に直接、値を設定してください。

引数 primitive の各配列の要素が格納しているデータのうち、 オブジェクトの配置やテクスチャの個別の設定は無効となり、 配列の先頭要素のデータをプリミティブ集合全体に適応させます。

パラメータ:
primitive - プリミティブデータの配列
例外:
NullPointerException - primitive 配列の要素に null が格納されている場合に発生する
java.lang.IllegalArgumentException - 以下の場合に発生する
  • 同じタイプのプリミティブが指定されなかった場合
  • 指定された配列の要素数が 256 以上の場合
メソッドの詳細

duplicate

public ObjectBase duplicate()
クラス ObjectBase の記述:
オブジェクトを複製します。

プリミティブなデータは複製せずに、複製先と複製元で共有します。 同じオブジェクトを別々に配置したい時に、このメソッドで複製を作成して setTransform() メソッドで、 オブジェクトの配置だけを変更できます。

オーバーライド:
クラス ObjectBase 内の duplicate
クラス com.jblend.graphics.m3d.ObjectBase からコピーされたタグ:
戻り値:
新しいオブジェクト

getType

public int getType()
プリミティブのタイプを返します。
戻り値:
プリミティブのタイプとして以下のいずれかを返す

numPrimitive

public int numPrimitive()
プリミティブ数を返します。
戻り値:
プリミティブ数

getParam

public int getParam()
属性の種類を返します。
戻り値:
属性の種類。以下の値のいずれか、または論理和を返す。

getVertexArray

public int[] getVertexArray()
頂点座標の int 型の配列を返します。

返された配列を操作することで、プリミティブの頂点位置を変更できます。

配列の要素数は、プリミティブ数×プリミティブの頂点数×3 です。 配列にはプリミティブデータ 1 つにつき、頂点座標の x 軸の座標値、 y 軸の座標値、z 軸の座標値の順番で格納されます。 たとえば、プリミティブデータが 2 個のときは、 {x1,y1,z1,x2,y2,z2} のように格納されます。
戻り値:
頂点座標の配列

getNormalArray

public int[] getNormalArray()
法線の int 型の配列を返します。

返された配列を操作することで、プリミティブの法線を変更できます。

法線の属性が設定されている場合の配列の要素数を以下に示します。

たとえば、プリミティブが 2 個で法線が面に指定されている場合、 {dx1,dy1,dz1,dx2,dy2,dz2} のように格納されます。
戻り値:
法線の配列。設定されていない場合は null を返す。

getColorArray

public int[] getColorArray()
色の int 型の配列を返します。

返された配列を操作することで、プリミティブの色を変更できます。

色の属性が設定されている場合、配列の要素数は、プリミティブ数×1 です。 色の値として、 R<16|G<<8|B を設定してください。

戻り値:
色の配列。設定されていない場合は null を返す。

getTexCoordArray

public int[] getTexCoordArray()
マッピング座標の int 型の配列を返します。

返された配列を操作することで、 プリミティブのマッピング座標を変更できます。

マッピング座標の属性が設定されている場合、 配列の要素数は、プリミティブ数×プリミティブの頂点数×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} のように格納されます。

戻り値:
マッピング座標の配列。設定されていない場合は null を返す。


Copyright 2003 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.