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_VectorGetCapsuleStartPos (void)
 カプセル型中心軸始点取得メソッド [詳解]
 
fk_VectorGetCapsuleEndPos (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]filenameBMP形式ファイル名
戻り値
成功したら true を、失敗したら false を返します。
bool FK_CLI::fk_SpriteModel::ReadPNG ( String^  filename)

PNG画像読み込みメソッド

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

引数
[in]filenamePNG形式ファイル名
戻り値
成功したら true を、失敗したら false を返します。
bool FK_CLI::fk_SpriteModel::ReadJPG ( String^  filename)

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

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

引数
[in]filenamePNG形式ファイル名
戻り値
成功したら 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 
)

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

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

引数
[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]modetrue を渡すとこれまでに入力した文字列を一旦消去し、 新たに文字列を生成します。 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
getset

画像データプロパティ

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

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

表示サイズプロパティ

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

参照
SetPositionLT(), SetSpriteArea()
bool FK_CLI::fk_SpriteModel::SmoothMode
getset

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

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