FineKernelToolKit
2.8.10
|
B-Spline 曲面を生成、管理するクラス [詳細]
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 | ) |
初期化用関数
この関数は、曲面を初期状態にします。 初期状態とは、以下のような条件で曲面を構築することです。
bool fk_BSplSurface::setOrdinate | ( | int | uO, |
int | vO | ||
) |
位数設定関数
曲面の位数を設定します。 現状では、3,4,5 のいずれかのみ以外は設定できません。 この関数を設定した後、制御点数は位数の2乗に固定され、 すべての制御点は原点に配置されます。
[in] | uO | u方向の位数 |
[in] | vO | v方向の位数 |
bool fk_BSplSurface::setNum | ( | int | uN, |
int | vN | ||
) |
制御点数設定関数
曲面の制御点数を設定します。 制御点数は u 方向、v 方向で別々に指定し、 実際にはその積が制御点数となります。 制御点数は、それぞれの方向に設定されている位数以上である必要があります。 上限値はありません。
[in] | uN | u方向の制御点数 |
[in] | vN | v方向の制御点数 |
bool fk_BSplSurface::setCtrl | ( | int | uID, |
int | vID, | ||
const fk_Vector & | pos | ||
) |
制御点個別設定関数
曲線の制御点位置ベクトルを設定します。
[in] | uID | 設定する制御点の u 方向の ID。先頭は 0 になります。 |
[in] | vID | 設定する制御点の v 方向の ID。先頭は 0 になります。 |
[in] | pos | 制御点位置ベクトル |
bool fk_BSplSurface::setCtrl | ( | std::vector< fk_Vector > * | array | ) |
制御点一斉設定関数
曲面の制御点位置ベクトルを、vector 配列を用いて一斉に設定します。 設定の際、制御点数は setNum() によって設定しておく必要があり、 配列のサイズは上記の積と一致していなければなりません。
[in] | array | 制御点の vector 配列のポインタ |
int fk_BSplSurface::getUOrdinate | ( | void | ) |
u方向位数参照関数
曲面の u 方向の位数を参照します。
int fk_BSplSurface::getVOrdinate | ( | void | ) |
v方向位数参照関数
曲面の v 方向の位数を参照します。
int fk_BSplSurface::getUNum | ( | void | ) |
u方向制御点数参照関数
曲面の u 方向の制御点数を参照します。
int fk_BSplSurface::getVNum | ( | void | ) |
v方向制御点数参照関数
曲面の v 方向の制御点数を参照します。
fk_Vector fk_BSplSurface::getCtrl | ( | int | uID, |
int | vID | ||
) |
制御点参照関数
曲面の制御点位置ベクトルを参照します。
[in] | uID | u 方向の制御点 ID |
[in] | vID | v 方向の制御点 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 パラメータ |
fk_Surfaceを実装しています。
fk_Vector fk_BSplSurface::vDeriv | ( | double | u, |
double | v | ||
) | [virtual] |
曲線 v 方向1階偏微分ベクトル算出関数
パラメータに対応する曲面上の v 方向1階偏微分ベクトルを返します。
[in] | u | 曲面上の u パラメータ |
[in] | v | 曲面上の v パラメータ |
fk_Surfaceを実装しています。