90physx::PxJoint *QDistanceJoint::createPhysxJoint(physx::PxRigidActor *actorA,
91 physx::PxRigidActor *actorB,
92 const physx::PxTransform &trfA,
93 const physx::PxTransform &trfB)
95 return physx::PxDistanceJointCreate(*StaticPhysXObjects::getReference().physics, actorA, trfA,
99void QDistanceJoint::setJointProperties()
101 physx::PxDistanceJoint *joint =
static_cast<physx::PxDistanceJoint *>(m_joint);
103 float minDistance = m_minDistance;
104 float maxDistance = m_maxDistance;
111 if (m_minDistance > 0 && m_maxDistance > 0) {
112 minDistance = qMin(m_minDistance, m_maxDistance);
113 maxDistance = qMax(m_minDistance, m_maxDistance);
116 joint->setMinDistance(minDistance);
117 joint->setMaxDistance(maxDistance);
118 joint->setDistanceJointFlag(physx::PxDistanceJointFlag::eMIN_DISTANCE_ENABLED, minDistance > 0);
119 joint->setDistanceJointFlag(physx::PxDistanceJointFlag::eMAX_DISTANCE_ENABLED, maxDistance > 0);
121 joint->setStiffness(m_stiffness);
122 joint->setDamping(m_damping);
124 const bool enableSpring = (m_stiffness > 0.0f) || (m_damping > 0.0f);
125 joint->setDistanceJointFlag(physx::PxDistanceJointFlag::eSPRING_ENABLED, enableSpring);