Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
実行時型情報テンプレートライブラリ. [詳細]
#include "BaseUtility.h"
構成 | |
class | UTTypeInfo |
実行時型情報 [詳細] | |
class | UTTypeInfoImp< T > |
実行時型情報クラスの実装 [詳細] | |
class | UTTypeInfoImpAbst< T > |
実行時型情報クラスの実装.抽象クラス版 [詳細] | |
class | UTTypeInfoObjectBase |
実行時型情報を持つクラスの基本クラス [詳細] | |
ネームスペース | |
Spr | |
SpatialVector V(v, w) = [v; w]; SpatialTransform X(R, r) = [R^T, -R^T * r%; O, R^T]; ^Tは転置, は外積行列,Oは零行列. X(R, r) * V(v, w) = [R^T * (v + w % r); R^T * w];. | |
マクロ定義 | |
#define | DEF_UTTYPEINFODEF(cls) |
実行時型情報を持つクラスが持つべきメンバの宣言部 [詳細] | |
#define | DEF_UTTYPEINFOABSTDEF(cls) |
実行時型情報を持つクラスが持つべきメンバの宣言部.抽象クラス版 [詳細] | |
#define | DEF_UTTYPEINFO(cls) |
実行時型情報を持つクラスが持つべきメンバの実装. [詳細] | |
#define | DEF_UTTYPEINFO1(cls, base1) |
実行時型情報を持つクラスが持つべきメンバの実装.1つのクラス継承をする場合 [詳細] | |
#define | DEF_UTTYPEINFO2(cls, base1, base2) |
実行時型情報を持つクラスが持つべきメンバの実装.2つのクラス継承をする場合 [詳細] | |
#define | DEF_UTTYPEINFO3(cls, base1, base2, base3) |
実行時型情報を持つクラスが持つべきメンバの実装.3つのクラス継承をする場合 [詳細] | |
#define | DEF_UTTYPEINFOABST(cls) |
実行時型情報を持つクラスが持つべきメンバの実装.抽象クラス版 [詳細] | |
#define | DEF_UTTYPEINFOABST1(cls, base1) |
実行時型情報を持つクラスが持つべきメンバの実装.抽象クラス版.1つのクラスを継承する場合 [詳細] | |
#define | DEF_UTTYPEINFOABST2(cls, base1, base2) |
実行時型情報を持つクラスが持つべきメンバの実装.抽象クラス版.2つのクラスを継承する場合 [詳細] | |
#define | DEF_UTTYPEINFOABST3(cls, base1, base2, base3) |
実行時型情報を持つクラスが持つべきメンバの実装.抽象クラス版.2つのクラスを継承する場合 [詳細] | |
#define | GETCLASSNAME(p) (p->GetTypeInfo()->className) |
#define | GETCLASSNAMES(T) (T::GetTypeInfoStatic()->className) |
#define | DCAST(T, p) UTDcastImp<T>(p) |
ダイナミックキャスト | |
#define | ACAST(T, p) UTAcastImp<T>(p) |
キャストに失敗するとassertするダイナミックキャスト | |
#define | DCASTP(TP, p) UTDcastpImp<TP>(p) |
ダイナミックキャスト.型名にポインタ型を使うバージョン | |
#define | ACASTP(TP, p) UTAcastpImp<TP>(p) |
キャストに失敗するとassertするダイナミックキャスト.型名にポインタ型を使うバージョン | |
関数 | |
template<class T , class P > | |
T * | UTDcastImp (P p) |
template<class T , class P > | |
T * | UTAcastImp (P p) |
template<class TP , class P > | |
TP | UTDcastpImp (P p) |
template<class TP , class P > | |
TP | UTAcastpImp (P p) |
char * | UTAcastError (const char *) |
キャストに失敗した場合のassert関数 | |
コンパイラのrttiを使わずマクロとテンプレートで実装してある.
#define DEF_UTTYPEINFO | ( | cls | ) |
#define DEF_UTTYPEINFO1 | ( | cls, | |
base1 | |||
) |
#define DEF_UTTYPEINFO2 | ( | cls, | |
base1, | |||
base2 | |||
) |
#define DEF_UTTYPEINFO3 | ( | cls, | |
base1, | |||
base2, | |||
base3 | |||
) |
#define DEF_UTTYPEINFOABST | ( | cls | ) |
#define DEF_UTTYPEINFOABST1 | ( | cls, | |
base1 | |||
) |
#define DEF_UTTYPEINFOABST2 | ( | cls, | |
base1, | |||
base2 | |||
) |
#define DEF_UTTYPEINFOABST3 | ( | cls, | |
base1, | |||
base2, | |||
base3 | |||
) |
#define DEF_UTTYPEINFOABSTDEF | ( | cls | ) |
#define DEF_UTTYPEINFODEF | ( | cls | ) |