![]() |
Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
カプセル
#include <CDCapsule.h>
Public メソッド | |
SPR_OBJECTDEF (CDCapsule) | |
CDCapsule (const CDCapsuleDesc &desc=CDCapsuleDesc()) | |
virtual bool | IsInside (const Vec3f &p) |
virtual float | CalcVolume () |
体積の計算 | |
virtual Matrix3f | CalcMomentOfInertia () |
密度1での慣性テンソルの計算 | |
virtual int | Support (Vec3f &w, const Vec3f &v) const |
サポートポイントを求める. | |
virtual bool | FindCutRing (CDCutRing &r, const Posed &toW) |
切り口を求める.接触解析に使う. ただし、球体に関しては、切り口は求めない。接触解析時には最近傍の1点さえあればいい。 球体に関してFindCutRing()が呼び出された場合には、assertionが発生する。 | |
virtual int | GetVtxCount () const |
float | GetRadius () |
void | SetRadius (float r) |
float | GetLength () |
void | SetLength (float l) |
int | LineIntersect (const Vec3f &origin, const Vec3f &dir, Vec3f *result, float *offset) |
![]() | |
SPR_OBJECTDEF_ABST (CDConvex) | |
virtual Vec3f | CalcCenterOfMass () |
重心の計算 | |
virtual void | CalcMetrics () |
体積, 重心, 慣性行列を計算して内部にキャッシュしておく | |
float | GetVolume () |
Vec3f | GetCenterOfMass () |
体積を返す(キャッシュ済みの) | |
Matrix3f | GetMomentOfInertia () |
重心位置を返す(キャッシュ済みの) | |
virtual std::vector< int > & | FindNeighbors (int vtx) |
頂点vtx のとなりの頂点を列挙する。 | |
virtual Vec3f * | GetBase () |
頂点バッファを返す。 | |
virtual void | CalcBBox (Vec3f &bbmin, Vec3f &bbmax, const Posed &pose) |
バウンディングボックスを求める. | |
virtual double | CurvatureRadius (Vec3d p) |
表面上の点pにおける曲率半径を求める | |
virtual Vec3d | Normal (Vec3d p) |
平面とした場合の値。現時点ではRoundConeについてのみ実装されている(09/02/08, mitake) [詳細] | |
![]() | |
SPR_OBJECTDEF_ABST (CDShape) | |
void | SetStaticFriction (float mu0) |
float | GetStaticFriction () |
void | SetDynamicFriction (float mu) |
float | GetDynamicFriction () |
void | SetElasticity (float e) |
float | GetElasticity () |
void | SetDensity (float d) |
float | GetDensity () |
void | SetContactSpring (float K) |
float | GetContactSpring () |
void | SetContactDamper (float D) |
float | GetContactDamper () |
void | SetReflexSpring (float K) |
float | GetReflexSpring () |
void | SetReflexDamper (float D) |
float | GetReflexDamper () |
void | SetFrictionSpring (float K) |
float | GetFrictionSpring () |
void | SetFrictionDamper (float D) |
float | GetFrictionDamper () |
void | SetVibration (float vibA, float vibB, float vibW) |
void | SetVibA (float vibA) |
float | GetVibA () |
void | SetVibB (float vibB) |
float | GetVibB () |
void | SetVibW (float vibW) |
float | GetVibW () |
void | SetVibT (float vibT) |
float | GetVibT () |
void | SetVibContact (bool vibContact) |
bool | GetVibContact () |
const PHMaterial & | GetMaterial () |
void | SetMaterial (const PHMaterial &mat) |
![]() | |
NamedObject (const NamedObject &n) | |
NamedObject & | operator= (const NamedObject &n) |
virtual const char * | GetName () const |
名前の取得 | |
virtual void | SetName (const char *n) |
名前の設定 | |
virtual void | SetNameManager (NameManagerIf *s) |
NameManagerを設定 | |
virtual NameManagerIf * | GetNameManager () const |
NameManagerの取得 | |
![]() | |
SPR_OBJECTDEF (Object) | |
クラス名の取得などの基本機能の実装 | |
ObjectIf * | GetObjectIf () |
const ObjectIf * | GetObjectIf () const |
virtual void | Print (std::ostream &os) const |
デバッグ用の表示 | |
virtual void | PrintShort (std::ostream &os) const |
virtual ObjectIf * | CreateObject (const IfInfo *info, const void *desc) |
オブジェクトの作成 | |
virtual size_t | NChildObject () const |
子オブジェクトの数 | |
virtual ObjectIf * | GetChildObject (size_t pos) |
子オブジェクトの取得 | |
virtual const ObjectIf * | GetChildObject (size_t pos) const |
virtual bool | AddChildObject (ObjectIf *o) |
子オブジェクトの追加 | |
virtual bool | DelChildObject (ObjectIf *o) |
子オブジェクトの削除 | |
virtual void | Clear () |
すべての子オブジェクトの削除とプロパティのクリア | |
virtual void | Loaded (UTLoadContext *) |
ファイルロード後に一度呼ばれる。ノードの設定に使う。 呼び出し順序に依存する処理がしたい場合は、UTLoadHandeler と UTLoadTask を使うと良い。 | |
virtual void | Setup () |
ノードの設定をするための関数 | |
virtual bool | GetDesc (void *desc) const |
デスクリプタの読み出し(コピー版) | |
virtual void | SetDesc (const void *desc) |
デスクリプタの設定 | |
virtual const void * | GetDescAddress () const |
デスクリプタの読み出し(参照版) | |
virtual size_t | GetDescSize () const |
デスクリプタのサイズ | |
virtual bool | GetState (void *state) const |
状態の読み出し(コピー版) | |
virtual const void * | GetStateAddress () const |
状態の読み出し(参照版) | |
virtual void | GetStateR (char *&state) |
状態の再帰的な読み出し | |
virtual void | SetState (const void *state) |
状態の設定 | |
virtual void | SetStateR (const char *&state) |
状態の再帰的な設定 | |
virtual bool | WriteStateR (std::ostream &fout) |
状態のファイルへの書き出し | |
virtual bool | WriteState (std::string fileName) |
virtual bool | ReadStateR (std::istream &fin) |
状態の読み込み | |
virtual bool | ReadState (std::string fileName) |
virtual size_t | GetStateSize () const |
状態のサイズ | |
virtual void | ConstructState (void *m) const |
メモリブロックを状態型に初期化 | |
virtual void | DestructState (void *m) const |
状態型をメモリブロックに戻す | |
virtual void | DumpObjectR (std::ostream &os, int level=0) const |
メモリデバッグ用。単純にツリーのオブジェクトをファイルにダンプする。 | |
Public 変数 | |
SPR_DECLMEMBEROF_CDCapsuleDesc | |
![]() | |
bool | bboxReady |
PHFrameのBounding Boxの再計算の要否を表すフラグ | |
![]() | |
SPR_DECLMEMBEROF_CDShapeDesc | |
Additional Inherited Members | |
![]() | |
static float | CalcCylinderVolume (float r, float l) |
static Matrix3f | CalcCylinderInertia (float r, float l) |
static float | CalcHemisphereCoM (float r) |
static float | CalcHemisphereVolume (float r) |
static Matrix3f | CalcHemisphereInertia (float r) |
static float | CalcConeCoM (float l) |
static float | CalcConeVolume (float r, float l) |
static Matrix3f | CalcConeInertia (float r, float l) |
static float | CalcTetrahedronVolume (const Vec3f &a, const Vec3f &b, const Vec3f &c) |
static Vec3f | CalcTetrahedronCoM (const Vec3f &a, const Vec3f &b, const Vec3f &c) |
static Matrix3f | CalcTetrahedronInertia (const Vec3f &a, const Vec3f &b, const Vec3f &c) |
static float | CalcRoundConeVolume (Vec2f radius, float length) |
static Vec3f | CalcRoundConeCenterOfMass (Vec2f radius, float length) |
static Matrix3f | CalcRoundConeMomentOfInertia (Vec2f radius, float length) |
![]() | |
virtual void | PrintHeader (std::ostream &os, bool bClose) const |
開き括弧 | |
![]() | |
virtual void | PrintChildren (std::ostream &os) const |
子オブジェクトをPrint | |
virtual void | PrintFooter (std::ostream &os) const |
閉じ括弧 | |
virtual void | BeforeGetDesc () const |
GetDesc()の前に呼ばれる | |
virtual void | AfterSetDesc () |
SetDesc()のあとに呼ばれる | |
![]() | |
static void | ConstructState (ObjectIf *o, char *&s) |
sをoのStateとして初期化する. | |
static void | DestructState (ObjectIf *o, char *&s) |
sをoのStateからメモリブロックに戻す. | |
![]() | |
float | volume |
体積 | |
Vec3f | center |
重心 | |
Matrix3f | inertia |
慣性行列 | |
![]() | |
UTString | name |
名前 | |
NameManager * | nameManager |
名前の検索や重複管理をするもの.SceneやSDKなど. | |