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]uOu方向の位数
[in]vOv方向の位数
戻り値:
位数設定に成功した場合 true、失敗した場合 false を返します。
bool fk_BSplSurface::setNum ( int  uN,
int  vN 
)

制御点数設定関数

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

引数:
[in]uNu方向の制御点数
[in]vNv方向の制御点数
戻り値:
設定に成功した場合 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]uIDu 方向の制御点 ID
[in]vIDv 方向の制御点 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を実装しています。

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