FineKernelToolKit: FK_CLI::fk_SpriteModel クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_SpriteModel クラス

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

`#include <CLI/FK_CLI/include/SpriteModel_CLI.h>`

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 ()
| ファイナライザ
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 (void)
| 境界カプセル自動設定メソッド(全自動)
void | AdjustCapsule (fk_Axis axis)
| 境界カプセル自動設定メソッド(座標軸による中心軸設定)
void | AdjustCapsule (fk_Vector^ P, fk_Axis axis)
| 境界カプセル自動設定関数(中心軸上の点と座標軸)
void | AdjustCapsule (fk_Vector^ S, fk_Vector^ E, bool mode)
| 境界カプセル自動設定メソッド(中心軸直接指定, 順番指定付)
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
void | SetDamping (double sd, double rd)
| 摩擦係数設定関数
基底クラス FK_CLI::fk_Boundary に属する継承公開メンバ関数
void | SetAABBMaxMin (fk_Vector^ max, fk_Vector^ min)
| 軸平行境界ボックス (AABB) 最大最小設定メソッド
void | SetOBBMaxMin (fk_Vector^ max, fk_Vector^ min)
| 有向境界ボックス (OBB) 最大最小設定メソッド
void | SetCapsule (fk_Vector^ startPos, fk_Vector^ endPos, double radius)
| カプセル型設定メソッド
基底クラス 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_RectTexture^ | Texture`[get]`
| テクスチャデータプロパティ
fk_TexMode | TextureMode`[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]`
| 形状プロパティ
fk_Model^ | Parent`[get, set]`
| 親モデルプロパティ
fk_Material^ | Material`[get, set]`
| マテリアルプロパティ
fk_Color^ | PointColor`[get, set]`
| 頂点色プロパティ
fk_Color^ | LineColor`[get, set]`
| 稜線色プロパティ
fk_Color^ | CurveColor`[get, set]`
| 曲線色プロパティ
double | PointSize`[get, set]`
| 頂点描画サイズプロパティ
fk_Draw | DrawMode`[get, set]`
| 描画モードプロパティ
fk_ElementMode | ElementMode`[get, set]`
| 要素モード関連プロパティ
fk_ShadingMode | ShadingMode`[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]`
| ブレンド時の出力ピクセル係数設定プロパティ
bool | ShadowEffect`[get, set]`
| 影投影プロパティ
bool | ShadowDraw`[get, set]`
| 影表示プロパティ
bool | FogMode`[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_Vector^ | Inertia`[set]`
| 慣性モーメント設定関数
double | Mass`[set]`
| 質量設定関数
double | Restitution`[set]`
| 反射係数設定関数
bool | Dynamics`[set]`
| 運動有無設定関数
fk_Vector^ | Force`[set]`
| 外力設定関数
基底クラス FK_CLI::fk_Boundary に属する継承プロパティ
fk_BoundaryMode | BMode`[get, set]`
| 境界ボリューム選択プロパティ
double | SphereRadius`[get, set]`
| 境界球半径プロパティ
fk_Vector^ | SpherePos`[get, set]`
fk_Vector^ | AABB`[get, set]`
| 軸平行境界ボックス (AABB) サイズプロパティ
fk_Vector^ | AABBMax`[get, set]`
| 軸平行境界ボックス (AABB) 最大値側プロパティ
fk_Vector^ | AABBMin`[get, set]`
| 軸平行境界ボックス (AABB) 最小値側プロパティ
fk_Vector^ | OBB`[get, set]`
| 有向境界ボックス (OBB) サイズプロパティ
fk_Vector^ | OBBMax`[get, set]`
| 有向境界ボックス (OBB) 最大値側プロパティ
fk_Vector^ | OBBMin`[get, set]`
| 有向境界ボックス (OBB) 最小値側プロパティ
double | CapsuleRadius`[get, set]`
| カプセル型領域規定距離プロパティ
double | CapsuleLength`[get]`
| カプセル型中心軸長プロパティ
fk_Vector^ | CapsuleStart`[get, set]`
| カプセル型中心軸始点プロパティ
fk_Vector^ | CapsuleEnd`[get, set]`
| カプセル型中心軸終点プロパティ
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]`
| 全体倍率プロパティ

## その他の継承メンバ

static void | StepSimulation (float time, int step)

## 詳解

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

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

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

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

参照
  fk_Model, fk_TextImage, fk_Image

## 構築子と解体子

## ◆ fk_SpriteModel()

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

コンストラクタ

## ◆ ~fk_SpriteModel()

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

デストラクタ

## ◆ !fk_SpriteModel()

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

ファイナライザ

## 関数詳解

## ◆ ReadBMP()

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

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

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

引数

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

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

## ◆ ReadPNG()

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

PNG画像読み込みメソッド

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

引数

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

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

## ◆ ReadJPG()

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

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

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

引数

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

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

## ◆ SetPositionLT()

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()

## ◆ SetSpriteArea()

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

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

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

引数

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

参照
  Size

## ◆ InitFont()

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

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

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

引数

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

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

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

## ◆ DrawText() [1/2]

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

文字列表示メソッド

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

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

引数

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

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

## ◆ DrawText() [2/2]

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)

## ◆ ClearText()

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

文字列消去メソッド

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

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

## プロパティ詳解

## ◆ Text

fk_TextImage^ FK_CLI::fk_SpriteModel::Text

get

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

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

参照
  fk_TextImage

## ◆ Image

fk_Image^ FK_CLI::fk_SpriteModel::Image

getset

画像データプロパティ

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

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

## ◆ Texture

fk_RectTexture^ FK_CLI::fk_SpriteModel::Texture

get

テクスチャデータプロパティ

内部データのテクスチャイン寸タンスの取得を行います。

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

## ◆ TextureMode

fk_TexMode FK_CLI::fk_SpriteModel::TextureMode

getset

テクスチャデータプロパティ

内部データテクスチャのテクスチャモードを設定します。

参照
  fk_Texture::TextureMode

## ◆ Size

fk_TexCoord^ FK_CLI::fk_SpriteModel::Size

getset

表示サイズプロパティ

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

参照
  SetPositionLT(), SetSpriteArea()

## ◆ SmoothMode

bool FK_CLI::fk_SpriteModel::SmoothMode

getset

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

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