FineKernelToolKit 4.3.0
読み取り中…
検索中…
一致する文字列を見つけられません
FK::fk_BSplCurve クラス

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

#include <FK/BSplCurve.h>

FK::fk_BSplCurve の継承関係図
FK::fk_BSplCurve 連携図

公開メンバ関数

 fk_BSplCurve (void)
 コンストラクタ
virtual ~fk_BSplCurve ()
 デストラクタ
void init (void)
 初期化用関数
bool setOrdinate (int ord)
 位数設定関数
bool setNum (int num)
 制御点数設定関数
int getOrdinate (void)
int getNum (void)
 制御点数参照関数
fk_Vector pos (double t)
 曲線算出関数
fk_Vector diff (double t)
 曲線1階微分ベクトル算出関数
基底クラス FK::fk_Curve に属する継承公開メンバ関数
 fk_Curve (void)
 コンストラクタ
virtual ~fk_Curve ()
 デストラクタ
virtual bool setCtrl (int ID, fk_Vector pos)
 制御点設定関数2
virtual bool setWeight (int ID, double w)
 制御点重み値設定関数
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
 制御点配列

詳解

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

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

構築子と解体子

◆ fk_BSplCurve()

FK::fk_BSplCurve::fk_BSplCurve ( void )

コンストラクタ

◆ ~fk_BSplCurve()

virtual FK::fk_BSplCurve::~fk_BSplCurve ( )
virtual

デストラクタ

関数詳解

◆ init()

void FK::fk_BSplCurve::init ( void )
virtual

初期化用関数

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

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

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

◆ setOrdinate()

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

位数設定関数

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

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

◆ setNum()

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

制御点数設定関数

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

引数
[in]num制御点数
戻り値
設定に成功した場合 true、失敗した場合 false を返します。

◆ getOrdinate()

int FK::fk_BSplCurve::getOrdinate ( void )

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

戻り値
位数

◆ getNum()

int FK::fk_BSplCurve::getNum ( void )

制御点数参照関数

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

戻り値
制御点数

◆ pos()

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

曲線算出関数

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

引数
[in]t曲線上のパラメータ
戻り値
曲線上の点の位置ベクトル

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

◆ diff()

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

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

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

引数
[in]t曲線上のパラメータ
戻り値
曲線上の点の1階微分ベクトル

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