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

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

+ fk_SpriteModelに対する継承グラフ
+ fk_SpriteModelのコラボレーション図

Public メソッド

 fk_SpriteModel (void)
 コンストラクタ [詳細]
 
 ~fk_SpriteModel (void)
 デストラクタ [詳細]
 
bool entryFirst (fk_Window *win, fk_Scene *scene, fk_Model *camera=NULL)
 fk_Scene へのエントリー関数 [詳細]
 
bool readBMP (const std::string filename)
 Windows Bitmap (BMP)画像読み込み関数 [詳細]
 
bool readPNG (const std::string filename)
 PNG画像読み込み関数 [詳細]
 
bool readJPG (const std::string filename)
 JPEG(JPG)画像読み込み関数 [詳細]
 
void setImage (fk_Image &image)
 画像データセット関数 [詳細]
 
fk_ImagegetImage (void)
 画像データ参照関数 [詳細]
 
void setPositionLT (double x, double y)
 画像位置指定関数 [詳細]
 
void setSpriteArea (double x, double y, double w, double h)
 画像表示領域指定関数 [詳細]
 
void setSpriteSize (double width=-1.0, double height=-1.0)
 表示サイズ設定関数 [詳細]
 
fk_TexCoord getSpriteSize (void)
 表示サイズ取得関数 [詳細]
 
void setSpriteSmoothMode (bool mode)
 画像表示モード設定関数 [詳細]
 
bool getSpriteSmoothMode (void)
 画像表示モード取得関数 [詳細]
 
bool initFont (const std::string fontFileName)
 文字列描画用フォント設定関数 [詳細]
 
void drawText (const std::string str, fk_StringCode code=FK_STR_SJIS)
 文字列表示関数 [詳細]
 
void drawText (const std::string str, bool mode, fk_StringCode code=FK_STR_SJIS)
 初期化設定付き文字列表示関数 [詳細]
 
void clearText (void)
 文字列消去関数 [詳細]
 
- Public メソッド inherited from fk_Model
 fk_Model (fk_Shape *shape=(fk_Shape *) NULL)
 コンストラクタ [詳細]
 
virtual ~fk_Model ()
 デストラクタ [詳細]
 
unsigned int getID (void) const
 ID参照関数 [詳細]
 
void setShape (fk_Shape *shape)
 形状設定関数 [詳細]
 
fk_ShapegetShape (void) const
 形状参照関数 [詳細]
 
void setMaterial (const fk_Material &mat)
 マテリアル設定関数 [詳細]
 
void setPointColor (fk_Color *col)
 頂点色設定関数1 [詳細]
 
void setPointColor (float r, float g, float b)
 頂点色設定関数2 [詳細]
 
void setLineColor (fk_Color *col)
 稜線色設定関数1 [詳細]
 
void setLineColor (float r, float g, float b)
 稜線色設定関数2 [詳細]
 
void deleteMaterial (void)
 基本マテリアル削除関数 [詳細]
 
void deletePointColor (void)
 頂点色削除関数 [詳細]
 
void deleteLineColor (void)
 稜線色削除関数 [詳細]
 
fk_MaterialgetMaterial (void)
 マテリアル参照関数 [詳細]
 
fk_MaterialgetInhMaterial (void)
 継承マテリアル参照関数 [詳細]
 
fk_ColorgetPointColor (void)
 頂点色参照関数 [詳細]
 
fk_ColorgetInhPointColor (void)
 継承頂点色参照関数 [詳細]
 
fk_ColorgetLineColor (void)
 稜線色参照関数 [詳細]
 
fk_ColorgetInhLineColor (void)
 継承稜線色参照関数 [詳細]
 
void setSize (const double size)
 頂点描画サイズ設定関数 [詳細]
 
void setWidth (const double width)
 稜線描画幅設定関数 [詳細]
 
double getSize (void) const
 頂点描画サイズ参照関数 [詳細]
 
double getWidth (void) const
 稜線描画幅設定関数 [詳細]
 
void setDrawMode (const fk_DrawMode mode)
 描画モード設定関数 [詳細]
 
fk_DrawMode getDrawMode (void) const
 描画モード参照関数 [詳細]
 
void setMaterialMode (const fk_MaterialMode mode)
 マテリアルモード設定関数 [詳細]
 
fk_MaterialMode getMaterialMode (void) const
 マテリアルモード参照関数 [詳細]
 
void setPickMode (const bool mode)
 ピックモード設定関数 [詳細]
 
bool getPickMode (void) const
 ピックモード参照関数 [詳細]
 
void setSmoothMode (const bool mode)
 スムースモード設定関数 [詳細]
 
bool getSmoothMode (void) const
 スムースモード参照関数 [詳細]
 
void setReverseDrawMode (const bool mode)
 描画順序制御関数 [詳細]
 
bool getReverseDrawMode (void) const
 描画順序参照関数 [詳細]
 
fk_Matrix getInhMatrix (void) const
 継承変換行列取得関数 [詳細]
 
fk_Matrix getInhInvMatrix (void) const
 継承逆変換行列取得関数 [詳細]
 
fk_OrthoMatrix getInhBaseMatrix (void) const
 継承移動・回転要素変換行列取得関数 [詳細]
 
fk_OrthoMatrix getInhInvBaseMatrix (void) const
 継承移動・回転要素逆変換行列取得関数 [詳細]
 
fk_Vector getInhPosition (void) const
 継承位置ベクトル参照関数 [詳細]
 
fk_Vector getInhVec (void) const
 継承方向ベクトル参照関数 [詳細]
 
fk_Vector getInhUpvec (void) const
 継承アップベクトル参照関数 [詳細]
 
fk_Angle getInhAngle (void) const
 継承オイラー角参照関数 [詳細]
 
bool setParent (fk_Model *model, bool setMode=false)
 親モデル設定関数 [詳細]
 
void deleteParent (bool setMode=false)
 親モデル解除関数 [詳細]
 
fk_ModelgetParent (void) const
 親モデル参照関数 [詳細]
 
bool entryChild (fk_Model *model, bool setMode=false)
 子モデル設定関数 [詳細]
 
bool deleteChild (fk_Model *model, bool setMode=false)
 子モデル解除関数 [詳細]
 
void deleteChildren (bool setMode=false)
 全子モデル解除関数 [詳細]
 
fk_ModelforeachChild (fk_Model *model)
 子モデル逐次参照関数 [詳細]
 
void snapShot (void)
 位置・姿勢保存関数 [詳細]
 
bool restore (void)
 位置・姿勢復元関数 [詳細]
 
bool restore (double t)
 位置・姿勢途中復元関数 [詳細]
 
virtual void preShader (void)
 描画処理事前関数 [詳細]
 
virtual void postShader (void)
 描画処理事後関数 [詳細]
 
- Public メソッド inherited from fk_MatrixAdmin
 fk_MatrixAdmin (fk_ObjectType=FK_MATRIXADMIN)
 コンストラクタ [詳細]
 
virtual ~fk_MatrixAdmin ()
 デストラクタ [詳細]
 
fk_Vector getPosition (void) const
 位置ベクトル取得関数 [詳細]
 
fk_Vector getVec (void) const
 方向ベクトル取得関数 [詳細]
 
fk_Vector getUpvec (void) const
 アップベクトル取得関数 [詳細]
 
fk_Angle getAngle (void) const
 オイラー角取得関数 [詳細]
 
fk_Matrix getMatrix (void) const
 変換行列取得関数 [詳細]
 
fk_Matrix getInvMatrix (void) const
 逆変換行列取得関数 [詳細]
 
fk_OrthoMatrix getBaseMatrix (void) const
 移動・回転要素変換行列取得関数 [詳細]
 
fk_OrthoMatrix getInvBaseMatrix (void) const
 移動・回転要素逆変換行列取得関数 [詳細]
 
bool setScale (const double scale)
 全体絶対倍率設定関数 [詳細]
 
bool setScale (const double scale, fk_Axis axis)
 軸方向絶対倍率設定関数 [詳細]
 
bool setScale (const double x, const double y, const double z)
 軸方向個別絶対倍率設定関数 [詳細]
 
bool prdScale (const double scale)
 全体相対倍率設定関数 [詳細]
 
bool prdScale (const double scale, fk_Axis axis)
 軸方向相対倍率設定関数 [詳細]
 
bool prdScale (const double x, const double y, const double z)
 軸方向個別相対倍率設定関数 [詳細]
 
double getScale (void) const
 全体倍率取得関数 [詳細]
 
double getScale (fk_Axis axis) const
 軸方向倍率取得関数 [詳細]
 
bool getScaleMode (void) const
 拡大縮小状態判定関数 [詳細]
 
bool glRotate (fk_Vector origin, fk_Axis axis, double theta)
 グローバル座標系座標軸回転関数1 [詳細]
 
bool glRotate (double orgX, double orgY, double orgZ, 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 orgX, double orgY, double orgZ, 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 orgX, double orgY, double orgZ, 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 orgX, double orgY, double orgZ, 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 [詳細]
 
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 [詳細]
 
- Public メソッド inherited from fk_BaseObject
 fk_BaseObject (fk_ObjectType type=FK_BASEOBJECT)
 コンストラクタ [詳細]
 
fk_ObjectType getObjectType (void) const
 タイプ取得関数 [詳細]
 

Public 変数

fk_TextImage text
 文字列描画設定用オブジェクト [詳細]
 

説明

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

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

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

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

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

fk_SpriteModel::fk_SpriteModel ( void  )

コンストラクタ

fk_SpriteModel::~fk_SpriteModel ( void  )

デストラクタ

関数

bool fk_SpriteModel::entryFirst ( fk_Window win,
fk_Scene scene,
fk_Model camera = NULL 
)

fk_Scene へのエントリー関数

スプライトのサイズやレイアウトを、カメラ・シーン・ウィンドウに合わせて設定します。 fk_Scene へ最初にエントリーする時は、こちらの関数を使ってください。 シーンにはカメラがセット済みである必要があります。 ウィンドウサイズ・カメラ・射影を変更した場合はもう一度呼ばないとサイズがおかしくなります。

覚え書き
fk_AppWindow を利用している場合は、本関数を利用する必要はありません。
引数
[in]win表示対象となる fk_Window 型のインスタンスへのポインタ。
[in]scene表示対象となる fk_Scene 型のインスタンスへのポインタ。
[in]camera表示対象となるカメラインスタンスへのポインタ。
参照
fk_Window, fk_Scene, fk_Model
bool fk_SpriteModel::readBMP ( const std::string  filename)

Windows Bitmap (BMP)画像読み込み関数

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

引数
[in]filenameBMP形式ファイル名
戻り値
成功したら true を、失敗したら false を返します。
bool fk_SpriteModel::readPNG ( const std::string  filename)

PNG画像読み込み関数

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

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

JPEG(JPG)画像読み込み関数

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

引数
[in]filenamePNG形式ファイル名
戻り値
成功したら true を、失敗したら false を返します。
void fk_SpriteModel::setImage ( fk_Image image)

画像データセット関数

fk_Image 型の画像データを読み込みます。

既に画像を読み込み済みの fk_Image をセットします。

fk_Image* fk_SpriteModel::getImage ( void  )

画像データ参照関数

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

注意
本関数で得たインスタンスの画像サイズを変更した場合の挙動は保証されません。
戻り値
画像データインスタンスのポインタ
void fk_SpriteModel::setPositionLT ( double  x,
double  y 
)

画像位置指定関数

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

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

注意
本関数によって位置を指定した後に、 以下に述べるような操作を行った場合、 表示位置が不適切となる場合があります。
  • setSpriteSize() による大きさ変更。
  • 画像データの再入力。
  • 投影変換の変更。
  • ウィンドウサイズの変更。
このような操作を行った場合、 再度本関数によって適切な位置に指定を行う必要があります。
引数
[in]x画像左上の x 座標値。
[in]y画像左上の y 座標値。
参照
setSpriteSize(), getSpriteSize(), fk_Model::glMoveTo()
void 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表示領域の縦幅ピクセル数。
参照
getSpriteSize()
void fk_SpriteModel::setSpriteSize ( double  width = -1.0,
double  height = -1.0 
)

表示サイズ設定関数

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

引数
[in]width表示サイズの横幅。-1 を指定した場合、元画像の横幅となります。
[in]height表示サイズの縦幅。-1 を指定した場合、元画像の縦幅となります。
参照
getSpriteSize(), setPositionLT(), setSpriteArea()
fk_TexCoord fk_SpriteModel::getSpriteSize ( void  )

表示サイズ取得関数

画像の表示サイズを取得します。 数値 1 が 1 ピクセルに相当する値になります。

戻り値
u 成分と v 成分にそれぞれ幅と高さが入ります。
参照
setSpriteSize()
void fk_SpriteModel::setSpriteSmoothMode ( bool  mode)

画像表示モード設定関数

画像を滑らかに表示するかどうかを制御します。 デフォルトでは滑らかに表示する設定になっています。

引数
[in]modetrue であれば滑らかな表示に設定し、 false であれば滑らかな表示は行いません。
参照
getSpriteSmoothMode()
bool fk_SpriteModel::getSpriteSmoothMode ( void  )

画像表示モード取得関数

画像を滑らかに表示するかどうかの状態を取得します。

戻り値
滑らかに表示する設定であれば true を、そうでなければ false を返します。
参照
setSpriteSmoothMode()
bool fk_SpriteModel::initFont ( const std::string  fontFileName)

文字列描画用フォント設定関数

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

引数
[in]fontFileNameフォントファイル名
戻り値
フォントの設定に成功すれば true を、失敗すれば false を返します。
注意
各種 OS に付属しているフォントファイルや、 商用のフォントファイルの中には、 ライセンス上再配布が禁止されているものがあります。 プログラムの配布時には必ずライセンスの確認を行ってください。
void fk_SpriteModel::drawText ( const std::string  str,
fk_StringCode  code = FK_STR_SJIS 
)

文字列表示関数

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

覚え書き
fk_SprinteModel::text メンバを制御して表示方法を変更したい場合は、 本関数を実行する前に行う必要があります。 事後に変更しても有効にならないので注意してください。
引数
[in]str指定文字列。既に設定されていた文字列があった場合は、その末尾に付け足します。
[in]code文字コード
参照
initFont(), drawText(const std::string, bool, fk_StringCode)
void fk_SpriteModel::drawText ( const std::string  str,
bool  mode,
fk_StringCode  code = FK_STR_SJIS 
)

初期化設定付き文字列表示関数

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

覚え書き
fk_SpriteModel::text メンバを制御して表示方法を変更したい場合は、 本関数を実行する前に行う必要があります。 事後に変更しても有効にならないので注意してください。
引数
[in]str指定文字列
[in]modetrue を渡すとこれまでに入力した文字列を一旦消去し、 新たに文字列を生成します。 false を渡すと、 drawText(const std::string, fk_StringCode) と同様に、 これまでに入力した文字列への付け足しを行います。
[in]code文字コード
参照
initFont(), drawText(const std::string, fk_StringCode)
void fk_SpriteModel::clearText ( void  )

文字列消去関数

drawText() 関数によって作成した文字列を消去します。

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

変数

fk_TextImage fk_SpriteModel::text

文字列描画設定用オブジェクト

drawText() 関数によって制御される fk_TextImage 型インスタンスです。 このメンバを直接操作することにより、フォントや表示色など多くの属性を制御できます。 詳細は、 fk_TextImage クラスのマニュアルを参照して下さい。

参照
fk_TextImage