■NxSphericalJointDesc クラス | Top |
球面ジョイントを設定します。
メンバ関数
変数名 有効値 初期値 説明 swingAxis 単位ベクトル [ 0, 0, 1 ] NxVec3 クラス。 projectionDistance ( 0, 〜 inf ) 1.0 NxReal 型 twistLimit NxJointLimitPairDesc クラス。 swingLimit NxJointLimitDesc クラス。 twistSpring NxSpringDesc クラス。 swingSpring NxSpringDesc クラス。 jointSpring NxSpringDesc クラス。 flags 0 NxU32 型。 NxSphericalJointFlag 列挙型の組み合わせ。 projectionMode NX_JPM_NONE NxJointProjectionMode 列挙型。
関数名 説明 setToDefault 初期値を設定します。 isValid
このジョイントは全方向に回転できます。振り回し運動とねじれ運動に対し制限を設定することが可能です。このクラスは NxJointDesc クラスから追加機能を継承します。
NxScene* m_pNxScene; NxActor* m_pActorBox; NxSphericalJointDesc sphericalDesc; NxSpringDesc sd; sphericalDesc.setToDefault(); sphericalDesc.actor[0] = NULL; // ワールド空間上に固定する sphericalDesc.actor[1] = m_pActorBox; // アクターを関連付ける sphericalDesc.localAnchor[0] = NxVec3( 0, 10, 40 ); // ワールド空間上に固定する座標をワールド座標系で設定 sphericalDesc.localAnchor[1] = NxVec3( 0, 1, 0 ); // アンカーポイントをローカル座標系で設定 sphericalDesc.setGlobalAxis( NxVec3( 0, 1, 0 ) ); // 制限の基準をワールド座標系で設定する //振り回し運動に回転角度による制限を有効にする. sphericalDesc.flags |= NX_SJF_SWING_LIMIT_ENABLED; //振り回し運動の稼動範囲.ラジアン角. sphericalDesc.swingLimit.value = (NxReal)0.1 * NxPi; // 振り回し運動にばねによる制限を有効にする. sphericalDesc.flags |= NX_SJF_SWING_SPRING_ENABLED; sd.spring = 50000; // ばね係数.値が大きくなるほど大きな反発力が働く. sphericalDesc.swingSpring = sd; //ねじれ運動に回転角度による制限を有効にする. sphericalDesc.flags |= NX_SJF_TWIST_LIMIT_ENABLED; //ねじれ運動の稼動範囲.ラジアン角. sphericalDesc.twistLimit.low.value = -(NxReal)0.3*NxPi; sphericalDesc.twistLimit.high.value = (NxReal)0.3*NxPi; // ねじれ運動にばねによる制限を有効にする. sphericalDesc.flags |= NX_SJF_TWIST_SPRING_ENABLED; sd.spring = 50000; // ばね係数.値が大きくなるほど大きな反発力が働く. sphericalDesc.twistSpring = sd; // ジョイントを作成する m_pNxScene->createJoint( sphericalDesc );
ヘッダー NxSphericalJointDesc.h
NxJointDesc