関節の作成

以下ではもっとも使用頻度の高いヒンジの作成を例にとって関節の作成方法を説明します. ヒンジを作成するには次のようにします.

PHSolidIf* solid0 = phScene->GetSolids()[0];
PHSolidIf* solid1 = phScene->GetSolids()[1];

PHHingeJointDesc desc;
desc.poseSocket.Pos() = Vec3d( 1.0, 0.0, 0.0);
desc.posePlug.Pos()   = Vec3d(-1.0, 0.0, 0.0);
PHHingeJointIf* joint
    = phScene->CreateJoint(solid0, solid1, desc)->Cast();

作成したい関節の種類に応じたディスクリプタを作成し,これをPHSceneCreateJoint関数に渡して関節を作成します. このとき,ディスクリプタとともに連結したい剛体のインタフェースも渡します. CreateJointPHJointIf*を返しますので,作成した関節のインタフェースを得るにはCastで動的キャストします.

関節に関するPHSceneの関数を以下に示します.

PHSceneIf

PHJointIf*

CreateJoint(PHSolidIf*, PHSolidIf*, const PHJointDesc&)

 

int

NJoint()

 

PHJointIf*

GetJoint(int i)

 

NJointはシーン中の関節の個数を返します.GetJointi番目の関節を取得します.