メインページ | ネームスペース一覧 | クラス階層 | 構成 | Directories | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス Spr::PHJointBase

関節の基本クラス.ツリー構造を作る.PHJointEngineがツリーを持つ. [詳細]

#include <PHJoint.h>

Spr::UTTreeNode< PHJointBase >, と Spr::SGObjectを継承しています。

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, Spr::PHJointMulti< 3 >, と Spr::PHJointRootに継承されています。

Spr::PHJointBaseのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

座標系の説明

関節フレームの説明 関節の位置と傾きを表現するためのフレーム。 関節フレーム原点は関節軸の位置を表す。 軸と座標の関係は関節の種類(派生クラス)によって異なる.

Fc := child solid's frame 子剛体の座標系

Public 型

Public メソッド

Featherstone's algorithm

Public 変数

Static Public 変数

Protected メソッド


説明

関節の基本クラス.ツリー構造を作る.PHJointEngineがツリーを持つ.

PHJoint.h51 行で定義されています。


列挙型

enum Spr::PHJointBase::IntType
 

積分の方法. Method of solver

PHJoint.h61 行で定義されています。


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

Spr::PHJointBase::PHJointBase  ) 
 

コンストラクタ


関数

void Spr::PHJointBase::Loaded SGScene scene  )  [virtual]
 

ロード後の初期化.再帰.

Spr::SGObjectを再定義しています。

Spr::PHJointHinge, Spr::PHJointSlider, と Spr::PHJointBallで再定義されています。

PHJointBase* Spr::PHJointBase::Search PHSolid  ) 
 

指定したPHSolidを小に持つノードを検索する

Affinef Spr::PHJointBase::GetPostureFromParent  )  [inline]
 

親剛体のフレームから見た関節姿勢

PHJoint.h122 行で定義されています。

Affinef Spr::PHJointBase::GetPostureFromChild  )  [inline]
 

子剛体のフレームから見た関節姿勢

PHJoint.h124 行で定義されています。

参照先 cRj, と crj.

Vec3f Spr::PHJointBase::GetSolidAngularAccel  )  [inline]
 

子剛体の角加速度(World系)

PHJoint.h126 行で定義されています。

参照先 a, と solid.

Vec3f Spr::PHJointBase::GetSolidAccel  )  [inline]
 

子剛体の加速度(World系)

PHJoint.h128 行で定義されています。

参照先 a, と solid.

Vec3f Spr::PHJointBase::GetSolidAngularVelocity  )  [inline]
 

子剛体の角加速度(World系)

PHJoint.h130 行で定義されています。

参照先 w_abs.

Vec3f Spr::PHJointBase::GetSolidVelocity  )  [inline]
 

子剛体の加速度(World系)

PHJoint.h132 行で定義されています。

参照先 v_abs.

Matrix3d Spr::PHJointBase::GetOrientation  )  [inline]
 

絶対座標での関節の向き

PHJoint.h134 行で定義されています。

参照先 R.

virtual int Spr::PHJointBase::GetJointDof  )  [pure virtual]
 

関節の自由度

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

virtual double Spr::PHJointBase::GetJointPosition int  i  )  [pure virtual]
 

関節位置の取得

Spr::PHJoint1D, Spr::PHJointBall, と Spr::PHJointUniversalで実装されています.

virtual double Spr::PHJointBase::GetJointVelocity int  i  )  [pure virtual]
 

関節速度の取得

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

virtual double Spr::PHJointBase::GetJointAccel int  i  )  [pure virtual]
 

関節加速度の取得

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

virtual double Spr::PHJointBase::GetJointTorque int  i  )  [pure virtual]
 

関節トルクの取得

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

virtual void Spr::PHJointBase::SetJointTorque double  v,
int  i
[pure virtual]
 

関節トルクの設定

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

virtual void Spr::PHJointBase::AddJointTorque double  v,
int  i
[pure virtual]
 

関節トルクを加える

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

void Spr::PHJointBase::CompCoriolisAccelRecursive double  dt  ) 
 

コリオリの力による加速度の計算

virtual void Spr::PHJointBase::CompArticulatedInertia double  dt  )  [virtual]
 

articulated inertia & ZA-force

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で再定義されています。

virtual void Spr::PHJointBase::Integrate SGScene scene  )  [virtual]
 

積分

Spr::PHJoint1D, Spr::PHJointBall, と Spr::PHJointUniversalで再定義されています。

virtual void Spr::PHJointBase::CalcAccel double  dt  )  [pure virtual]
 

このノードの加速度を計算したい場合に呼ぶ. 親ノードの加速度は副作用で求まる.子ノードについては計算しない.

呼び出しかた. 1. root->CalcCoriolisAccelRecusive(dt); 2. 全ジョイントについて,PHJointBase::torque に値を直接代入する. 3. root->CalcArticulatedInertia(dt); 4. CalcAccel(dt) 5. ジョイントの a から加速度を読み出す(座標系に注意) 6. 2-5をトルクパターンを変えながら呼び出す.

Compute accelaration of the child solid of this joint. For partial use of Featherstone's algorithm.

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で実装されています.

参照元 Spr::PHJointMulti< 3 >::CalcAccel().

virtual size_t Spr::PHJointBase::NChildObjects  )  [virtual]
 

所有しているオブジェクトの数

Spr::SGObjectを再定義しています。

virtual SGObject* Spr::PHJointBase::ChildObject size_t  i  )  [virtual]
 

所有しているオブジェクト

Spr::SGObjectを再定義しています。

virtual size_t Spr::PHJointBase::NReferenceObjects  )  [virtual]
 

参照しているオブジェクトの数

Spr::SGObjectを再定義しています。

virtual SGObject* Spr::PHJointBase::ReferenceObject size_t  i  )  [virtual]
 

参照しているオブジェクト

Spr::SGObjectを再定義しています。

virtual bool Spr::PHJointBase::AddChildObject SGObject o,
SGScene s
[virtual]
 

子オブジェクトの追加

Spr::SGObjectを再定義しています。

virtual bool Spr::PHJointBase::DelChildObject SGObject o,
SGScene s
[virtual]
 

子オブジェクトの削除

Spr::SGObjectを再定義しています。

virtual const UTTypeInfo** Spr::PHJointBase::ChildCandidates  )  [virtual]
 

子になりえるオブジェクトの型情報の配列

Spr::SGObjectを再定義しています。

template<class T>
T& Spr::PHJointBase::OfParent T PHJointBase::*  member  )  [inline, protected]
 

派生クラスが基本クラス型オブジェクトのメンバにアクセスするための手段

PHJoint.h198 行で定義されています。

参照先 Spr::UTTreeNode< PHJointBase >::GetParent().

参照元 Spr::PHJointMulti< 3 >::CalcAccel(), Spr::PHJointMulti< 3 >::CompArticulatedInertia(), と Spr::PHJointMulti< 3 >::PreIntegrate().

void Spr::PHJointBase::PropagateState  )  [protected]
 

位置・速度の伝播(非再帰関数)

virtual void Spr::PHJointBase::Reset  )  [protected, virtual]
 

姿勢などの再設定 非再帰 基本的な状態量(PHJointStateの内容)がLoadedやLoadStateでセットされた後に、 従属変数を計算するための関数

Spr::PHJoint1D, Spr::PHJointMulti< NDOF >, Spr::PHJointMulti< 2 >, と Spr::PHJointMulti< 3 >で再定義されています。


変数

UTTypeInfoImpAbst< PHJointBase > Spr::PHJointBase::typeInfo [static]
 

クラス名の取得などの基本機能の実装

Spr::SGObjectを再定義しています。

Spr::PHJoint1D, Spr::PHJointHinge, Spr::PHJointSlider, Spr::PHJointBall, と Spr::PHJointUniversalで再定義されています。

PHJoint.h59 行で定義されています。

enum Spr::PHJointBase::IntType Spr::PHJointBase::intType
 

積分の方法. Method of solver

UTRef<PHSolid> Spr::PHJointBase::solid
 

子Solid.関節は親Solidと子Solidをつなぐ

PHJoint.h66 行で定義されています。

参照元 GetSolidAccel(), と GetSolidAngularAccel().

UTRef<SGFrame> Spr::PHJointBase::frame
 

ルートノードが固定の場合のFrame

PHJoint.h67 行で定義されています。

Matrix3d Spr::PHJointBase::cRj
 

3x3回転行列 rotation matrix(Fp to Fjp, Fc to Fjc)

PHJoint.h92 行で定義されています。

参照元 GetPostureFromChild().

Vec3d Spr::PHJointBase::crj
 

並進ベクトル radius vector(Fp to Fjp in Fp, Fc to Fjc in Fc)

PHJoint.h93 行で定義されています。

参照元 GetPostureFromChild().

Vec3d Spr::PHJointBase::prc [protected]
 

並進ベクトル radius vector(Fp to Fc in Fc)

PHJoint.h96 行で定義されています。

Matrix3d Spr::PHJointBase::cRp [protected]
 

3x3回転行列 rotation matrix(Fp to Fc, Fc to Fp)

PHJoint.h97 行で定義されています。

Matrix3d Spr::PHJointBase::R [protected]
 

orientation matrix

PHJoint.h98 行で定義されています。

参照元 GetOrientation().

Quaterniond Spr::PHJointBase::quat [protected]
 

orientation quaternion

PHJoint.h99 行で定義されています。

Vec3d Spr::PHJointBase::p [protected]
 

position vector

PHJoint.h100 行で定義されています。

Vec3d Spr::PHJointBase::v_abs [protected]
 

velocity in Fc/world coord.

PHJoint.h101 行で定義されています。

参照元 GetSolidVelocity().

Vec3d Spr::PHJointBase::w_abs [protected]
 

angular velocity in Fc/world coord.

PHJoint.h102 行で定義されています。

参照元 GetSolidAngularVelocity().

Vec3d Spr::PHJointBase::pwc [protected]
 

[angular]velocity relative to Fp in Fc coord.

PHJoint.h103 行で定義されています。

SpMatrix6d Spr::PHJointBase::Ii [protected]
 

spatial isolated inertia

PHJoint.h104 行で定義されています。

SpMatrix6d Spr::PHJointBase::Ia [protected]
 

spatial articulated inertia

PHJoint.h105 行で定義されています。

SpVec6d Spr::PHJointBase::Za [protected]
 

zero accelaration force in Fc coord.

PHJoint.h106 行で定義されています。

SpVec6d Spr::PHJointBase::c [protected]
 

Coriolis vector in Fc coord.

PHJoint.h107 行で定義されています。

SpVec6d Spr::PHJointBase::a [protected]
 

spatial accelaration in Fc coord.

PHJoint.h108 行で定義されています。

参照元 GetSolidAccel(), と GetSolidAngularAccel().


このクラスの説明は次のファイルから生成されました:
Springheadに対してSun Apr 16 01:59:58 2006に生成されました。  doxygen 1.4.1