FineKernelToolKit 2.8.10

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

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

Public メソッド
クラス fk_BSplSurface

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

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

すべてのメンバ一覧

## Public メソッド
| fk_BSplSurface (void)
| コンストラクタ
virtual | ~fk_BSplSurface ()
| デストラクタ
void | init (void)
| 初期化用関数
bool | setOrdinate (int uO, int vO)
| 位数設定関数
bool | setNum (int uN, int vN)
| 制御点数設定関数
bool | setCtrl (int uID, int vID, const fk_Vector &pos)
| 制御点個別設定関数
bool | setCtrl (std::vector< fk_Vector > *array)
| 制御点一斉設定関数
int | getUOrdinate (void)
| u方向位数参照関数
int | getVOrdinate (void)
| v方向位数参照関数
int | getUNum (void)
| u方向制御点数参照関数
int | getVNum (void)
| v方向制御点数参照関数
fk_Vector | getCtrl (int uID, int vID)
| 制御点参照関数
fk_Vector | pos (double u, double v)
| 曲面算出関数
fk_Vector | uDeriv (double u, double v)
| 曲線 u 方向1階偏微分ベクトル算出関数
fk_Vector | vDeriv (double u, double v)
| 曲線 v 方向1階偏微分ベクトル算出関数

## 説明

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

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

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

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

fk_BSplSurface::fk_BSplSurface | ( | void |  | ) |

コンストラクタ

virtual fk_BSplSurface::~fk_BSplSurface | ( |  | ) | `[virtual]`

デストラクタ

## 関数

void fk_BSplSurface::init | ( | void |  | ) |

初期化用関数

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

- u方向、v方向共に位数が 3。
- 制御点数が 3x3。
- すべての制御点の位置ベクトルが原点と一致。

bool fk_BSplSurface::setOrdinate | ( | int | uO,
|  | int | vO
| ) |  |

位数設定関数

曲面の位数を設定します。 現状では、3,4,5 のいずれかのみ以外は設定できません。 この関数を設定した後、制御点数は位数の2乗に固定され、 すべての制御点は原点に配置されます。

引数:

  [in] | uO | u方向の位数
  [in] | vO | v方向の位数

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

bool fk_BSplSurface::setNum | ( | int | uN,
|  | int | vN
| ) |  |

制御点数設定関数

曲面の制御点数を設定します。 制御点数は u 方向、v 方向で別々に指定し、 実際にはその積が制御点数となります。 制御点数は、それぞれの方向に設定されている位数以上である必要があります。 上限値はありません。

引数:

  [in] | uN | u方向の制御点数
  [in] | vN | v方向の制御点数

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

bool fk_BSplSurface::setCtrl | ( | int | uID,
|  | int | vID,
|  | const fk_Vector & | pos
| ) |  |

制御点個別設定関数

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

引数:

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

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

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

制御点一斉設定関数

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

引数:

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

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

int fk_BSplSurface::getUOrdinate | ( | void |  | ) |

u方向位数参照関数

曲面の u 方向の位数を参照します。

戻り値:
  位数

int fk_BSplSurface::getVOrdinate | ( | void |  | ) |

v方向位数参照関数

曲面の v 方向の位数を参照します。

戻り値:
  位数

int fk_BSplSurface::getUNum | ( | void |  | ) |

u方向制御点数参照関数

曲面の u 方向の制御点数を参照します。

戻り値:
  u 方向の制御点数

int fk_BSplSurface::getVNum | ( | void |  | ) |

v方向制御点数参照関数

曲面の v 方向の制御点数を参照します。

戻り値:
  v 方向の制御点数

fk_Vector fk_BSplSurface::getCtrl | ( | int | uID,
|  | int | vID
| ) |  |

制御点参照関数

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

引数:

  [in] | uID | u 方向の制御点 ID
  [in] | vID | v 方向の制御点 ID

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

fk_Vector fk_BSplSurface::pos | ( | double | u,
|  | double | v
| ) |  | `[virtual]`

曲面算出関数

パラメータに対応する曲面上の点の位置ベクトルを返します。

引数:

  [in] | u | 曲面上の u パラメータ
  [in] | v | 曲面上の v パラメータ

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

fk_Surfaceを実装しています。

fk_Vector fk_BSplSurface::uDeriv | ( | double | u,
|  | double | v
| ) |  | `[virtual]`

曲線 u 方向1階偏微分ベクトル算出関数

パラメータに対応する曲面上の u 方向1階偏微分ベクトルを返します。

引数:

  [in] | u | 曲面上の u パラメータ
  [in] | v | 曲面上の v パラメータ

戻り値:
  曲面上の u 方向1階偏微分ベクトル

fk_Surfaceを実装しています。

fk_Vector fk_BSplSurface::vDeriv | ( | double | u,
|  | double | v
| ) |  | `[virtual]`

曲線 v 方向1階偏微分ベクトル算出関数

パラメータに対応する曲面上の v 方向1階偏微分ベクトルを返します。

引数:

  [in] | u | 曲面上の u パラメータ
  [in] | v | 曲面上の v パラメータ

戻り値:
  曲面上の v 方向1階偏微分ベクトル

fk_Surfaceを実装しています。

全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義