FineKernelToolKit 2.9.0

- メインページ
- ネームスペース
- クラス
- ファイル

- 構成
- クラス階層
- 構成メンバ

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

B-Spline 曲線を生成、管理するクラス [詳細]

fk_BSplCurveに対する継承グラフ
[凡例]
fk_BSplCurveのコラボレーション図
[凡例]

## Public メソッド
| fk_BSplCurve (void)
| コンストラクタ [詳細]
virtual | ~fk_BSplCurve ()
| デストラクタ [詳細]
void | init (void)
| 初期化用関数 [詳細]
bool | setOrdinate (int ord)
| 位数設定関数 [詳細]
bool | setNum (int num)
| 制御点数設定関数 [詳細]
bool | setCtrl (int ID, const fk_Vector &pos)
| 制御点設定関数(個別) [詳細]
bool | setCtrl (std::vector< fk_Vector > *array)
| 制御点設定関数(配列) [詳細]
int | getOrdinate (void)
int | getNum (void)
| 制御点数参照関数 [詳細]
fk_Vector | getCtrl (int ID)
| 制御点参照関数 [詳細]
fk_Vector | pos (double t)
| 曲線算出関数 [詳細]
fk_Vector | diff (double t)
| 曲線1階微分ベクトル算出関数 [詳細]
Public メソッド inherited from fk_Curve
| fk_Curve (void)
| コンストラクタ [詳細]
virtual | ~fk_Curve ()
| デストラクタ [詳細]
void | setDiv (int div)
| 曲線キャッシュ分割数設定関数 [詳細]
int | getDiv (void)
| 曲線キャッシュ分割数参照関数 [詳細]
Public メソッド inherited from fk_BaseObject
| fk_BaseObject (fk_ObjectType type=FK_BASEOBJECT)
| コンストラクタ [詳細]
fk_ObjectType | getObjectType (void) const
| タイプ取得関数 [詳細]

## Additional Inherited Members
Protected 変数 inherited from fk_Curve
bool | changeFlg
| 修正告知用フラグ [詳細]

## 説明

B-Spline 曲線を生成、管理するクラス

このクラスは、形状として B-Spline 曲線を制御する機能を提供します。 初期状態での位数は 3 で、制御点が全て原点にある状態となります。 現状では位数が 3,4,5 のいずれかのみしか生成できません。 また、このクラスの B-Spline 曲線は開一様 (Open Uniform) であることを前提にしており、ノットベクトルを制御することはできません。

意見
  本クラスは現在ベータ機能としての位置づけであり、 ユーザーズマニュアルには記載されていません。 また、今後のバージョンアップにおいて仕様が変更される可能性があります。

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

fk_BSplCurve::fk_BSplCurve | ( | void |  | ) |

コンストラクタ

virtual fk_BSplCurve::~fk_BSplCurve | ( |  | ) |
| virtual

デストラクタ

## 関数

void fk_BSplCurve::init | ( | void |  | ) |

初期化用関数

この関数は、曲線を初期状態にします。 初期状態とは、以下のような条件で曲線を構築することです。

- 位数が 3。
- 制御点数が 3。
- すべての制御点の位置ベクトルが原点と一致。

bool fk_BSplCurve::setOrdinate | ( | int | ord | ) |

位数設定関数

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

引数

  [in] | ord | 位数

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

bool fk_BSplCurve::setNum | ( | int | num | ) |

制御点数設定関数

曲線の制御点数を設定します。 制御点数は、位数以上である必要があります。 上限値はありません。

引数

  [in] | num | 制御点数

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

bool fk_BSplCurve::setCtrl | ( | int | ID,
|  | const fk_Vector & | pos
| ) |  |

制御点設定関数(個別)

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

引数

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

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

bool fk_BSplCurve::setCtrl | ( | std::vector< fk_Vector > * | array | ) |

制御点設定関数(配列)

曲線の制御点位置ベクトルを、vector 配列を用いて一斉に設定します。 設定の際、制御点数は setNum() によって設定しておく必要があり、 配列のサイズは上記と一致していなければなりません。

引数

  [in] | array | 制御点の vector 配列のポインタ

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

int fk_BSplCurve::getOrdinate | ( | void |  | ) |

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

戻り値
  位数

int fk_BSplCurve::getNum | ( | void |  | ) |

制御点数参照関数

曲線の制御点数を参照します。

戻り値
  制御点数

fk_Vector fk_BSplCurve::getCtrl | ( | int | ID | ) |

制御点参照関数

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

引数

  [in] | ID | 制御点 ID

戻り値
  制御点位置ベクトル。IDが不正だった場合、零ベクトルを返します。

fk_Vector fk_BSplCurve::pos | ( | double | t | ) |
| virtual

曲線算出関数

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

引数

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

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

fk_Curveを実装しています。

fk_Vector fk_BSplCurve::diff | ( | double | t | ) |
| virtual

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

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

引数

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

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

fk_Curveを実装しています。