FineKernelToolKit  3.1.0
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_ShapeViewer クラス

簡易形状表示システム用クラス [詳解]

+ FK_CLI::fk_ShapeViewer の継承関係図
+ FK_CLI::fk_ShapeViewer 連携図

公開メンバ関数

 fk_ShapeViewer ()
 コンストラクタ1 [詳解]
 
 fk_ShapeViewer (int w, int h)
 コンストラクタ2 [詳解]
 
 ~fk_ShapeViewer ()
 デストラクタ [詳解]
 
 !fk_ShapeViewer ()
 ファイナライザ [詳解]
 
描画処理・描画領域制御メソッド
bool Draw (void)
 描画更新メソッド [詳解]
 
void SetShape (int ID, fk_Shape^ shape)
 ID付き形状設定メソッド [詳解]
 
fk_ShapeGetShape (int ID)
 形状参照メソッド [詳解]
 
void ClearModel (void)
 形状設定初期化メソッド [詳解]
 
形状個別描画属性・マテリアル設定メソッド
void SetDrawMode (int ID, fk_DrawMode mode)
 個別形状描画モード設定メソッド [詳解]
 
fk_DrawMode GetDrawMode (int ID)
 描画モード参照メソッド [詳解]
 
void SetLineWidth (int ID, double width)
 形状稜線描画幅設定メソッド [詳解]
 
double GetLineWidth (int ID)
 形状稜線描画幅参照メソッド [詳解]
 
void SetPointSize (int ID, double size)
 形状頂点描画サイズ設定メソッド [詳解]
 
double GetPointSize (int ID)
 形状頂点描画サイズ参照メソッド [詳解]
 
void SetMaterial (int ID, fk_Material^ mat)
 形状マテリアル設定メソッド [詳解]
 
void SetEdgeColor (int ID, fk_Color^ col)
 形状稜線描画色設定メソッド [詳解]
 
void SetVertexColor (int ID, fk_Color^ col)
 形状頂点描画色設定メソッド [詳解]
 
カメラ角度・倍率制御メソッド
void SetPosition (int ID, fk_Vector^ pos)
 形状位置設定メソッド1 [詳解]
 
void SetPosition (int ID, double x, double y, double z)
 形状位置設定メソッド2 [詳解]
 
void SetAngle (int ID, fk_Angle^ angle)
 形状姿勢設定メソッド1 [詳解]
 
void SetAngle (int ID, double h, double p, double b)
 形状姿勢設定メソッド2 [詳解]
 
void SetVec (int ID, fk_Vector^ vec)
 形状方向ベクトル設定メソッド1 [詳解]
 
void SetVec (int ID, double x, double y, double z)
 形状方向ベクトル設定メソッド2 [詳解]
 
void SetUpvec (int ID, fk_Vector^ vec)
 形状アップベクトル設定メソッド1 [詳解]
 
void SetUpvec (int ID, double x, double y, double z)
 形状アップベクトル設定メソッド2 [詳解]
 
描画画像取り込みメソッド
bool SnapImage (String^ fileName, fk_ImageType format)
 描画画像ファイル出力メソッド [詳解]
 
bool SnapImage (fk_Image^ image)
 描画画像データ出力メソッド [詳解]
 

プロパティ

fk_Dimension^  WindowSize [set]
 描画領域サイズプロパティ [詳解]
 
fk_Shape^  Shape [get, set]
 単独形状参照・設定プロパティ [詳解]
 
int ModelNum [get]
 形状設定数プロパティ [詳解]
 
fk_DrawMode DrawMode [get, set]
 描画モードプロパティ [詳解]
 
bool BlendStatus [get, set]
 透過処理プロパティ [詳解]
 
fk_Color^  BGColor [get, set]
 背景色プロパティ [詳解]
 
bool AxisMode [get, set]
 座標軸描画設定メソッド [詳解]
 
double AxisScale [get, set]
 座標軸大きさ設定メソッド [詳解]
 
fk_Vector^  Center [get]
 描画領域中心座標プロパティ [詳解]
 
double Head [get, set]
 カメラヘッド角プロパティ [詳解]
 
double Pitch [get, set]
 カメラピッチ角プロパティ [詳解]
 
double Bank [get, set]
 カメラバンク角プロパティ [詳解]
 
double Scale [get, set]
 カメラ倍率プロパティ [詳解]
 

詳解

簡易形状表示システム用クラス

このクラスは、簡易形状表示システムを制御する機能を提供します。

FK システムにおいて、形状を表示するためには形状用インスタンスの他にモデル、 シーン、ウィンドウを準備する必要があります。 また、様々な角度から形状を閲覧したい場合には、 さらにカメラ操作のプログラムを追加しなければなりません。 fk_ShapeViewer を用いると、モデル、シーン、ウィンドウを準備する必要はなく、 閲覧するための機能が最初から備わっています。

fk_ShapeViewer が備えている標準機能は、以下のようなものがあります。

上記の操作は全てメニューなどの GUI から操作が可能で、 プログラムとして記述する必要がありません。 また、以下に述べるような各種メソッドを利用することで、 プログラムから細かく制御することもできます。 例えば、複数の形状を別々に動作させるといった制御も可能となります。 特に ID を指定しなかった場合や、メニューから形状データを読み込んだ場合は、 形状 ID が 0 となります。

変形アニメーションの様子を表示することも可能です。 これは、 Draw() を変形する度に呼び出すことで実現できます。

参照
fk_AppWindow

構築子と解体子

FK_CLI::fk_ShapeViewer::fk_ShapeViewer ( )

コンストラクタ1

描画領域の大きさが横幅 300 ピクセル、 縦幅 360 ピクセルとしてインスタンスを生成します。 ウィンドウ全体の大きさではないことに注意して下さい。

FK_CLI::fk_ShapeViewer::fk_ShapeViewer ( int  w,
int  h 
)

コンストラクタ2

描画領域の大きさを指定することができます。単位はピクセルとなります。 ウィンドウ全体の大きさではないことに注意して下さい。

引数
[in]w描画領域横幅
[in]h描画領域縦幅
FK_CLI::fk_ShapeViewer::~fk_ShapeViewer ( )

デストラクタ

FK_CLI::fk_ShapeViewer::!fk_ShapeViewer ( )

ファイナライザ

関数詳解

bool FK_CLI::fk_ShapeViewer::Draw ( void  )

描画更新メソッド

形状の描画を行います。 GUI ならびにメソッドによって操作を行っても、 このメソッドを呼ばなければ画面は更新されません。

通常は、以下のようなコードを記述することになります。

fk_ShapeViewer  viewer;

while(viewer.Draw() == true) {
    // (もし必要なら)形状の変形処理を記述
}
戻り値
描画が正常に行えた場合、true を返します。 そうでない場合に false を返します。 これは例えば、ウィンドウが閉じられた場合などがそれに当たります。
void FK_CLI::fk_ShapeViewer::SetShape ( int  ID,
fk_Shape shape 
)

ID付き形状設定メソッド

形状を描画対象として設定します。 複数の形状を同時に描画したい場合は、 異なる ID をそれぞれの形状に付けることで実現できます。

Shape プロパティによる設定は、 本メソッドで ID に 0 を入力した場合と同義となります。

引数
[in]ID形状 ID
[in]shape形状インスタンス
fk_Shape ^ FK_CLI::fk_ShapeViewer::GetShape ( int  ID)

形状参照メソッド

指定した ID で設定されている形状インスタンスを返します。 Shape プロパティを参照することは、 本メソッドで ID に 0 を入力した場合と同義となります。

引数
[in]ID形状 ID
戻り値
形状インスタンスを返します。 指定した ID の形状インスタンスが存在しない場合は、null を返します。
void FK_CLI::fk_ShapeViewer::ClearModel ( void  )

形状設定初期化メソッド

現在設定されている全ての形状情報を消去します。

void FK_CLI::fk_ShapeViewer::SetDrawMode ( int  ID,
fk_DrawMode  mode 
)

個別形状描画モード設定メソッド

個別の形状に対して描画モードを設定します。 描画モードとは、 面、稜線、頂点のそれぞれを描画するかどうかを制御するものです。 描画モードには以下のようなものがあります。

これらの描画モードは、 ビット論理和を用いて複数のものを同時に指定することが可能です。 以下のコードは、頂点、稜線、面の表をすべて描画するように設定します。

fk_ShapeViewer  viewer;

viewer.setDrawMode(1, fk_DrawMode.POINTMODE | fk_DrawMode.LINEMODE | fk_DrawMode.POLYMODE);

全ての形状に対しての描画モードを設定する場合は、 fk_ShapeViewer::DrawMode プロパティを利用して下さい。

引数
[in]ID形状 ID
[in]mode描画モード
参照
DrawMode, fk_Model::DrawMode
fk_DrawMode FK_CLI::fk_ShapeViewer::GetDrawMode ( int  ID)

描画モード参照メソッド

現在の描画モードを参照します。

戻り値
描画モード
参照
SetDrawMode(int, fk_DrawMode)
void FK_CLI::fk_ShapeViewer::SetLineWidth ( int  ID,
double  width 
)

形状稜線描画幅設定メソッド

形状に対し、稜線の描画幅を設定します。 単位はピクセルです。整数以外も設定可能です。

引数
[in]ID形状ID
[in]width描画幅
double FK_CLI::fk_ShapeViewer::GetLineWidth ( int  ID)

形状稜線描画幅参照メソッド

形状の稜線描画幅を取得します。 単位はピクセルです。

引数
[in]ID形状ID
戻り値
描画幅
参照
GetLineWidth()
void FK_CLI::fk_ShapeViewer::SetPointSize ( int  ID,
double  size 
)

形状頂点描画サイズ設定メソッド

形状に対し、頂点描画サイズを設定します。 単位はピクセルです。整数以外も設定可能です。

引数
[in]ID形状ID
[in]size描画サイズ
double FK_CLI::fk_ShapeViewer::GetPointSize ( int  ID)

形状頂点描画サイズ参照メソッド

形状の頂点描画サイズを取得します。 単位はピクセルです。

引数
[in]ID形状ID
戻り値
描画サイズ
参照
SetPointSize()
void FK_CLI::fk_ShapeViewer::SetMaterial ( int  ID,
fk_Material mat 
)

形状マテリアル設定メソッド

形状に対し、面のマテリアルを設定します。

引数
[in]ID形状ID
[in]matマテリアル
参照
SetEdgeColor(), SetVertexColor(), fk_Material
void FK_CLI::fk_ShapeViewer::SetEdgeColor ( int  ID,
fk_Color col 
)

形状稜線描画色設定メソッド

形状に対し、稜線の描画色を設定します。

引数
[in]ID形状ID
[in]col稜線色
参照
SetMaterial(), SetVertexColor(), fk_Color
void FK_CLI::fk_ShapeViewer::SetVertexColor ( int  ID,
fk_Color col 
)

形状頂点描画色設定メソッド

形状に対し、頂点の描画色を設定します。

引数
[in]ID形状ID
[in]col頂点色
参照
SetMaterial(), SetEdgeColor(), fk_Color
void FK_CLI::fk_ShapeViewer::SetPosition ( int  ID,
fk_Vector pos 
)

形状位置設定メソッド1

形状の位置を設定します。

引数
[in]ID形状ID
[in]pos形状位置ベクトル
参照
SetPosition(int, double, double, double), SetAngle(int, fk_Angle^), SetVec(int, fk_Vector^), SetUpvec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetPosition ( int  ID,
double  x,
double  y,
double  z 
)

形状位置設定メソッド2

形状の位置を設定します。

引数
[in]ID形状ID
[in]x形状位置ベクトルのx成分
[in]y形状位置ベクトルのy成分
[in]z形状位置ベクトルのz成分
参照
SetPosition(int, fk_Vector^), SetAngle(int, fk_Angle^), SetVec(int, fk_Vector^), SetUpvec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetAngle ( int  ID,
fk_Angle angle 
)

形状姿勢設定メソッド1

形状の姿勢をオイラー角で設定します。 オイラー角については、 fk_Angle の解説を参照して下さい。

引数
[in]ID形状ID
[in]angle姿勢を表すオイラー角
参照
SetAngle(int, double, double, double), SetPosition(int, fk_Vector^), SetVec(int, fk_Vector^), SetUpvec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetAngle ( int  ID,
double  h,
double  p,
double  b 
)

形状姿勢設定メソッド2

形状の姿勢をオイラー角で設定します。 オイラー角については、 fk_Angle の解説を参照して下さい。 なお、角度の単位は弧度法(ラジアン)となります。

引数
[in]ID形状ID
[in]h姿勢を表すオイラー角のヘッド角度
[in]p姿勢を表すオイラー角のピッチ角度
[in]b姿勢を表すオイラー角のバンク角度
参照
SetAngle(int, fk_Angle^), SetPosition(int, fk_Vector^), SetVec(int, fk_Vector^), SetUpvec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetVec ( int  ID,
fk_Vector vec 
)

形状方向ベクトル設定メソッド1

形状の方向ベクトルを設定します。 方向ベクトルは正規化してある必要はありません。

引数
[in]ID形状ID
[in]vec方向ベクトル
参照
SetVec(int, double, double, double), SetPosition(int, fk_Vector^), SetAngle(int, fk_Angle^), SetUpvec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetVec ( int  ID,
double  x,
double  y,
double  z 
)

形状方向ベクトル設定メソッド2

形状の方向ベクトルを設定します。 方向ベクトルは正規化してある必要はありません。

引数
[in]ID形状ID
[in]x方向ベクトルのx成分
[in]y方向ベクトルのy成分
[in]z方向ベクトルのz成分
参照
SetVec(int, fk_Vector^), SetPosition(int, fk_Vector^), SetAngle(int, fk_Angle^), SetUpvec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetUpvec ( int  ID,
fk_Vector vec 
)

形状アップベクトル設定メソッド1

形状のアップベクトルを設定します。 アップベクトルは正規化してある必要はありません。

引数
[in]ID形状ID
[in]vecアップベクトル
参照
SetUpvec(int, double, double, double), SetPosition(int, fk_Vector^), SetAngle(int, fk_Angle^), SetVec(int, fk_Vector^)
void FK_CLI::fk_ShapeViewer::SetUpvec ( int  ID,
double  x,
double  y,
double  z 
)

形状アップベクトル設定メソッド2

形状のアップベクトルを設定します。 アップベクトルは正規化してある必要はありません。

引数
[in]ID形状ID
[in]xアップベクトルのx成分
[in]yアップベクトルのy成分
[in]zアップベクトルのz成分
参照
SetUpvec(int, fk_Vector^), SetPosition(int, fk_Vector^), SetAngle(int, fk_Angle^), SetVec(int, fk_Vector^)
bool FK_CLI::fk_ShapeViewer::SnapImage ( String^  fileName,
fk_ImageType  format 
)

描画画像ファイル出力メソッド

このメソッドは、描画領域に表示されている画像を、画像ファイルとして出力します。

引数
[in]fileName画像ファイル名
[in]format画像ファイルのフォーマット。 現在利用可能なフォーマットは、 fk_ImageType の解説を参照して下さい。
戻り値
出力に成功すれば true を、失敗すれば false を返します。
bool FK_CLI::fk_ShapeViewer::SnapImage ( fk_Image image)

描画画像データ出力メソッド

このメソッドは、描画領域に表示されている画像を、 fk_Image 型のインスタンスに出力します。

引数
[in]image画像データ出力先インスタンス
戻り値
出力に成功すれば true を、失敗すれば false を返します。

プロパティ詳解

fk_Dimension^ FK_CLI::fk_ShapeViewer::WindowSize
set

描画領域サイズプロパティ

描画領域のサイズを変更します。単位はピクセルとなります。

fk_Shape^ FK_CLI::fk_ShapeViewer::Shape
getset

単独形状参照・設定プロパティ

形状を描画対象として設定します。 fk_Shape の派生クラスであれば、 (テクスチャ系も含めて)全てのクラスを描画対象として設定できます。

なお、このプロパティへの設定は ID を 0 番として SetShape(int, fk_Shape^) を用いた場合と同義になります。 また、参照は GetShape() において ID に 0 を指定した場合と同義となります。

参照
SetShape(), GetShape()
int FK_CLI::fk_ShapeViewer::ModelNum
get

形状設定数プロパティ

現在設定されている形状の個数を参照します。

fk_DrawMode FK_CLI::fk_ShapeViewer::DrawMode
getset

描画モードプロパティ

登録されている全ての形状の描画モードを設定します。 描画モードとは、 面、稜線、頂点のそれぞれを描画するかどうかを制御するものです。 描画モードには以下のようなものがあります。

これらの描画モードは、 ビット論理和を用いて複数のものを同時に指定することが可能です。 以下のコードは、頂点、稜線、面の表をすべて描画するように設定します。

fk_ShapeViewer  viewer;

viewer.DrawMode = fk_DrawMode.POINTMODE | fk_DrawMode.LINEMODE | fk_DrawMode.POLYMODE;

個別の形状に対して別々の描画モードを設定する場合は、 SetDrawMode(int, fk_DrawMode) を利用して下さい。

参照
SetDrawMode(int, fk_DrawMode), fk_Model::DrawMode
bool FK_CLI::fk_ShapeViewer::BlendStatus
getset

透過処理プロパティ

描画の際、透過処理を有効とするかどうかの参照・設定を行います。 true であれば有効、false であれば無効とします。 機能的には fk_Scene::BlendStatus プロパティと同様です。 詳細は、 fk_Scene::BlendStatus のマニュアルを参照して下さい。

参照
fk_Scene::BlendStatus
fk_Color^ FK_CLI::fk_ShapeViewer::BGColor
getset

背景色プロパティ

描画領域背景色の参照・設定を行います。

bool FK_CLI::fk_ShapeViewer::AxisMode
getset

座標軸描画設定メソッド

座標軸の表示の有無の参照・設定を行います。 true であれば描画有効、false であれば無効とします。

参照
AxisScale
double FK_CLI::fk_ShapeViewer::AxisScale
getset

座標軸大きさ設定メソッド

座標軸の大きさの参照・設定を行います。 ここでいう大きさとは、各軸の長さのことです。

参照
AxisMode
fk_Vector^ FK_CLI::fk_ShapeViewer::Center
get

描画領域中心座標プロパティ

現在の描画領域で中心(注視点)となっている位置の位置ベクトルを参照します。

double FK_CLI::fk_ShapeViewer::Head
getset

カメラヘッド角プロパティ

カメラのヘッド角の参照・設定を行います。 ヘッド角についての詳細は、 fk_Angle の解説を参照して下さい。 引数の単位は弧度法(ラジアン)となります。

参照
Pitch, Bank, Scale, fk_Angle
double FK_CLI::fk_ShapeViewer::Pitch
getset

カメラピッチ角プロパティ

カメラのピッチ角の参照・設定を行います。 ピッチ角についての詳細は、 fk_Angle の解説を参照して下さい。 引数の単位は弧度法(ラジアン)となります。

参照
Head, Bank, Scale, fk_Angle
double FK_CLI::fk_ShapeViewer::Bank
getset

カメラバンク角プロパティ

カメラのバンク角の参照・設定を行います。 バンク角についての詳細は、 fk_Angle の解説を参照して下さい。 引数の単位は弧度法(ラジアン)となります。

参照
Head, Pitch, Scale, fk_Angle
double FK_CLI::fk_ShapeViewer::Scale
getset

カメラ倍率プロパティ

カメラの表示倍率を設定します。

参照
Head, Picth, Bank