FineKernelToolKit: FK::fk_RBezCurve クラス

FineKernelToolKit 4.3.0

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

有理 Bezier 曲線を生成、管理するクラス [詳解]

`#include <FK/RBezCurve.h>`

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

## 公開メンバ関数

| fk_RBezCurve (void)
| コンストラクタ
virtual | ~fk_RBezCurve ()
| デストラクタ
void | init (void)
| 初期化用関数
bool | setDegree (int deg)
| 次数設定関数
int | getDegree (void)
| 次数参照関数
bool | setCtrl (int ID, fk_Vector pos)
| 制御点設定関数
bool | setWeight (int ID, double weight)
| 制御点重み値設定関数
double | getWeight (int ID)
| 制御点重み値取得関数
fk_Vector | pos (double t)
| 曲線算出関数
fk_Vector | diff (double t)
| 曲線1階微分ベクトル算出関数
基底クラス FK::fk_Curve に属する継承公開メンバ関数
| fk_Curve (void)
| コンストラクタ
virtual | ~fk_Curve ()
| デストラクタ
fk_Vector | getCtrl (int ID)
| 制御点位置取得関数
double | getWeight (int ID)
| 制御点重み値取得関数
int | getCtrlSize (void)
| 制御点数取得関数
void | setDiv (int num)
| 分割数設定関数
int | getDiv (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
| タイプ取得関数

## その他の継承メンバ

基底クラス FK::fk_Curve に属する継承限定公開メンバ関数
void | setCtrlSize (int num)
| 制御点数設定関数
基底クラス FK::fk_Curve に属する継承限定公開変数類
std::unique_ptr< fk_FVecArray > | _m_ctrlPos
| 制御点配列

## 詳解

有理 Bezier 曲線を生成、管理するクラス

このクラスは、形状として有理 Bezier 曲線を制御する機能を提供します。 初期状態は 3 次式で、制御点が全て原点にある状態となります。 現状では、2,3,4次式のいずれかのみしか生成できません。

## 構築子と解体子

## ◆ fk_RBezCurve()

FK::fk_RBezCurve::fk_RBezCurve | ( | void |  | ) |

コンストラクタ

## ◆ ~fk_RBezCurve()

virtual FK::fk_RBezCurve::~fk_RBezCurve | ( |  | ) |

virtual

デストラクタ

## 関数詳解

## ◆ init()

void FK::fk_RBezCurve::init | ( | void |  | ) |

virtual

初期化用関数

この関数は、曲線を初期状態にします。 初期状態とは、次数は 3 で、全ての制御点が原点にあり、 全ての重み値が 1 である状態のことです。

FK::fk_Curveを再実装しています。

## ◆ setDegree()

bool FK::fk_RBezCurve::setDegree | ( | int | deg | ) |

次数設定関数

この関数は、曲線の次数を設定します。 現状では、2,3,4のいずれかのみ以外は設定できません。 次数が増加した場合は、これまで保持されていた制御点位置ベクトルは保持され、 新たな制御点は原点に配置されます。 次数が減少した場合は、末尾の制御点が消失しますが、 存続している制御点の位置ベクトルは保持されます。

引数

  [in] | deg | 次数

戻り値
  次数設定に成功した場合 true、失敗した場合 false を返します。

## ◆ getDegree()

int FK::fk_RBezCurve::getDegree | ( | void |  | ) |

次数参照関数

曲線の次数を参照します。

戻り値
  次数

## ◆ setCtrl()

bool FK::fk_RBezCurve::setCtrl | ( | int | ID,
|  | fk_Vector | pos )

virtual

制御点設定関数

曲線の制御点位置ベクトルを設定します。

引数

  [in] | ID | 設定する制御点の ID。先頭は 0 になります。
  [in] | pos | 制御点位置ベクトル

戻り値
  設定に成功した場合 true、失敗した場合 false を返します。

FK::fk_Curveを再実装しています。

## ◆ setWeight()

bool FK::fk_RBezCurve::setWeight | ( | int | ID,
|  | double | weight )

virtual

制御点重み値設定関数

制御点の重み値を設定します。

引数

  [in] | ID | 設定する制御点の ID。先頭は 0 になります。
  [in] | weight | 制御点重み値

戻り値
  設定に成功した場合 true、失敗した場合 false を返します。

FK::fk_Curveを再実装しています。

## ◆ getWeight()

double FK::fk_RBezCurve::getWeight | ( | int | ID | ) |

制御点重み値取得関数

制御点の重み値を取得します。

引数

  [in] | ID | 設定する制御点の ID。先頭は 0 になります。

戻り値
  指定した制御点の重み値。 指定した制御点が存在しない場合は 0 を返します。

## ◆ pos()

fk_Vector FK::fk_RBezCurve::pos | ( | double | t | ) |

virtual

曲線算出関数

パラメータに対応する曲線上の点の位置ベクトルを返します。 有理 Bezier 曲線の幾何的定義ではパラメータの定義域は 0 から 1 までですが、 本関数はそれ以外の範囲であっても式の演算結果を返します。

引数

  [in] | t | 曲線上のパラメータ

戻り値
  曲線上の点の位置ベクトル

FK::fk_Curveを実装しています。

## ◆ diff()

fk_Vector FK::fk_RBezCurve::diff | ( | double | t | ) |

virtual

曲線1階微分ベクトル算出関数

パラメータに対応する曲線上の点の1階微分ベクトルを返します。 有理 Bezier 曲線の幾何的定義ではパラメータの定義域は 0 から 1 までですが、 本関数はそれ以外の範囲であっても式の演算結果を返します。

引数

  [in] | t | 曲線上のパラメータ

戻り値
  曲線上の点の1階微分ベクトル

FK::fk_Curveを実装しています。