FineKernelToolKit 3.1.0

- 総合概要
- 名前空間
- クラス
- ファイル

- クラス一覧
- クラス階層
- クラスメンバ

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

2D スプライトモデルクラス [詳解]

FK_CLI::fk_SpriteModel の継承関係図
[凡例]
FK_CLI::fk_SpriteModel 連携図
[凡例]

## 公開メンバ関数
| fk_SpriteModel ()
| コンストラクタ [詳解]
| ~fk_SpriteModel ()
| デストラクタ [詳解]
| !fk_SpriteModel ()
| ファイナライザ [詳解]
bool | ReadBMP (String^ filename)
| Windows Bitmap (BMP)画像読み込みメソッド [詳解]
bool | ReadPNG (String^ filename)
| PNG画像読み込みメソッド [詳解]
bool | ReadJPG (String^ filename)
| JPEG(JPG)画像読み込みメソッド [詳解]
void | SetPositionLT (double x, double y)
| 画像位置指定メソッド [詳解]
void | SetSpriteArea (double x, double y, double w, double h)
| 画像表示領域指定メソッド [詳解]
bool | InitFont (String^ fontFileName)
| 文字列描画用フォント設定メソッド [詳解]
void | DrawText (String^ str)
| 文字列表示メソッド [詳解]
void | DrawText (String^ str, bool mode)
| 初期化設定付き文字列表示メソッド [詳解]
void | ClearText (void)
| 文字列消去メソッド [詳解]
基底クラス FK_CLI::fk_Model に属する継承公開メンバ関数
| fk_Model::fk_Model ()
| コンストラクタ [詳解]
| fk_Model::~fk_Model ()
| デストラクタ [詳解]
| fk_Model::!fk_Model ()
| ファイナライザ [詳解]
void | DeleteMaterial (void)
| 基本マテリアル削除メソッド [詳解]
void | DeletePointColor (void)
| 頂点色削除メソッド [詳解]
void | DeleteLineColor (void)
| 稜線色削除メソッド [詳解]
bool | SetParent (fk_Model^ model, bool mode)
| 親モデル設定メソッド1 [詳解]
bool | SetParent (fk_Model^ model)
| 親モデル設定メソッド2 [詳解]
void | DeleteParent (bool mode)
| 親モデル解除メソッド1 [詳解]
void | DeleteParent (void)
| 親モデル解除メソッド2 [詳解]
bool | EntryChild (fk_Model^ model, bool mode)
| 子モデル設定メソッド1 [詳解]
bool | EntryChild (fk_Model^ model)
| 子モデル設定メソッド2 [詳解]
bool | DeleteChild (fk_Model^ model, bool mode)
| 子モデル解除メソッド1 [詳解]
bool | DeleteChild (fk_Model^ model)
| 子モデル解除メソッド2 [詳解]
void | DeleteChildren (bool mode)
| 全子モデル解除メソッド1 [詳解]
void | DeleteChildren (void)
| 全子モデル解除メソッド2 [詳解]
void | SnapShot (void)
| 位置・姿勢保存メソッド [詳解]
bool | Restore (void)
| 位置・姿勢復元メソッド [詳解]
bool | Restore (double t)
| 位置・姿勢途中復元メソッド [詳解]
void | AdjustSphere (void)
| 境界球自動設定メソッド [詳解]
void | AdjustAABB (void)
| AABB 自動設定メソッド [詳解]
void | AdjustOBB (void)
| OBB 自動設定メソッド [詳解]
void | AdjustCapsule (fk_Vector^ S, fk_Vector^ E)
| 境界カプセル自動設定メソッド [詳解]
bool | IsInter (fk_Model^ model)
| モデル間干渉判定メソッド [詳解]
bool | IsCollision (fk_Model^ model, double% time)
| モデル間衝突判定メソッド [詳解]
void | ResetInter (void)
| 干渉継続状態初期化メソッド [詳解]
void | EntryInterModel (fk_Model^ model)
| 干渉自動停止モデル登録メソッド [詳解]
void | DeleteInterModel (fk_Model^ model)
| 干渉自動停止モデル解除メソッド [詳解]
void | ClearInterModel (void)
| 干渉自動停止モデル初期化メソッド [詳解]
bool | GlRotate (fk_Vector^ origin, fk_Axis axis, double theta)
| グローバル座標系座標軸回転メソッド1 [詳解]
bool | GlRotate (double x, double y, double z, fk_Axis axis, double theta)
| グローバル座標系座標軸回転メソッド2 [詳解]
bool | GlRotate (fk_Vector^ A, fk_Vector^ B, double theta)
| グローバル座標系任意軸回転メソッド1 [詳解]
bool | GlRotate (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
| グローバル座標系任意軸回転メソッド2 [詳解]
bool | LoRotate (fk_Vector^ origin, fk_Axis axis, double theta)
| ローカル座標系座標軸回転メソッド1 [詳解]
bool | LoRotate (double x, double y, double z, fk_Axis axis, double theta)
| ローカル座標系座標軸回転メソッド2 [詳解]
bool | LoRotate (fk_Vector^ A, fk_Vector^ B, double theta)
| ローカル座標系任意軸回転メソッド1 [詳解]
bool | LoRotate (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
| ローカル座標系任意軸回転メソッド2 [詳解]
bool | GlRotateWithVec (fk_Vector^ origin, fk_Axis axis, double theta)
| グローバル座標系座標軸回転(姿勢付き)メソッド1 [詳解]
bool | GlRotateWithVec (double x, double y, double z, fk_Axis axis, double theta)
| グローバル座標系座標軸回転(姿勢付き)メソッド2 [詳解]
bool | GlRotateWithVec (fk_Vector^ A, fk_Vector^ B, double theta)
| グローバル座標系任意軸回転(姿勢付き)メソッド1 [詳解]
bool | GlRotateWithVec (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
| グローバル座標系任意軸回転(姿勢付き)メソッド2 [詳解]
bool | LoRotateWithVec (fk_Vector^ origin, fk_Axis axis, double theta)
| ローカル座標系座標軸回転(姿勢付き)メソッド1 [詳解]
bool | LoRotateWithVec (double x, double y, double z, fk_Axis axis, double theta)
| ローカル座標系座標軸回転(姿勢付き)メソッド2 [詳解]
bool | LoRotateWithVec (fk_Vector^ A, fk_Vector^ B, double theta)
| ローカル座標系任意軸回転(姿勢付き)メソッド1 [詳解]
bool | LoRotateWithVec (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta)
| ローカル座標系任意軸回転(姿勢付き)メソッド2 [詳解]
bool | GlTranslate (fk_Vector^ v)
| グローバル座標系平行移動メソッド1 [詳解]
bool | GlTranslate (double x, double y, double z)
| グローバル座標系平行移動メソッド2 [詳解]
bool | LoTranslate (fk_Vector^ v)
| ローカル座標系平行移動メソッド1 [詳解]
bool | LoTranslate (double x, double y, double z)
| ローカル座標系平行移動メソッド2 [詳解]
bool | GlMoveTo (fk_Vector^ p)
| グローバル座標系位置指定メソッド1 [詳解]
bool | GlMoveTo (double x, double y, double z)
| グローバル座標系位置指定メソッド2 [詳解]
基底クラス FK_CLI::fk_Boundary に属する継承公開メンバ関数
void | SetCapsule (fk_Vector^ startPos, fk_Vector^ endPos, double radius)
| カプセル型設定メソッド [詳解]
double | GetCapsuleRadius (void)
| カプセル型領域規定距離取得メソッド [詳解]
double | GetCapsuleLength (void)
| カプセル型中心軸長取得メソッド [詳解]
fk_Vector^ | GetCapsuleStartPos (void)
| カプセル型中心軸始点取得メソッド [詳解]
fk_Vector^ | GetCapsuleEndPos (void)
| カプセル型中心軸終点取得メソッド [詳解]
基底クラス FK_CLI::fk_MatrixAdmin に属する継承公開メンバ関数
bool | SetScale (double scale, fk_Axis axis)
| 軸方向絶対倍率設定メソッド [詳解]
bool | SetScale (double x, double y, double z)
| 軸方向個別絶対倍率設定メソッド [詳解]
bool | PrdScale (double scale)
| 全体相対倍率設定メソッド [詳解]
bool | PrdScale (double scale, fk_Axis axis)
| 軸方向相対倍率設定メソッド [詳解]
bool | PrdScale (double x, double y, double z)
| 軸方向個別相対倍率設定メソッド [詳解]
double | GetScale (fk_Axis axis)
| 軸方向倍率取得メソッド [詳解]
bool | GlFocus (fk_Vector^ p)
| グローバル座標系注視点設定メソッド1 [詳解]
bool | GlFocus (double x, double y, double z)
| グローバル座標系注視点設定メソッド2 [詳解]
bool | LoFocus (fk_Vector^ p)
| ローカル座標系注視点設定メソッド1 [詳解]
bool | LoFocus (double x, double y, double z)
| ローカル座標系注視点設定メソッド2 [詳解]
bool | GlVec (fk_Vector^ v)
| グローバル座標系方向ベクトル設定メソッド1 [詳解]
bool | GlVec (double x, double y, double z)
| グローバル座標系方向ベクトル設定メソッド2 [詳解]
bool | GlUpvec (fk_Vector^ v)
| グローバル座標系アップベクトル設定メソッド1 [詳解]
bool | GlUpvec (double x, double y, double z)
| グローバル座標系アップベクトル設定メソッド2 [詳解]
bool | LoUpvec (fk_Vector^ v)
| ローカル座標系アップベクトル設定メソッド1 [詳解]
bool | LoUpvec (double x, double y, double z)
| ローカル座標系アップベクトル設定メソッド2 [詳解]
bool | GlAngle (fk_Angle^ angle)
| グローバル座標系オイラー角設定メソッド1 [詳解]
bool | GlAngle (double h, double p, double b)
| グローバル座標系オイラー角設定メソッド2 [詳解]
bool | LoAngle (fk_Angle^ angle)
| ローカル座標系オイラー角設定メソッド1 [詳解]
bool | LoAngle (double h, double p, double b)
| ローカル座標系オイラー角設定メソッド2 [詳解]

## プロパティ
fk_TextImage^ | Text`[get]`
| 文字列描画オブジェクトプロパティ [詳解]
fk_Image^ | Image`[get, set]`
| 画像データプロパティ [詳解]
fk_TexCoord^ | Size`[get, set]`
| 表示サイズプロパティ [詳解]
bool | SmoothMode`[get, set]`
| 画像表示モードプロパティ [詳解]
基底クラス FK_CLI::fk_Model に属する継承プロパティ
unsigned int | ID`[get]`
| ID プロパティ [詳解]
fk_Shape^ | Shape`[get, set]`
| 形状プロパティ [詳解]
bool | PickMode`[get, set]`
| ピックモードプロパティ [詳解]
fk_Model^ | Parent`[get, set]`
| 親モデルプロパティ [詳解]
fk_Material^ | Material`[get, set]`
| マテリアルプロパティ [詳解]
fk_Material^ | InhMaterial`[get]`
| 継承マテリアルプロパティ [詳解]
fk_Color^ | PointColor`[get, set]`
| 頂点色プロパティ [詳解]
fk_Color^ | InhPointColor`[get]`
| 継承頂点色プロパティ [詳解]
fk_Color^ | LineColor`[get, set]`
| 稜線色プロパティ [詳解]
fk_Color^ | InhLineColor`[get]`
| 継承稜線色プロパティ [詳解]
double | PointSize`[get, set]`
| 頂点描画サイズプロパティ [詳解]
double | LineWidth`[get, set]`
| 稜線描画幅プロパティ [詳解]
fk_DrawMode | DrawMode`[get, set]`
| 描画モードプロパティ [詳解]
fk_MaterialMode | MaterialMode`[get, set]`
| マテリアルモードプロパティ [詳解]
bool | SmoothMode`[get, set]`
| スムースモードプロパティ [詳解]
bool | ReverseDrawMode`[get, set]`
| 描画順序制御プロパティ [詳解]
fk_DepthMode | DepthMode`[get, set]`
| 前後関係制御プロパティ [詳解]
fk_BlendMode | BlendMode`[get, set]`
| ブレンドモード設定プロパティ [詳解]
fk_BlendFactor | BlendSrcFactor`[get, set]`
| ブレンド時の入力ピクセル係数設定プロパティ [詳解]
fk_BlendFactor | BlendDstFactor`[get, set]`
| ブレンド時の出力ピクセル係数設定プロパティ [詳解]
fk_Vector^ | InhPosition`[get]`
| 継承位置ベクトルプロパティ [詳解]
fk_Vector^ | InhVec`[get]`
| 継承方向ベクトルプロパティ [詳解]
fk_Vector^ | InhUpvec`[get]`
| 継承アップベクトルプロパティ [詳解]
fk_Angle^ | InhAngle`[get]`
| 継承オイラー角参照メソッド [詳解]
double | InhScale`[get]`
| 継承全体倍率プロパティ [詳解]
fk_Matrix^ | InhMatrix`[get]`
| 継承変換行列プロパティ [詳解]
fk_Matrix^ | InhInvMatrix`[get]`
| 継承逆変換行列プロパティ [詳解]
fk_Matrix^ | InhBaseMatrix`[get]`
| 継承移動・回転要素変換行列プロパティ [詳解]
fk_Matrix^ | InhInvBaseMatrix`[get]`
| 継承移動・回転要素逆変換行列プロパティ [詳解]
bool | InterMode`[get, set]`
| 干渉継続モード設定メソッド [詳解]
bool | InterStatus`[get]`
| 干渉継続状態プロパティ [詳解]
bool | InterStopMode`[get, set]`
| 干渉自動停止モードプロパティ [詳解]
基底クラス FK_CLI::fk_Boundary に属する継承プロパティ
fk_BoundaryMode | BMode`[get, set]`
| 境界ボリューム選択プロパティ [詳解]
double | SphereRadius`[get, set]`
| 境界球半径プロパティ [詳解]
fk_Vector^ | AABB`[get, set]`
| 軸平行境界ボックス (AABB) サイズプロパティ [詳解]
fk_Vector^ | OBB`[get, set]`
| 有向境界ボックス (OBB) サイズプロパティ [詳解]
bool | BDraw`[get, set]`
| 境界ボリューム描画有無プロパティ [詳解]
fk_Color^ | BLineColor`[get, set]`
| 境界ボリューム非干渉描画色プロパティ [詳解]
fk_Color^ | BIntLineColor`[get, set]`
| 境界ボリューム干渉状態描画色プロパティ [詳解]
double | BLineWidth`[get, set]`
| 境界ボリューム描画線幅プロパティ [詳解]
基底クラス FK_CLI::fk_MatrixAdmin に属する継承プロパティ
fk_Vector^ | Position`[get]`
| 位置ベクトルプロパティ [詳解]
fk_Vector^ | Vec`[get]`
| 方向ベクトルプロパティ [詳解]
fk_Vector^ | Upvec`[get]`
| アップベクトルプロパティ [詳解]
fk_Angle^ | Angle`[get]`
| オイラー角取得メソッド [詳解]
fk_Matrix^ | Matrix`[get]`
| 変換行列プロパティ [詳解]
fk_Matrix^ | InvMatrix`[get]`
| 逆変換行列プロパティ [詳解]
fk_Matrix^ | BaseMatrix`[get]`
| 移動・回転要素変換行列プロパティ [詳解]
fk_Matrix^ | InvBaseMatrix`[get]`
| 移動・回転要素逆変換行列プロパティ [詳解]
bool | ScaleMode`[get]`
| 拡大縮小状態判定プロパティ [詳解]
double | Scale`[get, set]`
| 全体倍率プロパティ [詳解]

## 詳解

2D スプライトモデルクラス

このクラスは、画像や文字列をディスプレイ座標系に従って配置する機能を提供します。

リアルタイム 3DCG において (3次元空間の投影によらず) ディスプレイ上に直接画像やメッセージ等のビットマップ画像を表示する処理を 「スプライト表示」と呼びます。 スプライト表示を行うための方法はプラットフォームによって異なるため、 FK では直接スプライト表示を行う機能は提供しませんが、 本クラスはディスプレイ座標系での指定に従って、 適切にテクスチャ画像の配置を行うことによって(擬似的に)スプライト表示を実現します。

注意
  本クラスは fk_Model クラスを継承しており、 fk_Model のメソッドが使用可能です。 ただし、3次元的な挙動を指示した場合には意図しない動作になることがあります。 また、表示するウィンドウごとに内部計算が必要なため、 マルチウィンドウ利用時はインスタンスを使い回すことができません。 ウィンドウごとに別々のインスタンスを使用して下さい。

参照
  fk_Model, fk_TextImage, fk_Image

## 構築子と解体子

FK_CLI::fk_SpriteModel::fk_SpriteModel | ( |  | ) |

コンストラクタ

FK_CLI::fk_SpriteModel::~fk_SpriteModel | ( |  | ) |

デストラクタ

FK_CLI::fk_SpriteModel::!fk_SpriteModel | ( |  | ) |

ファイナライザ

## 関数詳解

bool FK_CLI::fk_SpriteModel::ReadBMP | ( | String^ | filename | ) |

Windows Bitmap (BMP)画像読み込みメソッド

Windows Bitmap 形式 (BMP形式) の画像を読み込みます。

引数

  [in] | filename | BMP形式ファイル名

戻り値
  成功したら true を、失敗したら false を返します。

bool FK_CLI::fk_SpriteModel::ReadPNG | ( | String^ | filename | ) |

PNG画像読み込みメソッド

PNG形式の画像を読み込みます。アルファチャンネルによる透過に対応しています。

引数

  [in] | filename | PNG形式ファイル名

戻り値
  成功したら true を、失敗したら false を返します。

bool FK_CLI::fk_SpriteModel::ReadJPG | ( | String^ | filename | ) |

JPEG(JPG)画像読み込みメソッド

JPEG形式の画像を読み込みます。

引数

  [in] | filename | PNG形式ファイル名

戻り値
  成功したら true を、失敗したら false を返します。

void FK_CLI::fk_SpriteModel::SetPositionLT | ( | double | x,
|  | double | y
| ) |  |

画像位置指定メソッド

指定した座標が左上になるように位置を変更します。 指定する数値は、画面中心を原点とする座標系で、 数値 1 が 1 ピクセルに相当する値になります。

画像の中心位置を指定したい場合は、 fk_Model::GlMoveTo() を利用して下さい。

注意
  本メソッドによって位置を指定した後に、 以下に述べるような操作を行った場合、 表示位置が不適切となる場合があります。
  - fk_SpriteModel::Size プロパティによる大きさ変更。
  - 画像データの再入力。
  - 投影変換の変更。
  - ウィンドウサイズの変更。
  このような操作を行った場合、 再度本メソッドによって適切な位置に指定を行う必要があります。

引数

  [in] | x | 画像左上の x 座標値。
  [in] | y | 画像左上の y 座標値。

参照
  Size, fk_Model::GlMoveTo()

void FK_CLI::fk_SpriteModel::SetSpriteArea | ( | double | x,
|  | double | y,
|  | double | w,
|  | double | h
| ) |  |

画像表示領域指定メソッド

画像の一部分だけを表示領域として切り出します。 本メソッドでの座標系は、画像のピクセル数が横幅 , 縦幅 としたとき、 画像の左上が であり、右下が となります。

引数

  [in] | x | 表示領域左上の x 座標値。
  [in] | y | 表示領域左上の y 座標値。
  [in] | w | 表示領域の横幅ピクセル数。
  [in] | h | 表示領域の縦幅ピクセル数。

参照
  Size

bool FK_CLI::fk_SpriteModel::InitFont | ( | String^ | fontFileName | ) |

文字列描画用フォント設定メソッド

文字表示を行うための、フォントの設定を行います。 DrawText() による文字列表示を行いたい場合は、事前に本メソッドを実行する必要があります。 ここで指定するものは TrueType 形式のフォントファイルとなります。 通常は「ttf」あるいは「ttc」という拡張子のファイルとなっています。

引数

  [in] | fontFileName | フォントファイル名

戻り値
  フォントの設定に成功すれば true を、失敗すれば false を返します。

注意
  各種 OS に付属しているフォントファイルや、 商用のフォントファイルの中には、 ライセンス上再配布が禁止されているものがあります。 プログラムの配布時には必ずライセンスの確認を行ってください。

void FK_CLI::fk_SpriteModel::DrawText | ( | String^ | str | ) |

文字列表示メソッド

指定された文字列を表示する画像を設定します。 本メソッドを実行する前に、事前に InitFont() でフォント指定を行う必要があります。

覚え書き
  fk_SprinteModel::Text プロパティを制御して表示方法を変更したい場合は、 本メソッドを実行する前に行う必要があります。 事後に変更しても有効にならないので注意してください。

引数

  [in] | str | 指定文字列。既に設定されていた文字列があった場合は、その末尾に付け足します。

参照
  InitFont(), DrawText(String^, bool)

void FK_CLI::fk_SpriteModel::DrawText | ( | String^ | str,
|  | bool | mode
| ) |  |

初期化設定付き文字列表示メソッド

指定された文字列を表示する画像を設定します。 本メソッドを実行する前に、事前に InitFont() でフォント指定を行う必要があります。

覚え書き
  fk_SpriteModel::Text メンバを制御して表示方法を変更したい場合は、 本メソッドを実行する前に行う必要があります。 事後に変更しても有効にならないので注意してください。

引数

  [in] | str | 指定文字列
  [in] | mode | true を渡すとこれまでに入力した文字列を一旦消去し、 新たに文字列を生成します。 false を渡すと、 DrawText(String^) と同様に、 これまでに入力した文字列への付け足しを行います。

参照
  initFont(), drawText(const std::string, fk_StringCode)

void FK_CLI::fk_SpriteModel::ClearText | ( | void |  | ) |

文字列消去メソッド

DrawText() メソッドによって作成した文字列を消去します。

参照
  DrawText(String^), DrawText(String^, bool)

## プロパティ詳解

fk_TextImage^ FK_CLI::fk_SpriteModel::Text
| get

文字列描画オブジェクトプロパティ

drawText() メソッドによって制御される fk_TextImage 型のプロパティです。 このプロパティに対して様々な操作を行うことができ、 フォントや表示色など多くの属性を制御できます。 詳細は、 fk_TextImage クラスのマニュアルを参照して下さい。 なお、このプロパティに対して別に生成した fk_TextImage 型インスタンスを代入することはできません。

参照
  fk_TextImage

fk_Image^ FK_CLI::fk_SpriteModel::Image
| get set

画像データプロパティ

内部の画像データインスタンスの参照・設定を行います。 画像サイズを変更しない限りは、内部データを直接変更しても問題ありません。

注意
  本メソッドで得たインスタンスの画像サイズを変更した場合の挙動は保証されません。

fk_TexCoord^ FK_CLI::fk_SpriteModel::Size
| get set

表示サイズプロパティ

画像の表示サイズの参照・設定を行います。 通常は画像の設定時に自動調整を行っていますので、 敢えてそこからサイズを変更したい時に使います。 引数を省略すると、読み込んである画像と同じサイズに復元します。 数値 1 が 1 ピクセルに相当する値になります。 -1 を指定した場合、元画像の横幅・縦幅となります。

参照
  SetPositionLT(), SetSpriteArea()

bool FK_CLI::fk_SpriteModel::SmoothMode
| get set

画像表示モードプロパティ

画像を滑らかに表示するかどうかという状態の参照・設定を行います。 true であれば滑らかな表示に設定し、 false であれば滑らかな表示は行いません。