Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
Public メソッド | |
SPR_IFDEF (PHHapticPointer) | |
void | SetHapticRenderMode (PHHapticPointerDesc::HapticRenderMode m) |
PHHapticPointerDesc::HapticRenderMode | GetHapticRenderMode () |
void | EnableRotation (bool b) |
bool | IsRotation () |
void | EnableForce (bool b) |
bool | IsForce () |
void | EnableFriction (bool b) |
bool | IsFriction () |
void | EnableTimeVaryFriction (bool b) |
bool | IsTimeVaryFriction () |
void | EnableVibration (bool b) |
bool | IsVibration () |
void | EnableMultiPoints (bool b) |
bool | IsMultiPoints () |
void | EnableMultiProxy (bool b) |
bool | IsMultiProxy () |
void | EnableSimulation (bool b) |
bool | IsSimulation () |
void | SetFrictionSpring (float s) |
摩擦で動的Proxyを使う場合のバネ係数 | |
float | GetFrictionSpring () |
摩擦で動的Proxyを使う場合のバネ係数 | |
void | SetFrictionDamper (float s) |
摩擦で動的Proxyを使う場合のダンパ係数 | |
float | GetFrictionDamper () |
摩擦で動的Proxyを使う場合のダンパ係数 | |
void | SetReflexSpring (float s) |
提示力計算に使うバネ係数 | |
float | GetReflexSpring () |
提示力計算に使うバネ係数 | |
void | SetReflexDamper (float d) |
提示力計算に使うダンパ係数 | |
float | GetReflexDamper () |
提示力計算に使うダンパ係数 | |
void | SetRotationReflexSpring (float s) |
提示力計算に使う回転バネ係数 | |
float | GetRotationReflexSpring () |
提示力計算に使う回転バネ係数 | |
void | SetRotationReflexDamper (float d) |
提示力計算に使う回転ダンパ係数 | |
float | GetRotationReflexDamper () |
提示力計算に使う回転ダンパ係数 | |
void | SetLocalRange (float r) |
中間表現を作る距離 | |
float | GetLocalRange () |
中間表現を作る距離 | |
void | SetPosScale (double scale) |
インタフェースの位置の倍率 | |
double | GetPosScale () |
インタフェースの位置の倍率 | |
void | SetRotationalWeight (double w) |
Proxyの回転による破綻を減らすための、倍率 | |
double | GetRotationalWeight () |
Proxyの回転による破綻を減らすための、倍率 | |
void | SetDefaultPose (Posed p) |
インタフェースに対するポインタの向き | |
Posed | GetDefaultPose () |
インタフェースに対するポインタの向き | |
int | NNeighborSolids () |
ポインタ近傍の剛体数 | |
int | GetNeighborSolidId (int i) |
ポインタ近傍の剛体のIDを取得 | |
PHSolidIf * | GetNeighborSolid (int i) |
ポインタ近傍の剛体を取得 | |
float | GetContactForce (int i) |
近傍物体iからの接触力 | |
SpatialVector | GetHapticForce () |
力覚インタフェースに出力する力 | |
SpatialVector | GetProxyVelocity () |
質量ありプロキシの速度 | |
void | SetProxyN (int n) |
proxyの数を設定 | |
int | GetProxyN () |
proxyの数を取得 | |
int | GetTotalSlipState () |
int | GetSlipState (int i) |
void | SetProxyVelocity (SpatialVector spv) |
void | AddHapticForce (const SpatialVector &f) |
void | ClearHapticForce () |
void | UpdateHumanInterface (const Posed &pose, const SpatialVector &vel) |
HumanInterfaceの位置の変化をHapticPointerに伝える。普通はFWSceeneが呼び出すので、呼び出し不要。 | |
Public メソッド inherited from PHSolidIf | |
SPR_IFDEF (PHSolid) | |
void | AddForce (Vec3d f) |
力を質量中心に加える [詳細] | |
void | AddTorque (Vec3d t) |
トルクを加える [詳細] | |
void | AddForce (Vec3d f, Vec3d r) |
力を指定した作用点に加える [詳細] | |
double | GetMass () |
質量を取得する [詳細] | |
double | GetMassInv () |
質量の逆数を取得する [詳細] | |
void | SetMass (double m) |
質量を設定する [詳細] | |
void | SetCenterOfMass (const Vec3d ¢er) |
質量中心を設定する [詳細] | |
Matrix3d | GetInertia () |
慣性テンソルを取得する [詳細] | |
Matrix3d | GetInertiaInv () |
慣性テンソルの逆数を取得する [詳細] | |
Matrix3d | GetGlobalInertia () |
グローバル回転の慣性テンソルを取得する [詳細] | |
void | SetInertia (const Matrix3d &I) |
慣性テンソルを設定する [詳細] | |
void | CompInertia () |
形状と密度から重心,質量,慣性テンソルを自動的に設定する | |
void | SetFramePosition (const Vec3d &p) |
剛体の位置を設定する [詳細] | |
void | SetCenterPosition (const Vec3d &p) |
剛体の位置を設定する [詳細] | |
Vec3d | GetDeltaPosition () const |
剛体の前のステップからの並進移動量を返す [詳細] | |
Vec3d | GetDeltaPosition (const Vec3d &p) const |
Quaterniond | GetOrientation () const |
剛体の向きを取得する [詳細] | |
void | SetOrientation (const Quaterniond &q) |
剛体の向きを設定する [詳細] | |
void | SetPose (const Posed &p) |
剛体の位置と向きを設定する [詳細] | |
void | SetVelocity (const Vec3d &v) |
剛体の速度を設定する [詳細] | |
void | SetAngularVelocity (const Vec3d &av) |
剛体の角速度を設定する [詳細] | |
void | SetDv (const SpatialVector &a) |
剛体の速度の変化量を設定する [詳細] | |
Vec3d | GetForce () const |
最後のステップで、拘束力以外に剛体に加わった外力を取得する。 拘束力は PHConstraint とその派生クラスから取得しなければならない。 [詳細] | |
Vec3d | GetTorque () const |
最後のステップで、拘束力以外に剛体に加わった外力トルクを取得する。 拘束力は PHConstraint とその派生クラスから取得しなければならない。 [詳細] | |
void | SetGravity (bool bOn) |
重力を有効/無効化する [詳細] | |
void | SetDynamical (bool bOn) |
物理法則に従うかどうかを有効/無効化する [詳細] | |
bool | IsDynamical () |
物理法則に従うかどうかを取得する [詳細] | |
void | SetStationary (bool bOn) |
bool | IsStationary () |
PHTreeNodeIf * | GetTreeNode () |
ツリーノードを取得する CreateRootNode,CreateTreeNodeによってツリーノードが割り当てられている場合, そのノードを返す.それ以外の場合はNULLを返す. | |
void | UpdateCacheLCP (double dt) |
LCP関連補助変数の初期化する | |
Public メソッド inherited from PHBodyIf | |
SPR_IFDEF (PHBody) | |
Posed | GetPose () const |
剛体の位置と向きを取得する [詳細] | |
Vec3d | GetVelocity () const |
剛体の速度を取得する [詳細] | |
Vec3d | GetAngularVelocity () const |
剛体の角速度を取得する [詳細] | |
Vec3d | GetCenterOfMass () |
質量中心を取得する [詳細] | |
Vec3d | GetFramePosition () |
剛体の位置を取得する [詳細] | |
Vec3d | GetCenterPosition () |
剛体の質量中心の位置を取得する [詳細] | |
bool | IsDynamical () |
動く物体かどうか | |
bool | IsFrozen () |
速度が0になり、計算省略のために凍らせているかどうか | |
void | AddShape (CDShapeIf *shape) |
剛体に形状を登録する [詳細] | |
void | AddShapes (CDShapeIf **shBegin, CDShapeIf **shEnd) |
void | RemoveShape (int index) |
剛体から形状を取り外す [詳細] | |
void | RemoveShapes (int idxBegin, int idxEnd) |
void | RemoveShape (CDShapeIf *shape) |
剛体から形状を取り外す [詳細] | |
int | NShape () |
登録されている形状の個数を取得する [詳細] | |
CDShapeIf * | GetShape (int index) |
登録されている形状を取得する [詳細] | |
Posed | GetShapePose (int index) |
形状の位置と向きを取得する [詳細] | |
void | SetShapePose (int index, const Posed &pose) |
形状の位置と向きを設定する [詳細] | |
void | ClearShape () |
形状をClearする [詳細] | |
void | GetBBox (Vec3d &bbmin, Vec3d &bbmax, bool world) |
Bounding boxを取得.必要なら再計算 [詳細] | |
bool | InvalidateBbox () |
Bounding Box キャッシュの無効化. [詳細] | |
Public メソッド inherited from SceneObjectIf | |
SPR_IFDEF (SceneObject) | |
SceneIf * | GetScene () |
所属Sceneの取得 | |
SceneObjectIf * | CloneObject () |
自分を所属Sceneに複製する | |
Public メソッド inherited from NamedObjectIf | |
SPR_IFDEF (NamedObject) | |
const char * | GetName () const |
名前の取得 | |
void | SetName (const char *n) |
名前の設定 | |
NameManagerIf * | GetNameManager () |
名前管理オブジェクトの取得 | |
Public メソッド inherited from ObjectIf | |
SPR_IFDEF (Object) | |
ObjectIf * | GetObjectIf () |
const ObjectIf * | GetObjectIf () const |
int | DelRef () const |
void | Print (std::ostream &os) const |
デバッグ用の表示。子オブジェクトを含む。 | |
void | PrintShort (std::ostream &os) const |
デバッグ用の表示。子オブジェクトを含まない。 | |
void | DumpObjectR (std::ostream &os, int level=0) const |
オブジェクトツリーのメモリイメージをダンプ | |
int | AddRef () |
int | RefCount () |
size_t | NChildObject () const |
子オブジェクトの数 | |
ObjectIf * | GetChildObject (size_t pos) |
子オブジェクトの取得 | |
const ObjectIf * | GetChildObject (size_t pos) const |
bool | AddChildObject (ObjectIf *o) |
子オブジェクトの追加.複数のオブジェクトの子オブジェクトとして追加してよい. 例えば,GRFrameはツリーを作るが,全ノードがGRSceneの子でもある. | |
bool | DelChildObject (ObjectIf *o) |
子オブジェクトの削除 | |
void | Clear () |
すべての子オブジェクトの削除と、プロパティのクリア | |
ObjectIf * | CreateObject (const IfInfo *info, const void *desc) |
オブジェクトを作成し,AddChildObject()を呼ぶ. | |
template<class T > | |
ObjectIf * | CreateObject (const T &desc) |
CreateObjectを呼び出すユーティリティ関数 | |
const void * | GetDescAddress () const |
デスクリプタの読み出し(参照版 NULLを返すこともある). これが実装されていなくても,ObjectIf::GetDesc()は実装されていることが多い. | |
bool | GetDesc (void *desc) const |
デスクリプタの読み出し(コピー版 失敗する(falseを返す)こともある). ObjectIf::GetDescAddress() が実装されていなくても,こちらは実装されていることがある. | |
void | SetDesc (const void *desc) |
デスクリプタの設定 | |
size_t | GetDescSize () const |
デスクリプタのサイズ | |
const void * | GetStateAddress () const |
状態の読み出し(参照版 NULLを返すこともある). これが実装されていなくても,ObjectIf::GetState()は実装されていることがある. | |
bool | GetState (void *state) const |
状態の読み出し(コピー版 失敗する(falseを返す)こともある). ObjectIf::GetStateAddress() が実装されていなくても,こちらは実装されていることがある. | |
void | SetState (const void *state) |
状態の設定 | |
bool | WriteStateR (std::ostream &fout) |
状態の書き出し | |
bool | WriteState (std::string fileName) |
bool | ReadStateR (std::istream &fin) |
状態の読み込み | |
bool | ReadState (std::string fileName) |
size_t | GetStateSize () const |
状態のサイズ | |
void | ConstructState (void *m) const |
メモリブロックを状態型に初期化 | |
void | DestructState (void *m) const |
状態型をメモリブロックに戻す | |