Public 型 | Public メソッド | Protected 変数
クラス テンプレート mist::bspline< T, K, Allocator >

Bスプライン曲線を扱うためのクラス [詳細]

#include <bspline.h>

std::vector< T >を継承しています。

Public 型

enum  BSplineMode { ROUND, THROUGH }
 ノットベクトルを手動で設定しない場合のデフォルトのモード [詳細]

Public メソッド

value_type operator() (double t)
 指定された位置(区間0〜1)に対応する,Bスプライン補間結果を返す
void knot (const knot_list &kknot)
 任意のノットベクトルを設定する
void knot (BSplineMode mode)
 デフォルトのモードでノットベクトルを設定する
const bsplineoperator= (const bspline &b)
 代入演算子
 bspline (const bspline &b)
 コピーコンストラクタ
 bspline ()
 デフォルトのコンストラクタ

Protected 変数

knot_list knot_
 ノットベクトル
BSplineMode mode_
 デフォルトのノットベクトル設定

Additional Inherited Members

- 変数 inherited from std::vector< T >
elements
 STL member.

説明

template<class T, int K, class Allocator = std::allocator< T >>
class mist::bspline< T, K, Allocator >

Bスプライン曲線を扱うためのクラス

K次のBスプライン曲線を描画可能.可変個数の制御点に対応し,任意のノットベクトルに対応するBスプライン曲線を描画

注意
入力されるデータ型が,加減算と単一のスカラー値を全てに代入する操作と浮動小数との掛け算をサポートする必要がある.
ただし,vector2,vector3 は正しく動作するようになっている.
array 等のMISTコンテナを利用する際には,オペレータを有効にする必要がある.
引数
T… 各制御点・補間点を表すデータ構造を指定(double や vector3< double > など)
K… Bスプライン曲線の次数
Bスプライン曲線の作成例
// 3次で変数の型が double のBスプラインを作成する
// 制御点を追加
b.push_back( 2.0 );
b.push_back( 3.0 );
...
// ノットベクトルを以下の方法のいずれかを用いて設定
// ・閉曲線の設定
// ・最初と最後の制御点を通る場合の設定
// ・任意のノットベクトルを設定
b.knot( STLのベクトルタイプのノットのリスト );
// 補間点を計算(区間は0〜1)
double p1 = b( 0.0 );
double p2 = b( 0.4 );
double p3 = b( 0.7 );
...

列挙型

template<class T , int K, class Allocator = std::allocator< T >>
enum mist::bspline::BSplineMode

ノットベクトルを手動で設定しない場合のデフォルトのモード

列挙型の値:
ROUND 

閉曲線の設定

THROUGH 

最初と最後の制御点を通る場合の設定

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

template<class T , int K, class Allocator = std::allocator< T >>
mist::bspline< T, K, Allocator >::bspline ( )
inline

デフォルトのコンストラクタ

ノットベクトルのデフォルト値を「最初と最後を通る曲線」に設定する

関数

template<class T , int K, class Allocator = std::allocator< T >>
void mist::bspline< T, K, Allocator >::knot ( const knot_list &  kknot)
inline

任意のノットベクトルを設定する

注意
次数 K で制御点数 N とした時に,ノットベクトルの数は N + K + 1 必要である
引数
[in]kknot… ノットベクトル
template<class T , int K, class Allocator = std::allocator< T >>
void mist::bspline< T, K, Allocator >::knot ( BSplineMode  mode)
inline

デフォルトのモードでノットベクトルを設定する

本クラス内で定義されている列挙型 BSplineMode のうちの一つを利用する

引数
[in]mode… 曲線のタイプ
template<class T , int K, class Allocator = std::allocator< T >>
value_type mist::bspline< T, K, Allocator >::operator() ( double  t)
inline

指定された位置(区間0〜1)に対応する,Bスプライン補間結果を返す

注意
次数+1の制御点数が入力されている必要あり.足りない場合は,デフォルトのノットベクトルで最初期化される.
引数
[in]t… 全体の曲線を区間0〜1とした時に,補間される点の位置
戻り値
指定された点の位置に対応するBスプライン曲線の補間結果

このクラスの説明は次のファイルから生成されました:

Generated on Wed Nov 12 2014 19:44:28 for MIST by doxygen 1.8.1.2