FineKernelToolKit 4.2.13
|
矩形テクスチャを生成、管理するクラス [詳解]
#include <FK/RectTexture.h>
公開メンバ関数 | |
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) |
部分抽出参照関数 | |
![]() | |
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_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_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_BaseObject (fk_Type type=fk_Type::BASEOBJECT) | |
コンストラクタ | |
fk_Type | getObjectType (void) const |
タイプ取得関数 | |
矩形テクスチャを生成、管理するクラス
このクラスは、矩形型のテクスチャを制御する機能を提供します。 テクスチャを表示する方法としては、最も簡単なクラスとなります。
テクスチャ画像を表示する最低限の手順は、以下の通りです。
あとは、他の形状クラスと同様です。
矩形の配置は、モデルの方向ベクトルに垂直となり、 画像の中心とモデルの中心が一致するように配置されます。 また、画像の表側はモデルの後方 (初期状態では +z 方向) 側から見た場合に見えるという点に注意して下さい。
FK::fk_RectTexture::fk_RectTexture | ( | fk_Image * | image = nullptr | ) |
コンストラクタ
[in] | image | テクスチャ画像。省略するか nullptr を代入した場合は、 テクスチャ画像を初期状態では生成しません。 |
|
virtual |
デストラクタ
void FK::fk_RectTexture::init | ( | void | ) |
初期化関数
現在設定されているテクスチャ画像を廃棄し、全ての設定を初期状態に戻します。
bool FK::fk_RectTexture::setTextureSize | ( | double | w, |
double | h | ||
) |
テクスチャサイズ設定関数
矩形テクスチャの大きさを設定します。
[in] | w | 横幅 |
[in] | h | 縦幅 |
fk_TexCoord FK::fk_RectTexture::getTextureSize | ( | void | ) |
テクスチャサイズ参照関数
矩形テクスチャの大きさを取得します。
void FK::fk_RectTexture::setRepeatMode | ( | bool | mode | ) |
リピートモード設定関数
リピートモードの設定を行います。 リピートモードを有効にすると、画像が縦横に行列上に並んでいる状態になります。 並ぶ枚数については、 setRepeatParam() 関数で設定します。
リピートモードを利用する場合、画像の横幅、縦幅いずれも \( 2^n \) (n は整数) で表される数値でなければならないという条件があります。 (横幅と縦幅は一致している必要はありません。) この条件を満たさなかった場合の動作は保証されません。 また、リピートモードを有効とした場合、 setTextureCoord() による 画像の切り出しも無効となります。
[in] | mode | true であればリピートモードを有効とし、 false であれば無効とします。 |
bool FK::fk_RectTexture::getRepeatMode | ( | void | ) |
リピートモード参照関数
現在のリピートモードの状態を取得します。
void FK::fk_RectTexture::setRepeatParam | ( | double | wNum, |
double | hNum | ||
) |
リピートモード枚数設定関数
リピートモードでの、縦方向と横方向に並べる枚数を設定します。 リピートモードについては setRepeatMode() の説明を参照して下さい。
なお、枚数は正であれば整数である必要はありません。 その場合は、右端と上端の画像が途中で切れます。
[in] | wNum | 横方法の枚数 |
[in] | hNum | 縦方向の枚数 |
fk_TexCoord FK::fk_RectTexture::getRepeatParam | ( | void | ) |
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 成分 |
void FK::fk_RectTexture::setTextureCoord | ( | const fk_TexCoord & | S, |
const fk_TexCoord & | E | ||
) |
部分抽出設定関数2
画像の部分矩形領域を切り出し、その部分をテクスチャ画像とします。 領域指定はテクスチャ座標系を用います。 テクスチャ座標系については fk_TexCoord の説明を参照して下さい。 なお、 setRepeatMode() でリピートモードを有効とした場合、 この部分抽出の設定は無効となります。
[in] | S | 抽出左下部分のテクスチャ座標 |
[in] | E | 抽出右上部分のテクスチャ座標 |
fk_TexCoord FK::fk_RectTexture::getTextureCoord | ( | int | ID | ) |
部分抽出参照関数
setTextureCoord() 関数によって部分抽出領域を設定した場合、 その領域のテクスチャ座標を取得します。
[in] | ID | 0 であれば左下部のテクスチャ座標を、 1 であれば右上部のテクスチャ座標を返します。 それ以外の値を入力した場合は、常に (0, 0) を返します。 |