kGLModel
クラス KGLModelData

java.lang.Object
  上位を拡張 kGLModel.KGLModelData
直系の既知のサブクラス:
KGLMetaseq

public class KGLModelData
extends java.lang.Object

JOGLを使用してファイルからモデルデータの読み込みと描画を行う
使用後はClear()を呼んでください
OpenGLへ登録したリソースの解放をします。

作成者:
kei

入れ子のクラスの概要
protected  class KGLModelData.GLMaterial
          マテリアルの描画情報
protected  class KGLModelData.GLObject
          モデルの各オブジェクト情報保持クラス
protected  class KGLModelData.multiInput
          文字列&バイナリデータ混合読み込みクラス
 
フィールドの概要
protected  KGLCoordinates coordinates
          座標系情報
protected  int frontFace
          表面の設定
protected  javax.media.opengl.GL gl
          OpenGLコマンド群をカプセル化したクラス (JOGL)
protected  KGLModelData.GLObject[] glObj
          描画用内部データ
protected  boolean isMakeTexPool
          テクスチャ管理クラスをこのクラスで作成したかどうか
protected  boolean isUpperGround
          モデルデータの高さ方向の最低値を原点に補正するかどうか
protected  boolean isUseVBO
          VBO(頂点配列バッファ)を使用するかどうか
protected  KGLPoint maxPos
          モデルの頂点の最小値
protected  KGLPoint minPos
          モデルの頂点の最低値
protected  KGLTextures texPool
          テクスチャ管理クラス
 
コンストラクタの概要
protected KGLModelData(javax.media.opengl.GL in_gl, KGLTextures in_texPool, float scale, KGLCoordinates in_coordinates, boolean in_isUpperGround, boolean in_isUseVBO)
          コンストラクタ createGLModelを使用してインスタンス化するので、使用しない。
 
メソッドの概要
 void Clear()
          OpenGLへ登録したリソースを解放する
static KGLModelData createGLModel(javax.media.opengl.GL in_gl, KGLTextures in_texPool, java.io.File dataFile, float scale, KGLCoordinates in_coordinates, boolean in_isUpperGround, boolean in_isUseVBO)
          ファイル名の拡張子を見て読み込みクラスを作成する。
static KGLModelData createGLModel(javax.media.opengl.GL in_gl, KGLTextures in_texPool, java.net.URL dataFile, float scale, KGLCoordinates in_coordinates, boolean in_isUpperGround, boolean in_isUseVBO)
          ファイル名の拡張子を見て読み込みクラスを作成する。
 void disables()
          描画で使ったフラグ(enables()で設定したもの)をおとす
glDsableするものは
GL_DEPTH_TEST
GL_ALPHA_TEST
GL_NORMALIZE
 void draw()
          描画
内部に持っているデータを描画する
 void draw(float alpha)
          描画
内部に持っているデータを描画する
 void enables(float scale)
          描画に必要なglEnable処理を一括して行う。
 KGLPoint getMaxPos()
          モデルの頂点の最小値を取り出す
 KGLPoint getMinPos()
          モデルの頂点の最大値を取り出す
 void materialVisible(java.lang.String materialtName, boolean isVisible)
          描画有無を変更する
 void materialVisible(java.lang.String objectName, java.lang.String materialtName, boolean isVisible)
          描画有無を変更する
 void objectVisible(java.lang.String objectName, boolean isVisible)
          描画有無を変更する
 java.lang.String toString()
          読み込んだオブジェクト/マテリアル名称を文字列にする
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

gl

protected javax.media.opengl.GL gl
OpenGLコマンド群をカプセル化したクラス (JOGL)


texPool

protected KGLTextures texPool
テクスチャ管理クラス


isMakeTexPool

protected boolean isMakeTexPool
テクスチャ管理クラスをこのクラスで作成したかどうか


isUpperGround

protected boolean isUpperGround
モデルデータの高さ方向の最低値を原点に補正するかどうか


isUseVBO

protected boolean isUseVBO
VBO(頂点配列バッファ)を使用するかどうか


frontFace

protected int frontFace
表面の設定


coordinates

protected KGLCoordinates coordinates
座標系情報


minPos

protected KGLPoint minPos
モデルの頂点の最低値


maxPos

protected KGLPoint maxPos
モデルの頂点の最小値


glObj

protected KGLModelData.GLObject[] glObj
描画用内部データ

コンストラクタの詳細

KGLModelData

protected KGLModelData(javax.media.opengl.GL in_gl,
                       KGLTextures in_texPool,
                       float scale,
                       KGLCoordinates in_coordinates,
                       boolean in_isUpperGround,
                       boolean in_isUseVBO)
コンストラクタ createGLModelを使用してインスタンス化するので、使用しない。

パラメータ:
in_gl - OpenGLコマンド群をカプセル化したクラス
in_texPool - テクスチャ管理クラス(nullならこのクラス内部に作成)
scale - モデルの倍率
in_coordinates - 表示座標情報クラス
in_isUpperGround - モデルデータの高さ方向の最低値を原点に補正するかどうか
in_isUseVBO - 頂点配列バッファを使用するかどうか
メソッドの詳細

createGLModel

public static KGLModelData createGLModel(javax.media.opengl.GL in_gl,
                                         KGLTextures in_texPool,
                                         java.io.File dataFile,
                                         float scale,
                                         KGLCoordinates in_coordinates,
                                         boolean in_isUpperGround,
                                         boolean in_isUseVBO)
                                  throws KGLException
ファイル名の拡張子を見て読み込みクラスを作成する。
→MQOファイルしか作ってないけどね!

パラメータ:
in_gl - OpenGLコマンド群をカプセル化したクラス
in_texPool - テクスチャ管理クラス(nullならこのクラス内部に作成)
dataFile - ファイル名
scale - モデルの倍率
in_coordinates - 表示座標情報クラス
in_isUpperGround - モデルデータの高さ方向の最低値を原点に補正するかどうか
in_isUseVBO - 頂点配列バッファを使用するかどうか
戻り値:
モデルデータクラス
例外:
KGLException

createGLModel

public static KGLModelData createGLModel(javax.media.opengl.GL in_gl,
                                         KGLTextures in_texPool,
                                         java.net.URL dataFile,
                                         float scale,
                                         KGLCoordinates in_coordinates,
                                         boolean in_isUpperGround,
                                         boolean in_isUseVBO)
                                  throws KGLException
ファイル名の拡張子を見て読み込みクラスを作成する。
→MQOファイルしか作ってないけどね!

パラメータ:
in_gl - OpenGLコマンド群をカプセル化したクラス
in_texPool - テクスチャ管理クラス(nullならこのクラス内部に作成)
dataFile - URL名
scale - モデルの倍率
in_coordinates - 表示座標情報クラス
in_isUpperGround - モデルデータの高さ方向の最低値を原点に補正するかどうか
in_isUseVBO - 頂点配列バッファを使用するかどうか
戻り値:
モデルデータクラス
例外:
KGLException

Clear

public void Clear()
OpenGLへ登録したリソースを解放する


objectVisible

public void objectVisible(java.lang.String objectName,
                          boolean isVisible)
描画有無を変更する

パラメータ:
objectName - オブジェクト名
isVisible - 描画有無

materialVisible

public void materialVisible(java.lang.String materialtName,
                            boolean isVisible)
描画有無を変更する

パラメータ:
materialtName - マテリアル名
isVisible - 描画有無

materialVisible

public void materialVisible(java.lang.String objectName,
                            java.lang.String materialtName,
                            boolean isVisible)
描画有無を変更する

パラメータ:
objectName - オブジェクト名
materialtName - マテリアル名
isVisible - 描画有無

enables

public void enables(float scale)
描画に必要なglEnable処理を一括して行う。
glEnableするものは
GL_DEPTH_TEST
GL_ALPHA_TEST
GL_NORMALIZE(scaleが1.0以外の場合のみ)
これらが必要ないことがわかっているときは手動で設定するほうがよいと思います

パラメータ:
scale - 描画するサイズ(1倍以外はOpenGLに余計な処理が入る)

disables

public void disables()
描画で使ったフラグ(enables()で設定したもの)をおとす
glDsableするものは
GL_DEPTH_TEST
GL_ALPHA_TEST
GL_NORMALIZE


draw

public void draw()
描画
内部に持っているデータを描画する


draw

public void draw(float alpha)
描画
内部に持っているデータを描画する

パラメータ:
alpha - 描画する透明度(0〜1)

toString

public java.lang.String toString()
読み込んだオブジェクト/マテリアル名称を文字列にする

オーバーライド:
クラス java.lang.Object 内の toString

getMaxPos

public KGLPoint getMaxPos()
モデルの頂点の最小値を取り出す


getMinPos

public KGLPoint getMinPos()
モデルの頂点の最大値を取り出す