6#include "physxnode/qphysxactorbody_p.h"
10#include <extensions/PxSphericalJoint.h>
15
16
17
18
19
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
38
39
42
43
44
45
46
47
48
49
50
51
54
55
56
57
58
59
61float QSphericalJoint::coneLimitY()
const
66void QSphericalJoint::setConeLimitY(
float newConeLimitY)
70 newConeLimitY = qBound(1e-4f, newConeLimitY, physx::PxPi - 1e-4f);
71 if (qFuzzyCompare(m_coneLimitY, newConeLimitY))
73 m_coneLimitY = newConeLimitY;
74 m_dirtyProperties =
true;
75 emit coneLimitYChanged();
78float QSphericalJoint::coneLimitZ()
const
83void QSphericalJoint::setConeLimitZ(
float newConeLimitZ)
87 newConeLimitZ = qBound(1e-4f, newConeLimitZ, physx::PxPi - 1e-4f);
88 if (qFuzzyCompare(m_coneLimitZ, newConeLimitZ))
90 m_coneLimitZ = newConeLimitZ;
91 m_dirtyProperties =
true;
92 emit coneLimitZChanged();
95bool QSphericalJoint::enableConeLimit()
const
97 return m_enableConeLimit;
100void QSphericalJoint::setEnableConeLimit(
bool newEnableConeLimit)
102 if (m_enableConeLimit == newEnableConeLimit)
104 m_enableConeLimit = newEnableConeLimit;
105 m_dirtyProperties =
true;
106 emit enableConeLimitChanged();
109physx::PxJoint *QSphericalJoint::createPhysxJoint(physx::PxRigidActor *actorA,
110 physx::PxRigidActor *actorB,
111 const physx::PxTransform &trfA,
112 const physx::PxTransform &trfB)
114 return physx::PxSphericalJointCreate(*StaticPhysXObjects::getReference().physics, actorA, trfA,
118void QSphericalJoint::setJointProperties()
120 physx::PxSphericalJoint *joint =
static_cast<physx::PxSphericalJoint *>(m_joint);
121 joint->setLimitCone(physx::PxJointLimitCone(m_coneLimitY, m_coneLimitZ));
122 joint->setSphericalJointFlag(physx::PxSphericalJointFlag::eLIMIT_ENABLED, m_enableConeLimit);
#define QT_BEGIN_NAMESPACE