com.jblend.graphics.j3d
クラス FigureLayout

java.lang.Object
  |
  +--com.jblend.graphics.j3d.FigureLayout

public class FigureLayout
extends java.lang.Object

モデルの描画レイアウト情報を表すクラス。
Graphics3D#drawFigureで指定される描画範囲内におけるモデルの向き、位置、サイズを保持します。


コンストラクタの概要
FigureLayout()
          FigureLayoutコンストラクタ
FigureLayout(AffineTrans trans, int x_scale, int y_scale, int cx, int cy)
          FigureLayoutコンストラクタ
 
メソッドの概要
 AffineTrans getAffineTrans()
          アフィン変換を取得する。
 int getCenterX()
          中心のX座標を取得する。
 int getCenterY()
          中心のY座標を取得する。
 int getParallelHeight()
          平行投影面の高さを取得する。
 int getParallelWidth()
          平行投影面の幅を取得する。
 int getScaleX()
          X軸方向のスケールを取得する。
 int getScaleY()
          Y軸方向のスケールを取得する。
 void selectAffineTrans(int index)
          アフィン変換の配列からアフィン変換を選択する。
 void setAffineTrans(AffineTrans at)
          アフィン変換を設定する。
 void setAffineTransArray(AffineTrans[] at)
          アフィン変換の配列を設定する。
 void setCenter(int cx, int cy)
          描画時のモデルの中心を設定する。
 void setParallelSize(int width, int height)
          平行投影面の幅と高さを設定する。
 void setPerspective(int zNear, int zFar, int angle)
          視野角を指定して透視投影の設定を行う。
 void setPerspective(int zNear, int zFar, int width, int height)
          ニアクリップ面における投影面の幅および高さを指定して透視投影の設定を行う。
 void setScale(int x_scale, int y_scale)
          描画時のスケールを設定する。
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

FigureLayout

public FigureLayout()
FigureLayoutコンストラクタ

FigureLayout

public FigureLayout(AffineTrans trans,
                    int x_scale,
                    int y_scale,
                    int cx,
                    int cy)
FigureLayoutコンストラクタ
パラメータ:
trans - アフィン変換(nullの場合、変換機能を利用しません)
x_scale - X軸方向のスケール
y_scale - Y軸方向のスケール
cx - 描画範囲内における中心のX座標
cy - 描画範囲内における中心のY座標
メソッドの詳細

getAffineTrans

public AffineTrans getAffineTrans()
アフィン変換を取得する。
戻り値:
AffineTrans - 現在のアフィン変換

setAffineTrans

public void setAffineTrans(AffineTrans at)
アフィン変換を設定する。
selectAffineTrans( int )とは排他関係にあり、最後に呼ばれた方が有効になります。
パラメータ:
at - アフィン変換

setAffineTransArray

public void setAffineTransArray(AffineTrans[] at)
アフィン変換の配列を設定する。
このメソッドを呼んだ後でselectAffineTrans( int )を呼ぶことで初めて 実際にアフィン変換が有効になります。 selectAffineTrans( int )を呼ばなかった場合、setAffineTrans( AffineTrans )で 設定されたアフィン変換が有効になります。
パラメータ:
at - アフィン変換の配列
例外:
NullPointerException - 引数 at または引数 at の配列の要素に null が指定された場合に発生
導入されたバージョン:
JSCL1.2

selectAffineTrans

public void selectAffineTrans(int index)
アフィン変換の配列からアフィン変換を選択する。
setAffineTransArray( AffineTrans[] )で登録したアフィン変換の配列中から インデックスの要素を有効にします。 setAffineTrans( AffineTrans )とは排他関係にあり、最後に呼ばれた方が有効になります。
パラメータ:
index - アフィン変換の配列のインデックス
例外:
ArrayIndexOutOfBoundsException - 次の場合に発生します。
  • 引数 index が負の値
  • 引数 index にアフィン変換の配列の要素数以上の値が指定された アフィン変換の配列が未設定
導入されたバージョン:
JSCL1.2

getScaleX

public int getScaleX()
X軸方向のスケールを取得する。
戻り値:
int - 現在のX軸方向のスケール

getScaleY

public int getScaleY()
Y軸方向のスケールを取得する。
戻り値:
int - 現在のY軸方向のスケール

setScale

public void setScale(int x_scale,
                     int y_scale)
描画時のスケールを設定する。
デフォルトでは512、512です。
このメソッドはsetParallelSize( int, int )、setPerspective(int, int, int)および setPerspective(int, int, int, int)メソッドとは排他の関係にあり、 最後の設定が有効になります。
パラメータ:
x_scale - X軸方向のスケール
y_scale - Y軸方向のスケール

getParallelWidth

public int getParallelWidth()
平行投影面の幅を取得する。
戻り値:
int - 平行投影面の幅
導入されたバージョン:
JSCL1.2

getParallelHeight

public int getParallelHeight()
平行投影面の高さを取得する。
戻り値:
int - 平行投影面の高さ
導入されたバージョン:
JSCL1.2

setParallelSize

public void setParallelSize(int width,
                            int height)
平行投影面の幅と高さを設定する。
このメソッドはsetScale( int, int )、setPerspective(int, int, int)および setPerspective(int, int, int, int)メソッドとは排他の関係にあり、 最後の設定が有効になります。
パラメータ:
width - 平行投影面の幅
height - 平行投影面の高さ
例外:
java.lang.IllegalArgumentException - widthが負の値あるいはheightは負の値の場合に発生
導入されたバージョン:
JSCL1.2

getCenterX

public int getCenterX()
中心のX座標を取得する。
戻り値:
int - 現在の中心のX座標

getCenterY

public int getCenterY()
中心のY座標を取得する。
戻り値:
int - 現在の中心のY座標

setCenter

public void setCenter(int cx,
                      int cy)
描画時のモデルの中心を設定する。
デフォルトでは実画面サイズの中心です。
パラメータ:
cx - 中心のX座標
cy - 中心のY座標

setPerspective

public void setPerspective(int zNear,
                           int zFar,
                           int angle)
視野角を指定して透視投影の設定を行う。 ニアクリップ面からファークリップ面までのモデルとプリミティブがレンダリングされます。 このメソッドはsetPerspective( int, int, int, int )、 setScale(int, int)およびsetCenter(int, int)メソッドとは排他の関係にあり、 最後の設定が有効になります。
パラメータ:
zNear - カメラからニアクリップ面までの距離
zFar - カメラからファークリップ面までの距離
angle - 視野角。360度=4096で、有効範囲は0度よりも大きく180度よりも小さい、すなわち1〜2047 (視野角80度を指定する場合の例:4096*80/360)
例外:
java.lang.IllegalArgumentException - 次の場合に発生します。
  • 引数 zNear < zFar を満たしていない
  • 引数 zNear が 1 以上 32766 以下を満たしていない
  • 引数 zFar が 2 以上 32767 以下を満たしていない
  • 引数 angle が 1 以上 2047 以下を満たしていない
導入されたバージョン:
JSCL1.2

setPerspective

public void setPerspective(int zNear,
                           int zFar,
                           int width,
                           int height)
ニアクリップ面における投影面の幅および高さを指定して透視投影の設定を行う。 ニアクリップ面からファークリップ面までのモデルとプリミティブがレンダリングされます。 このメソッドはsetPerspective( int, int, int )、 setScale(int, int)およびsetCenter(int, int)メソッドとは排他の関係にあり、 最後の設定が有効になります。
パラメータ:
zNear - カメラからニアクリップ面までの距離
zFar - カメラからファークリップ面までの距離
width - ニアクリップ面における投影面の幅(視点座標系の単位×4096、0以上)
height - ニアクリップ面における投影面の高さ(視点座標系の単位×4096、0以上)
例外:
java.lang.IllegalArgumentException - 次の場合に発生します。
  • 引数 zNear < zFar を満たしていない
  • 引数 zNear が 1 以上 32766 以下を満たしていない
  • 引数 zFar が 2 以上 32767 以下を満たしていない
  • 引数 width が 負の値
  • 引数 height が 負の値
導入されたバージョン:
JSCL1.2