27class Q_QUICK3DPHYSICS_EXPORT
QTriggerBody :
public QAbstractPhysicsNode
30 Q_PROPERTY(
int collisionCount READ collisionCount NOTIFY collisionCountChanged)
31 QML_NAMED_ELEMENT(TriggerBody)
40 using ShapePair = QPair<QAbstractCollisionShape *, QAbstractCollisionShape *>;
42 void registerCollision(QAbstractPhysicsNode *collision, ShapePair shapes);
43 void deregisterCollision(QAbstractPhysicsNode *collision, ShapePair shapes);
44 void invalidateOverlaps(QAbstractPhysicsNode *node);
45 void dropUnreportedOverlaps();
47 int collisionCount()
const;
48 QAbstractPhysXNode *createPhysXBackend() final;
51 void bodyEntered(QAbstractPhysicsNode *body);
52 void bodyExited(QAbstractPhysicsNode *body);
53 void collisionCountChanged();
56 void dropDestroyedBody(QObject *body);
63 QSet<ShapePair> pairs;
64 QSet<ShapePair> unreported;
69 bool receives =
false;
72 void reportEntered(QAbstractPhysicsNode *body,
bool sends,
bool receives);
73 void reportExited(QAbstractPhysicsNode *body,
bool sends,
bool receives);
78 QHash<QAbstractPhysicsNode *, Overlaps> m_collisions;
84 int m_reportedCount = 0;
QPhysXTriggerBody(QTriggerBody *frontEnd)
DebugDrawBodyType getDebugDrawBodyType() override
void sync(float deltaTime, QHash< QQuick3DNode *, QMatrix4x4 > &transformCache) override
bool useTriggerFlag() override