18#include <QtQuick3DPhysics/qtquick3dphysicsglobal.h>
19#include <QtQuick3DPhysics/private/qabstractcollisionshape_p.h>
20#include <QtQml/QQmlEngine>
23class PxCapsuleGeometry;
28class Q_QUICK3DPHYSICS_EXPORT
QCapsuleShape :
public QAbstractCollisionShape
31 QML_NAMED_ELEMENT(CapsuleShape)
32 Q_PROPERTY(
float diameter READ diameter WRITE setDiameter NOTIFY diameterChanged)
33 Q_PROPERTY(
float height READ height WRITE setHeight NOTIFY heightChanged)
38 float diameter()
const;
39 void setDiameter(
float newDiameter);
42 void setHeight(
float newHeight);
44 physx::PxGeometry *getPhysXGeometry() override;
45 bool isStaticShape()
const override {
return false; }
48 void diameterChanged();
52 void updatePhysXGeometry();
53 physx::PxCapsuleGeometry *m_physXGeometry =
nullptr;
54 float m_diameter = 100.0f;
55 float m_height = 100.0f;
QAbstractPhysicsNode * frontendNode
virtual void cleanup(QPhysXWorld *)
physx::PxMaterial * material
QPhysXCharacterController(QCharacterController *frontEnd)
bool debugGeometryCapability() override
DebugDrawBodyType getDebugDrawBodyType() override
void init(QPhysicsWorld *world, QPhysXWorld *physX) override
void cleanup(QPhysXWorld *physX) override
void createMaterial(QPhysXWorld *physX) override
void sync(float deltaTime, QHash< QQuick3DNode *, QMatrix4x4 > &transformCache) override
#define QT_BEGIN_NAMESPACE