Springhead
An open source physics engine for virtual reality, haptics and motion generation.
クラス テンプレート VectorImp< D >

ベクトルの演算などの実装

#include <TVector.h>

VectorImp< D >に対する継承グラフ

Public 型

typedef D desc
 
typedef TYPENAME desc::exp_type exp_type
 
typedef TYPENAME desc::ret_type ret_type
 
typedef TYPENAME desc::element_type element_type
 
typedef TYPENAME desc::zero zero
 

Public メソッド

 VectorImp ()
 コンストラクタ
 
基本操作.
exp_type & exp ()
 実体の取得
 
const exp_type & exp () const
 
const element_type & item (size_t n) const
 n番目の要素を返す(基数は0).
 
element_type & item (size_t n)
 
size_t size () const
 サイズの取得
 
void resize (size_t sz)
 サイズの設定
 
void resize (size_t sz, const element_type v)
 サイズの設定とベクトルの要素を全てvにする
 
size_t stride () const
 ストライドの取得
 
部分ベクトル
template<class SZ >
TVectorSlice< SZ::SIZE,
SZ::STRIDE, desc > & 
t_slice (SZ)
 スライスを返す.テンプレート版 このベクトルのSZ::OFFSET要素から SZ::OFFSET + SZ::SIZE要素までの 部分ベクトルへの参照を返す. [詳細]
 
template<class SZ >
const TVectorSlice< SZ::SIZE,
SZ::STRIDE, desc > & 
t_slice (SZ) const
 
template<class SZ >
TSubVector< SZ::SIZE, desc > & sub_vector (SZ)
 部分ベクトルを返す.テンプレート版
 
template<class SZ >
const TSubVector< SZ::SIZE,
desc > & 
sub_vector (SZ) const
 
template<class SZ >
TVectorSlice< SZ::SIZE,
SZ::STRIDE, desc > & 
t_slice (size_t off, SZ)
 スライスを返す.サイズだけテンプレート版 このベクトルの off 要素から off + SZ::SIZE要素までの 部分ベクトルへの参照を返す. [詳細]
 
template<class SZ >
const TVectorSlice< SZ::SIZE,
SZ::STRIDE, desc > & 
t_slice (size_t off, SZ) const
 
template<class SZ >
TSubVector< SZ::SIZE, desc > & sub_vector (size_t off, SZ)
 部分ベクトルを返す.サイズだけテンプレート版
 
template<class SZ >
const TSubVector< SZ::SIZE,
desc > & 
sub_vector (size_t off, SZ) const
 
EVectorSlice< element_type > v_range (size_t off, size_t sz)
 部分ベクトルを返す.変数版
 
ConstEVectorSlice< element_type > v_range (size_t off, size_t sz) const
 
EVectorSlice< element_type > v_slice (size_t off, size_t sz, size_t str)
 ベクトルのスライスを返す.
 
ConstEVectorSlice< element_type > v_slice (size_t off, size_t sz, size_t str) const
 
演算.
void clear (const element_type v=zero(0))
 ベクトルの要素を全てvにする. [詳細]
 
template<class B >
void assign (const VectorImp< B > &b)
 代入(*this = b). [詳細]
 
void assign (const element_type *b)
 代入(*this = b). [詳細]
 
template<class B >
void add (const VectorImp< B > &b)
 加算(*this += b). [詳細]
 
template<class B >
void sub (const VectorImp< B > &b)
 減算(*this -= b). [詳細]
 
void multi (const element_type &b)
 定数倍(*this *= b). [詳細]
 
void div (const element_type &b)
 定数分の1(*this /= b). [詳細]
 
template<class B >
element_type dot (const VectorImp< B > &b) const
 内積(return *this * b). [詳細]
 
template<class B >
bool equal (const VectorImp< B > &b) const
 比較(return *this == b). [詳細]
 
template<class B >
void element_min (const VectorImp< B > &b)
 要素ごとの最小値(min(*this, b)). [詳細]
 
template<class B >
void element_max (const VectorImp< B > &b)
 要素ごとの最大値(max(*this, b)). [詳細]
 
element_type square () const
 ベクトルのノルム(大きさ)の2乗を返す.
 
element_type norm () const
 ベクトルのノルム(大きさ)を返す.
 
void unitize ()
 単位ベクトルにする.
 
template<class BD , class ED >
void clip (const VectorImp< BD > &b, const VectorImp< ED > &e)
 クリッピングする(bとeを頂点とする矩形内に収まるようにする).
 
入出力
void print (std::ostream &os, const char *sep="( )") const
 表示. [詳細]
 
template<class T >
void input (T &is)
 表示. [詳細]
 
演算子
template<class I >
element_type & operator[] (I n)
 [] 演算子(基数は0).
 
template<class I >
const element_type & operator[] (I n) const
 [] 演算子(基数は0) (const 版).
 
 operator element_type * ()
 element_type * への変換
 
 operator const element_type * () const
 
ret_type operator* (element_type b) const
 ベクトルのスカラー倍(return this * b). [詳細]
 
ret_type operator/ (element_type b) const
 ベクトルのスカラー分の1(return this / b). [詳細]
 
template<class BD >
ret_type operator+= (const VectorImp< BD > &b)
 += 演算子(*this = *this + b). [詳細]
 
template<class BD >
ret_type operator-= (const VectorImp< BD > &b)
 -= 演算子(*this = *this - b) [詳細]
 
template<class T >
ret_type operator*= (T b)
 *= 演算子 (*this = *this * b) [詳細]
 
template<class T >
ret_type operator/= (T b)
 /= 演算子 (*this = 1/b * *this). [詳細]
 
ret_type operator- () const
 
ret_type unit () const
 単位ベクトルを返す.
 

Protected メソッド

void init_buffer ()
 バッファの初期化.何もしない.
 
void set_default ()
 デフォルトコンストラクタ
 

関数

void add ( const VectorImp< B > &  b)
inline
void assign ( const VectorImp< B > &  b)
inline
引数
b同じサイズのベクトル.
void assign ( const element_type *  b)
inline
引数
b同じサイズのベクトル.
void clear ( const element_type  v = zero(0))
inline
element_type dot ( const VectorImp< B > &  b) const
inline
引数
b同じサイズのベクトル.
戻り値
内積の値(要素型)

参照元 PTM::operator*().

void element_max ( const VectorImp< B > &  b)
inline
引数
b同じサイズのベクトル.
void element_min ( const VectorImp< B > &  b)
inline
引数
b同じサイズのベクトル.
bool equal ( const VectorImp< B > &  b) const
inline
引数
b同じサイズのベクトル.
戻り値
bool値.

参照元 PTM::operator!=(), と PTM::operator==().

void input ( T &  is)
inline
引数
is入力元ストリーム

参照元 PTM::operator>>().

void multi ( const element_type &  b)
inline
ret_type operator* ( element_type  b) const
inline
引数
b要素型
戻り値
thisと同じベクトル型
ret_type operator*= ( b)
inline
引数
b要素型.
ret_type operator+= ( const VectorImp< BD > &  b)
inline
引数
bサイズが等しいベクトル型.
ret_type operator- ( ) const
inline
  • 演算子 (return -*this).
ret_type operator-= ( const VectorImp< BD > &  b)
inline
引数
bサイズが等しいベクトル型.
ret_type operator/ ( element_type  b) const
inline
引数
b要素型
戻り値
thisと同じベクトル型
ret_type operator/= ( b)
inline
引数
b要素型.
void print ( std::ostream &  os,
const char *  sep = "( )" 
) const
inline
引数
os出力先ストリーム
void sub ( const VectorImp< B > &  b)
inline
TVectorSlice<SZ::SIZE, SZ::STRIDE, desc>& t_slice ( SZ  )
inline
引数
SZ::OFFSET部分ベクトルの最初の要素の位置.
SZ::SIZE部分ベクトルのサイズ.
戻り値
SZ で指定されたベクトルへの参照を返す.
TVectorSlice<SZ::SIZE, SZ::STRIDE, desc>& t_slice ( size_t  off,
SZ   
)
inline
引数
SZ::OFFSET部分ベクトルの最初の要素の位置.
SZ::SIZE部分ベクトルのサイズ.
戻り値
SZ で指定されたベクトルへの参照を返す.

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