FineKernelToolKit: FK::fk_RectTexture クラス

FineKernelToolKit 4.3.0

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

矩形テクスチャを生成、管理するクラス [詳解]

`#include <FK/RectTexture.h>`

FK::fk_RectTexture の継承関係図
[凡例]
FK::fk_RectTexture 連携図
[凡例]

## 公開メンバ関数

| fk_RectTexture (fk_Image *image=nullptr)
| コンストラクタ
virtual | ~fk_RectTexture ()
| デストラクタ
void | init (void)
| 初期化関数
bool | setTextureSize (double w, double h)
| テクスチャサイズ設定関数
fk_TexCoord | getTextureSize (void)
| テクスチャサイズ参照関数
void | setRepeatMode (bool mode)
| リピートモード設定関数
bool | getRepeatMode (void)
| リピートモード参照関数
void | setRepeatParam (double wNum, double hNum)
| リピートモード枚数設定関数
fk_TexCoord | getRepeatParam (void)
| リピートモード枚数参照関数
void | setTextureCoord (double sX, double sY, double eX, double eY)
| 部分抽出設定関数1
void | setTextureCoord (const fk_TexCoord &S, const fk_TexCoord &E)
| 部分抽出設定関数2
fk_TexCoord | getTextureCoord (int ID)
| 部分抽出参照関数
基底クラス FK::fk_Texture に属する継承公開メンバ関数
void | setImage (fk_Image *image)
| 画像データ設定関数
fk_Image * | getImage (void)
| 画像データ取得関数
bool | readBMP (std::string fileName)
| BMP ファイル入力関数
bool | readBMPData (fk_ImType *buf)
| BMP バッファ入力関数
bool | readPNG (std::string fileName)
| PNG ファイル入力関数
bool | readPNGData (fk_ImType *buf)
| PNG バッファ入力関数
bool | readJPG (std::string fileName)
| JPEG ファイル入力関数
const fk_Dimension * | getImageSize (void)
| 画像サイズ取得関数
const fk_Dimension * | getBufferSize (void)
| 画像バッファサイズ取得関数
void | setTextureMode (fk_TexMode mode)
| テクスチャモード設定関数
fk_TexMode | getTextureMode (void)
| テクスチャモード取得関数
void | setTexRendMode (fk_TexRendMode mode)
| テクスチャ描画品質設定関数
fk_TexRendMode | getTexRendMode (void)
| テクスチャ描画品質取得関数
void | setTexWrapMode (fk_TexWrapMode mode)
| テクスチャ外周部モード設定関数
fk_TexWrapMode | getTexWrapMode (void)
| テクスチャ外周部モード取得関数
void | fillColor (const fk_Color &color)
| 一様色初期化関数1
void | fillColor (int r, int g, int b, int a=0)
| 一様色初期化関数2
const fk_ImType * | getImageBuf (void)
| 画像データ配列先頭アドレス取得関数
void | setFrameBuffer (fk_FrameBuffer *buffer)
| フレームバッファー設定関数
fk_FrameBuffer * | getFrameBuffer (void)
| フレームバッファー取得関数
void | initFrameBuffer (void)
| フレームバッファー情報初期化関数
基底クラス FK::fk_Shape に属する継承公開メンバ関数
| fk_Shape (fk_Type=fk_Type::SHAPE)
| コンストラクタ
virtual | ~fk_Shape ()
| デストラクタ
fk_RealShapeType | getRealShapeType (void)
| 形状データ構造取得関数
void | setShaderAttribute (std::string name, int dim, std::vector< int > *array, bool self=false)
| シェーダー内 attribute 変数設定関数1
void | setShaderAttribute (std::string name, int dim, std::vector< float > *array, bool self=false)
| シェーダー内 attribute 変数設定関数2
void | setShaderAttribute (std::string name, int dim, std::vector< fk_Vector > *array)
| シェーダー内 attribute 変数設定関数3
void | setShaderAttribute (std::string name, int dim, std::vector< fk_TexCoord > *array)
| シェーダー内 attribute 変数設定関数4
void | setShaderAttribute (std::string name, int dim, std::vector< fk_HVector > *array)
| シェーダー内 attribute 変数設定関数5
void | modifyAttribute (std::string name)
| attribute 変数更新関数
基底クラス FK::fk_Attribute に属する継承公開メンバ関数
| fk_Attribute (void)
| コンストラクタ
virtual | ~fk_Attribute ()
| デストラクタ
bool | setAttrII (const int key, const int value)
| キーが int 型、値が int 型である属性設定関数
bool | setAttrID (const int key, const double value)
| キーが int 型、値が double 型である属性設定関数
bool | setAttrIS (const int key, const std::string value)
| キーが int 型、値が std::string 型である属性設定関数
bool | setAttrSI (const std::string key, const int value)
| キーが std::string 型、値が int 型である属性設定関数
bool | setAttrSD (const std::string key, const double value)
| キーが std::string 型、値が double 型である属性設定関数
bool | setAttrSS (const std::string key, const std::string value)
| キーが std::string 型、値が std::string 型である属性設定関数
int | getAttrII (const int key) const
| キーが int 型、値が int 型である属性参照関数
double | getAttrID (const int key) const
| キーが int 型、値が double 型である属性参照関数
std::string | getAttrIS (const int key) const
| キーが int 型、値が std::string 型である属性参照関数
int | getAttrSI (const std::string key) const
| キーが std::string 型、値が int 型である属性参照関数
double | getAttrSD (const std::string key) const
| キーが std::string 型、値が double 型である属性参照関数
std::string | getAttrSS (const std::string key) const
| キーが std::string 型、値が std::string 型である属性参照関数
bool | existAttrII (const int key) const
| キーが int 型、値が int 型である属性存在参照関数
bool | existAttrID (const int key) const
| キーが int 型、値が double 型である属性存在参照関数
bool | existAttrIS (const int key) const
| キーが int 型、値が std::string 型である属性存在参照関数
bool | existAttrSI (const std::string key) const
| キーが std::string 型、値が int 型である属性存在参照関数
bool | existAttrSD (const std::string key) const
| キーが std::string 型、値が double 型である属性存在参照関数
bool | existAttrSS (const std::string key) const
| キーが std::string 型、値が std::string 型である属性存在参照関数
bool | deleteAttrII (const int key)
| キーが int 型、値が int 型である属性消去関数
bool | deleteAttrID (const int key)
| キーが int 型、値が double 型である属性消去関数
bool | deleteAttrIS (const int key)
| キーが int 型、値が std::string 型である属性消去関数
bool | deleteAttrSI (const std::string key)
| キーが std::string 型、値が int 型である属性消去関数
bool | deleteAttrSD (const std::string key)
| キーが std::string 型、値が double 型である属性消去関数
bool | deleteAttrSS (const std::string key)
| キーが std::string 型、値が std::string 型である属性消去関数
基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
| fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
| コンストラクタ
fk_Type | getObjectType (void) const
| タイプ取得関数

## 詳解

矩形テクスチャを生成、管理するクラス

このクラスは、矩形型のテクスチャを制御する機能を提供します。 テクスチャを表示する方法としては、最も簡単なクラスとなります。

テクスチャ画像を表示する最低限の手順は、以下の通りです。

1. 画像を入力する。
2. setTextureSize() 関数で大きさを設定する。
3. fk_Model に登録する。

あとは、他の形状クラスと同様です。

矩形の配置は、モデルの方向ベクトルに垂直となり、 画像の中心とモデルの中心が一致するように配置されます。 また、画像の表側はモデルの後方 (初期状態では +z 方向) 側から見た場合に見えるという点に注意して下さい。

参照
  fk_Texture, fk_TriTexture, fk_MeshTexture, fk_IFSTexture

## 構築子と解体子

## ◆ fk_RectTexture()

FK::fk_RectTexture::fk_RectTexture | ( | fk_Image * | image = nullptr | ) |

コンストラクタ

引数

  [in] | image | テクスチャ画像。省略するか nullptr を代入した場合は、 テクスチャ画像を初期状態では生成しません。

## ◆ ~fk_RectTexture()

virtual FK::fk_RectTexture::~fk_RectTexture | ( |  | ) |

virtual

デストラクタ

## 関数詳解

## ◆ init()

void FK::fk_RectTexture::init | ( | void |  | ) |

初期化関数

現在設定されているテクスチャ画像を廃棄し、全ての設定を初期状態に戻します。

## ◆ setTextureSize()

bool FK::fk_RectTexture::setTextureSize | ( | double | w,
|  | double | h )

テクスチャサイズ設定関数

矩形テクスチャの大きさを設定します。

引数

  [in] | w | 横幅
  [in] | h | 縦幅

戻り値
  横幅、縦幅のいずれかで 0 以下の値が入力されていた場合、 false を返します。設定に成功した場合は true を返します。

## ◆ getTextureSize()

fk_TexCoord FK::fk_RectTexture::getTextureSize | ( | void |  | ) |

テクスチャサイズ参照関数

矩形テクスチャの大きさを取得します。

戻り値
  矩形テクスチャの大きさ

## ◆ setRepeatMode()

void FK::fk_RectTexture::setRepeatMode | ( | bool | mode | ) |

リピートモード設定関数

リピートモードの設定を行います。 リピートモードを有効にすると、画像が縦横に行列上に並んでいる状態になります。 並ぶ枚数については、 setRepeatParam() 関数で設定します。

リピートモードを利用する場合、画像の横幅、縦幅いずれも \( 2^n \) (n は整数) で表される数値でなければならないという条件があります。 (横幅と縦幅は一致している必要はありません。) この条件を満たさなかった場合の動作は保証されません。 また、リピートモードを有効とした場合、 setTextureCoord() による 画像の切り出しも無効となります。

引数

  [in] | mode | true であればリピートモードを有効とし、 false であれば無効とします。

参照
  setRepeatParam()

## ◆ getRepeatMode()

bool FK::fk_RectTexture::getRepeatMode | ( | void |  | ) |

リピートモード参照関数

現在のリピートモードの状態を取得します。

戻り値
  true であればリピートモードが有効であることを意味します。 false であれば無効であることを意味します。

参照
  setRepeatMode()

## ◆ setRepeatParam()

void FK::fk_RectTexture::setRepeatParam | ( | double | wNum,
|  | double | hNum )

リピートモード枚数設定関数

リピートモードでの、縦方向と横方向に並べる枚数を設定します。 リピートモードについては setRepeatMode() の説明を参照して下さい。

なお、枚数は正であれば整数である必要はありません。 その場合は、右端と上端の画像が途中で切れます。

引数

  [in] | wNum | 横方法の枚数
  [in] | hNum | 縦方向の枚数

参照
  setRepeatMode()

## ◆ getRepeatParam()

fk_TexCoord FK::fk_RectTexture::getRepeatParam | ( | void |  | ) |

リピートモード枚数参照関数

リピートモードの、各方向の枚数を取得します。

戻り値
  各方向の枚数

参照
  setRepeatParam()

## ◆ setTextureCoord() [1/2]

void FK::fk_RectTexture::setTextureCoord | ( | double | sX,
|  | double | sY,
|  | double | eX,
|  | double | eY )

部分抽出設定関数1

画像の部分矩形領域を切り出し、その部分をテクスチャ画像とします。 領域指定はテクスチャ座標系を用います。 テクスチャ座標系については fk_TexCoord の説明を参照して下さい。 なお、 setRepeatMode() でリピートモードを有効とした場合、 この部分抽出の設定は無効となります。

引数

  [in] | sX | 抽出左下部分の x 成分
  [in] | sY | 抽出左下部分の y 成分
  [in] | eX | 抽出右上部分の x 成分
  [in] | eY | 抽出右上部分の y 成分

## ◆ setTextureCoord() [2/2]

void FK::fk_RectTexture::setTextureCoord | ( | const fk_TexCoord & | S,
|  | const fk_TexCoord & | E )

部分抽出設定関数2

画像の部分矩形領域を切り出し、その部分をテクスチャ画像とします。 領域指定はテクスチャ座標系を用います。 テクスチャ座標系については fk_TexCoord の説明を参照して下さい。 なお、 setRepeatMode() でリピートモードを有効とした場合、 この部分抽出の設定は無効となります。

引数

  [in] | S | 抽出左下部分のテクスチャ座標
  [in] | E | 抽出右上部分のテクスチャ座標

## ◆ getTextureCoord()

fk_TexCoord FK::fk_RectTexture::getTextureCoord | ( | int | ID | ) |

部分抽出参照関数

setTextureCoord() 関数によって部分抽出領域を設定した場合、 その領域のテクスチャ座標を取得します。

引数

  [in] | ID | 0 であれば左下部のテクスチャ座標を、 1 であれば右上部のテクスチャ座標を返します。 それ以外の値を入力した場合は、常に (0, 0) を返します。

戻り値
  左上部、または右上部のテクスチャ座標

参照
  setTextureCoord()