FineKernelToolKit 2.9.0

- メインページ
- ネームスペース
- クラス
- ファイル

- 構成
- クラス階層
- 構成メンバ

全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義 ページ
Public メソッド | すべてのメンバ一覧
クラス fk_ShapeViewer

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

fk_ShapeViewerに対する継承グラフ
[凡例]
fk_ShapeViewerのコラボレーション図
[凡例]

## Public メソッド
| fk_ShapeViewer (int w=300, int h=360)
| コンストラクタ [詳細]
virtual | ~fk_ShapeViewer ()
| デストラクタ [詳細]
描画処理・描画領域制御関数
bool | draw (void)
| 描画更新関数 [詳細]
void | setWindowSize (int w, int h)
| 描画領域サイズ変更関数 [詳細]
void | setOGLPointerMode (bool mode)
| OpenGL 頂点配列処理制御関数 [詳細]
bool | getOGLPointerMode (void)
| OpenGL 頂点配列処理参照関数 [詳細]
形状制御関数
void | setShape (fk_Shape *shape)
| 単独形状設定関数 [詳細]
void | setShape (int ID, fk_Shape *shape)
| ID付き形状設定関数 [詳細]
fk_Shape * | getShape (int ID=0)
| 形状参照関数 [詳細]
int | getModelNum (void)
| 形状設定数参照関数 [詳細]
void | clearModel (void)
| 形状設定初期化関数 [詳細]
virtual bool | shapeProcess (fk_Solid *shape)
| 形状設定時処理関数 [詳細]
全体描画属性制御関数
void | setDrawMode (fk_DrawMode mode)
| 描画モード設定関数 [詳細]
fk_DrawMode | getDrawMode (void)
| 描画モード参照関数 [詳細]
void | setBlendStatus (bool mode)
| 透過処理設定関数 [詳細]
bool | getBlendStatus (void)
| 透過処理参照関数 [詳細]
void | setBGColor (fk_Color col)
| 背景色設定関数1 [詳細]
void | setBGColor (float r, float g, float b)
| 背景色設定関数2 [詳細]
fk_Color | getBGColor (void)
| 背景色参照関数 [詳細]
void | setAxisMode (bool mode)
| 座標軸描画設定関数 [詳細]
bool | getAxisMode (void)
| 座標軸描画参照関数 [詳細]
void | setAxisScale (double scale)
| 座標軸大きさ設定関数 [詳細]
double | getAxisScale (void)
| 座標軸大きさ参照関数 [詳細]
fk_Vector | getCenter (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 | setHead (double angle)
| カメラヘッド角設定関数 [詳細]
double | getHead (void)
| カメラヘッド角参照関数 [詳細]
void | setPitch (double angle)
| カメラピッチ角設定関数 [詳細]
double | getPitch (void)
| カメラピッチ角参照関数 [詳細]
void | setBank (double angle)
| カメラバンク角設定関数 [詳細]
double | getBank (void)
| カメラバンク角参照関数 [詳細]
void | setScale (double scale)
| カメラ倍率設定関数 [詳細]
double | getScale (void)
| カメラ倍率参照関数 [詳細]
形状位置・姿勢制御関数
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 [詳細]
フレームレート制御関数
void | setFrameMode (fk_FrameMode mode)
| フレームレート制御方法指定関数 [詳細]
fk_FrameMode | getFrameMode (void)
| フレームレート制御方法参照関数 [詳細]
void | setFrameInterval (int ms)
| フレーム間時間設定関数 [詳細]
int | getFrameInterval (void)
| フレーム間時間参照関数 [詳細]
int | getSkipFrame (void)
| スキップフレーム数参照関数 [詳細]
描画画像取り込み関数
bool | snapImage (std::string fileName, fk_ImageType format=FK_IMAGE_BMP, fk_SnapProcMode mode=FK_SNAP_GL_FRONT)
| 描画画像ファイル出力関数 [詳細]
bool | snapImage (fk_Image *image, fk_SnapProcMode mode=FK_SNAP_GL_FRONT)
| 描画画像データ出力関数 [詳細]
メッセージ出力制御関数
void | setPutStrMode (const fk_PutStrMode mode)
| メッセージ出力モード設定関数 [詳細]
fk_PutStrMode | getPutStrMode (void)
| メッセージ出力モード参照関数 [詳細]
bool | setPutFile (const std::string &str)
| メッセージ出力用ファイル設定関数 [詳細]
void | putString (const std::string &str)
| メッセージ出力文字列設定関数 [詳細]
void | printf (const char *format,...)
| メッセージ出力書式付き設定関数 [詳細]
void | clearBrowser (void)
| メッセージ出力用ブラウザ初期化関数 [詳細]
Public メソッド inherited from fk_BaseObject
| fk_BaseObject (fk_ObjectType type=FK_BASEOBJECT)
| コンストラクタ [詳細]
fk_ObjectType | getObjectType (void) const
| タイプ取得関数 [詳細]

## 説明

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

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

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

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

- VRML、STL、DXF 各フォーマットファイル入力機能と、VRML ファイル出力機能。
- 表示されている画像をファイルに保存する機能。
- 面表示、稜線表示、頂点表示の各 ON/OFF および座標軸表示の ON/OFF。
- 光源回転有無の制御。
- 面のマテリアルおよび稜線、頂点の表示色設定。
- GUI による姿勢制御および表示倍率、座標軸サイズの制御。
- 左右矢印キーによるヘディング角制御。
- スペースキーによる表示倍率制御。スペースキー単体で拡大、 シフトキーとスペースキーを同時に押すことで縮小が行えます。
- マウスドラッグ操作による形状の平行移動。

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

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

参照
  fk_Window

## コンストラクタとデストラクタ

fk_ShapeViewer::fk_ShapeViewer | ( | int | w = `300`,
|  | int | h = `360`
| ) |  |

コンストラクタ

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

引数

  [in] | w | 描画領域横幅
  [in] | h | 描画領域縦幅

virtual fk_ShapeViewer::~fk_ShapeViewer | ( |  | ) |
| virtual

デストラクタ

## 関数

bool fk_ShapeViewer::draw | ( | void |  | ) |

描画更新関数

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

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

    fk_ShapeViewer  viewer;

    while(viewer.draw() == true) {
        // (もし必要なら)形状の変形処理を記述
    }

戻り値
  描画が正常に行えた場合、true を返します。 そうでない場合に false を返します。 これは例えば、ウィンドウが閉じられた場合などがそれに当たります。

void fk_ShapeViewer::setWindowSize | ( | int | w,
|  | int | h
| ) |  |

描画領域サイズ変更関数

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

引数

  [in] | w | 描画領域横幅
  [in] | h | 描画領域縦幅

void fk_ShapeViewer::setOGLPointerMode | ( | bool | mode | ) |

OpenGL 頂点配列処理制御関数

この関数は、OpenGL 環境における頂点配列の使用を制御します。 OpenGL には「頂点配列」と呼ばれる仕組みがあり、 一般的にはこの機能を用いると描画処理が高速になります。 しかし、実行する環境によってはかえって低速になったり、 描画に不具合が生じることもあります。 そのような場合、この関数を用いて頂点配列を利用しないように、 内部処理を切り替えることが可能です。 デフォルトでは「有効」となっています。

覚え書き
  この関数による設定は、OpenGL 環境においてのみ有効です。 Direct3D 版においては設定は意味をなしません。

引数

  [in] | mode | true の場合、頂点配列処理を有効とします。 false の場合は無効とします。

bool fk_ShapeViewer::getOGLPointerMode | ( | void |  | ) |

OpenGL 頂点配列処理参照関数

現在の OpenGL 頂点配列処理が有効であるかどうかを参照します。 頂点配列についての詳細は setOGLPointerMode() の解説を参照して下さい。

戻り値
  頂点配列処理が有効である場合 true を、 無効である場合 false を返します。

参照
  setOGLPointerMode()

void fk_ShapeViewer::setShape | ( | fk_Shape * | shape | ) |

単独形状設定関数

形状を描画対象として設定します。 fk_Shape の派生クラスであれば、 (テクスチャ系も含めて)全てのクラスを描画対象として設定できます。 なお、この関数は ID を 0 番として setShape(int, fk_Shape *) を用いた場合と同義になります。

引数

  [in] | shape | 形状インスタンス

void fk_ShapeViewer::setShape | ( | int | ID,
|  | fk_Shape * | shape
| ) |  |

ID付き形状設定関数

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

引数

  [in] | ID | 形状 ID
  [in] | shape | 形状インスタンス

fk_Shape* fk_ShapeViewer::getShape | ( | int | ID = `0` | ) |

形状参照関数

指定した ID で設定されている形状インスタンスを返します。

引数

  [in] | ID | 形状 ID

戻り値
  形状インスタンスを返します。 指定した ID の形状インスタンスが存在しない場合は、NULL を返します。

int fk_ShapeViewer::getModelNum | ( | void |  | ) |

形状設定数参照関数

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

戻り値
  形状個数

void fk_ShapeViewer::clearModel | ( | void |  | ) |

形状設定初期化関数

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

virtual bool fk_ShapeViewer::shapeProcess | ( | fk_Solid * | shape | ) |
| virtual

形状設定時処理関数

この関数は、 setShape() やファイルからの形状入力が行われた際に、 自動的に呼び出されます。 呼び出された際に、引数には形状インスタンスが入ります。 このクラスは仮想関数となっており、 fk_ShapeViewer の派生クラスにおいてこの関数を再定義することにより、 形状設定やファイル入力時に形状に対して修正や分析などを行うことが可能となります。

引数

  [in] | shape | 形状インスタンス

戻り値
  現バージョンでは特に意味はありません。

void fk_ShapeViewer::setDrawMode | ( | fk_DrawMode | mode | ) |

描画モード設定関数

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

- FK_NONEMODE: 何も描画しません。
- FK_POINTMODE: 頂点を描画します。
- FK_LINEMODE: 稜線を描画します。
- FK_POLYMODE: 面の表を描画します。
- FK_BACK_POLYMODE: 面の裏を描画します。
- FK_FRONTBACK_POLYMODE: 面の表と裏を描画します。

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

    fk_ShapeViewer  viewer;

    viewer.setDrawMode(FK_POINTMODE | FK_LINEMODE | FK_POLYMODE);

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

引数

  [in] | mode | 描画モード

参照
  setDrawMode(int, fk_DrawMode), fk_Model::setDrawMode()

fk_DrawMode fk_ShapeViewer::getDrawMode | ( | void |  | ) |

描画モード参照関数

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

戻り値
  描画モード

参照
  setDrawMode(fk_DrawMode)

void fk_ShapeViewer::setBlendStatus | ( | bool | mode | ) |

透過処理設定関数

描画の際、透過処理を有効とするかどうかを設定します。 機能的には fk_Scene::setBlendStatus() と同様です。 詳細は、 fk_Scene::setBlendStatus() のマニュアルを参照して下さい。

引数

  [in] | mode | true であれば有効、false であれば無効とします。

参照
  fk_Scene::setBlendStatus(), getBlendStatus()

bool fk_ShapeViewer::getBlendStatus | ( | void |  | ) |

透過処理参照関数

現在の透過処理状態を取得します。

戻り値
  有効であれば true を、無効であれば false を返します。

参照
  setBlendStatus()

void fk_ShapeViewer::setBGColor | ( | fk_Color | col | ) |

背景色設定関数1

描画領域の背景色を設定します。

引数

  [in] | col | 背景色

参照
  setBGColor(float, float, float), fk_Color, getBGColor()

void fk_ShapeViewer::setBGColor | ( | float | r,
|  | float | g,
|  | float | b
| ) |  |

背景色設定関数2

描画領域の背景色を設定します。 各色要素は 0 から 1 までの値を取ります。 それ以外の値が与えられた場合、0 以下なら 0 に、1 以上なら 1 に丸められます。

引数

  [in] | r | 背景色の赤要素
  [in] | g | 背景色の緑要素
  [in] | b | 背景色の青要素

参照
  setBGColor(fk_Color), getBGColor()

fk_Color fk_ShapeViewer::getBGColor | ( | void |  | ) |

背景色参照関数

描画領域の背景色を取得します。

戻り値
  背景色

参照
  fk_Color, setBGColor(fk_Color) setBGColor(float, float, float)

void fk_ShapeViewer::setAxisMode | ( | bool | mode | ) |

座標軸描画設定関数

座標軸の表示の有無を設定します。

引数

  [in] | mode | true であれば描画有効、false であれば無効とします。

参照
  setAxisScale(), getAxisMode()

bool fk_ShapeViewer::getAxisMode | ( | void |  | ) |

座標軸描画参照関数

座標軸の表示状態を取得します。

戻り値
  描画有効であれば true を、無効であれば false を返します。

参照
  setAxisMode()

void fk_ShapeViewer::setAxisScale | ( | double | scale | ) |

座標軸大きさ設定関数

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

引数

  [in] | scale | 大きさ

double fk_ShapeViewer::getAxisScale | ( | void |  | ) |

座標軸大きさ参照関数

座標軸の大きさを取得します。

戻り値
  大きさ

参照
  setAxisScale()

fk_Vector fk_ShapeViewer::getCenter | ( | void |  | ) |

描画領域中心座標参照関数

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

戻り値
  中心の位置ベクトル

void fk_ShapeViewer::setDrawMode | ( | int | ID,
|  | fk_DrawMode | mode
| ) |  |

個別形状描画モード設定関数

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

- FK_NONEMODE: 何も描画しません。
- FK_POINTMODE: 頂点を描画します。
- FK_LINEMODE: 稜線を描画します。
- FK_POLYMODE: 面の表を描画します。
- FK_BACK_POLYMODE: 面の裏を描画します。
- FK_FRONTBACK_POLYMODE: 面の表と裏を描画します。

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

    fk_ShapeViewer  viewer;

    viewer.setDrawMode(0, FK_POINTMODE | FK_LINEMODE | FK_POLYMODE);

全ての形状に対しての描画モードを設定する場合は、 setDrawMode(fk_DrawMode) を利用して下さい。

引数

  [in] | ID | 形状 ID
  [in] | mode | 描画モード

参照
  setDrawMode(fk_DrawMode), fk_Model::setDrawMode()

fk_DrawMode fk_ShapeViewer::getDrawMode | ( | int | ID | ) |

個別形状描画モード参照関数

現在の形状個別の描画モードを参照します。

引数

  [in] | ID | 形状ID

戻り値
  描画モード

参照
  setDrawMode(int, fk_DrawMode)

void fk_ShapeViewer::setLineWidth | ( | int | ID,
|  | double | width
| ) |  |

形状稜線描画幅設定関数

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

引数

  [in] | ID | 形状ID
  [in] | width | 描画幅

double fk_ShapeViewer::getLineWidth | ( | int | ID | ) |

形状稜線描画幅参照関数

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

引数

  [in] | ID | 形状ID

戻り値
  描画幅

参照
  setLineWidth()

void fk_ShapeViewer::setPointSize | ( | int | ID,
|  | double | size
| ) |  |

形状頂点描画サイズ設定関数

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

引数

  [in] | ID | 形状ID
  [in] | size | 描画サイズ

double fk_ShapeViewer::getPointSize | ( | int | ID | ) |

形状頂点描画サイズ参照関数

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

引数

  [in] | ID | 形状ID

戻り値
  描画サイズ

参照
  setPointSize()

void fk_ShapeViewer::setMaterial | ( | int | ID,
|  | fk_Material | mat
| ) |  |

形状マテリアル設定関数

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

引数

  [in] | ID | 形状ID
  [in] | mat | マテリアル

参照
  setEdgeColor(), setVertexColor(), fk_Material

void fk_ShapeViewer::setEdgeColor | ( | int | ID,
|  | fk_Color | col
| ) |  |

形状稜線描画色設定関数

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

引数

  [in] | ID | 形状ID
  [in] | col | 稜線色

参照
  setMaterial(), setVertexColor(), fk_Color

void fk_ShapeViewer::setVertexColor | ( | int | ID,
|  | fk_Color | col
| ) |  |

形状頂点描画色設定関数

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

引数

  [in] | ID | 形状ID
  [in] | col | 頂点色

参照
  setMaterial(), setEdgeColor(), fk_Color

void fk_ShapeViewer::setHead | ( | double | angle | ) |

カメラヘッド角設定関数

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

引数

  [in] | angle | ヘッド角の角度

参照
  setPitch(), setBank(), setScale(), fk_Angle

double fk_ShapeViewer::getHead | ( | void |  | ) |

カメラヘッド角参照関数

現在のカメラのヘッド角を取得します。

戻り値
  ヘッド角の角度

参照
  setHead()

void fk_ShapeViewer::setPitch | ( | double | angle | ) |

カメラピッチ角設定関数

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

引数

  [in] | angle | ピッチ角の角度

参照
  setHead(), setBank(), setScale(), fk_Angle

double fk_ShapeViewer::getPitch | ( | void |  | ) |

カメラピッチ角参照関数

現在のカメラのピッチ角を取得します。

戻り値
  ピッチ角の角度

参照
  setPitch()

void fk_ShapeViewer::setBank | ( | double | angle | ) |

カメラバンク角設定関数

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

引数

  [in] | angle | バンク角の角度

参照
  setHead(), setPitch(), setScale(), fk_Angle

double fk_ShapeViewer::getBank | ( | void |  | ) |

カメラバンク角参照関数

現在のカメラのバンク角を取得します。

戻り値
  バンク角の角度

参照
  setBank()

void fk_ShapeViewer::setScale | ( | double | scale | ) |

カメラ倍率設定関数

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

引数

  [in] | scale | 表示倍率

参照
  setHead(), setPicth(), setBank()

double fk_ShapeViewer::getScale | ( | void |  | ) |

カメラ倍率参照関数

カメラの表示倍率を取得します。

戻り値
  表示倍率

参照
  setScale()

void 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_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_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_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_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_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_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_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)

void fk_ShapeViewer::setFrameMode | ( | fk_FrameMode | mode | ) |

フレームレート制御方法指定関数

この関数は、フレームレートを制御するためのモードを指定します。 「フレームレート」とは、1秒間あたりの画面更新回数のことです。 フレームレートの制御には、以下の2種類があります。

- フレームレートが高すぎる場合に、一定のフレームレート以上が出ないようにする。 この制御を「ウェイトモード」と言います。
- フレームレートが低すぎる場合に、画面更新をスキップする。 この制御を「スキップモード」と言います。

モードには、以下の3種類が指定できます。

- FK_DEFAULT_FRAME: 制御を行いません。
- FK_WAIT_FRAME: ウェイトモードを有効にします。
- FK_SKIP_FRAME: スキップモードを有効にします。

なお、FK_WAIT_FRAME と FK_SKIP_FRAME は同時に指定することが可能です。 その場合は、以下のようにビット論理和演算子を利用します。

    fk_ShapeViewer  viewer;

    viewer.setFrameMode(FK_WAIT_FRAME | FK_SKIP_FRAME);

引数

  [in] | mode | 制御モード

参照
  setFrameInterval(), getSkipFrame(), fk_Window::setFrameMode()

fk_FrameMode fk_ShapeViewer::getFrameMode | ( | void |  | ) |

フレームレート制御方法参照関数

現在のフレームレート制御方法を取得します。

戻り値
  制御モードを返します。

参照
  setFrameMode()

void fk_ShapeViewer::setFrameInterval | ( | int | ms | ) |

フレーム間時間設定関数

この関数は、フレームレート制御の「ウェイトモード」および 「スキップモード」における、 フレーム間時間の設定を行います。 「フレーム間時間」とは、 あるフレームが表示されてから次のフレームが表示されるまでの時間のことです。 例えば秒間60フレームとしたい場合は、 フレーム間時間は となります。 なお、本関数では指定はミリ秒(1000分の1秒)単位で行い、 型は int 型となります。従って、前述した秒間60フレームの場合は 「16」または「17」を指定することになります。

引数

  [in] | ms | フレーム間時間。単位はミリ秒です。

参照
  setFrameMode() getSkipFrame(), fk_Window::setFrameInterval()

int fk_ShapeViewer::getFrameInterval | ( | void |  | ) |

フレーム間時間参照関数

現在設定されているフレーム間時間を参照します。

戻り値
  フレーム間時間を返します。単位はミリ秒です。

参照
  setFrameInterval()

int fk_ShapeViewer::getSkipFrame | ( | void |  | ) |

スキップフレーム数参照関数

フレーム制御で「スキップモード」を用いている場合に、 現在表示されているフレームとその前のフレームの間に、 何枚分のフレームが描画スキップされたかを参照します。

戻り値
  スキップされたフレーム枚数

参照
  setFrameMode(), setFrameInterval(), fk_Window::getSkipFrame()

bool fk_ShapeViewer::snapImage | ( | std::string | fileName,
|  | fk_ImageType | format = `FK_IMAGE_BMP`,
|  | fk_SnapProcMode | mode = `FK_SNAP_GL_FRONT`
| ) |  |

描画画像ファイル出力関数

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

引数

  [in] | fileName | 画像ファイル名
  [in] | format | 画像ファイルのフォーマット。 現在利用可能なフォーマットは、 fk_ImageType の解説を参照して下さい。
  [in] | mode | 画像の取込先となるグラフィックスデバイス名。 取り込みがうまく動作しない場合は、 この引数の値を変更してください。

戻り値
  出力に成功すれば true を、失敗すれば false を返します。

参照
  fk_Window::snapImage(std::string, fk_ImageType, fk_SnapProcMode)

bool fk_ShapeViewer::snapImage | ( | fk_Image * | image,
|  | fk_SnapProcMode | mode = `FK_SNAP_GL_FRONT`
| ) |  |

描画画像データ出力関数

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

引数

  [in] | image | 画像データ出力先インスタンス
  [in] | mode | 画像の取込先となるグラフィックスデバイス名。 取り込みがうまく動作しない場合は、 この引数の値を変更してください。

戻り値
  出力に成功すれば true を、失敗すれば false を返します。

参照
  fk_Window::snapImage(fk_Image *, fk_SnapProcMode)

void fk_ShapeViewer::setPutStrMode | ( | const fk_PutStrMode | mode | ) |

メッセージ出力モード設定関数

実質的に、 fk_Window::setPutStrMode() とまったく同じ動作となります。 そちらの解説を参照して下さい。

参照
  fk_Window::setPutStrMode()

fk_PutStrMode fk_ShapeViewer::getPutStrMode | ( | void |  | ) |

メッセージ出力モード参照関数

実質的に、 fk_Window::getPutStrMode() とまったく同じ動作となります。 そちらの解説を参照して下さい。

参照
  fk_Window::getPutStrMode()

bool fk_ShapeViewer::setPutFile | ( | const std::string & | str | ) |

メッセージ出力用ファイル設定関数

実質的に、 fk_Window::setPutFile() とまったく同じ動作となります。 そちらの解説を参照して下さい。

参照
  fk_Window::setPutFile()

void fk_ShapeViewer::putString | ( | const std::string & | str | ) |

メッセージ出力文字列設定関数

実質的に、 fk_Window::putString() とまったく同じ動作となります。 そちらの解説を参照して下さい。

参照
  fk_Window::putString()

void fk_ShapeViewer::printf | ( | const char * | format,
|  |  | ...
| ) |  |

メッセージ出力書式付き設定関数

実質的に、 fk_Window::printf() とまったく同じ動作となります。 そちらの解説を参照して下さい。

参照
  fk_Window::printf()

void fk_ShapeViewer::clearBrowser | ( | void |  | ) |

メッセージ出力用ブラウザ初期化関数

実質的に、 fk_Window::clearBrowser() とまったく同じ動作となります。 そちらの解説を参照して下さい。

参照
  fk_Window::clearBrowser()