diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index e23ed316ac..32700d5d99 100755 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -152,6 +152,9 @@ public: public slots: void updateCollisionFlags(); +signals: + void collisionWithAvatar(const QUuid&, const QUuid&, const CollisionInfo&); + protected: SkeletonModel _skeletonModel; float _bodyYawDelta; diff --git a/interface/src/avatar/Hand.cpp b/interface/src/avatar/Hand.cpp index fc47520c83..e50c73d573 100644 --- a/interface/src/avatar/Hand.cpp +++ b/interface/src/avatar/Hand.cpp @@ -159,6 +159,11 @@ void Hand::collideAgainstAvatar(Avatar* avatar, bool isMyHand) { // TODO: submit collision info to MyAvatar which should lean accordingly averageContactPoint /= (float)handCollisions.size(); avatar->applyCollision(averageContactPoint, totalPenetration); + + CollisionInfo collision; + collision._penetration = totalPenetration; + collision._contactPoint = averageContactPoint; + emit avatar->collisionWithAvatar(avatar->getSessionUUID(), _owningAvatar->getSessionUUID(), collision); } } } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 08e1054829..2125b126b3 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -104,9 +104,6 @@ public slots: glm::vec3 getThrust() { return _thrust; }; void setThrust(glm::vec3 newThrust) { _thrust = newThrust; } -signals: - void collisionWithAvatar(const QUuid&, const QUuid&, const CollisionInfo&); - private: bool _mousePressed; float _bodyPitchDelta; // degrees