29 Q_PROPERTY(QVector3D movement READ movement WRITE setMovement NOTIFY movementChanged)
30 Q_PROPERTY(QVector3D gravity READ gravity WRITE setGravity NOTIFY gravityChanged)
31 Q_PROPERTY(
bool midAirControl READ midAirControl WRITE setMidAirControl NOTIFY
33 Q_PROPERTY(Collisions collisions READ collisions NOTIFY collisionsChanged)
34 Q_PROPERTY(
bool enableShapeHitCallback READ enableShapeHitCallback WRITE
35 setEnableShapeHitCallback NOTIFY enableShapeHitCallbackChanged)
36 QML_NAMED_ELEMENT(CharacterController)
38 QCharacterController();
40 enum class Collision {
46 Q_DECLARE_FLAGS(Collisions, Collision)
49 const QVector3D &movement()
const;
50 void setMovement(
const QVector3D &newMovement);
51 const QVector3D &gravity()
const;
52 void setGravity(
const QVector3D &newGravity);
53 QVector3D getDisplacement(
float deltaTime);
54 bool getTeleport(QVector3D &position);
56 bool midAirControl()
const;
57 void setMidAirControl(
bool newMidAirControl);
59 Q_INVOKABLE
void teleport(
const QVector3D &position);
61 const Collisions &collisions()
const;
62 void setCollisions(
const Collisions &newCollisions);
63 QAbstractPhysXNode *createPhysXBackend() final;
65 Q_REVISION(6, 6)
bool enableShapeHitCallback()
const;
66 Q_REVISION(6, 6)
void setEnableShapeHitCallback(
bool newEnableShapeHitCallback);
69 void movementChanged();
70 void gravityChanged();
72 void midAirControlChanged();
74 void collisionsChanged();
75 void enableShapeHitCallbackChanged();
76 void shapeHit(QAbstractPhysicsNode *body,
const QVector3D &position,
const QVector3D &impulse,
77 const QVector3D &normal);
82 bool m_midAirControl =
true;
84 QVector3D m_freeFallVelocity;
86 QVector3D m_teleportPosition;
87 bool m_teleport =
false;
88 Collisions m_collisions;
89 bool m_enableShapeHitCallback =
false;