diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 91aef39eea..3315cdd2e7 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -21,6 +21,9 @@ #include "EntityItem.h" #include "EntityTree.h" +quint64 EntityItem::lastCollisionTime = 0; + + void EntityItem::initFromEntityItemID(const EntityItemID& entityItemID) { _id = entityItemID.id; _creatorTokenID = entityItemID.creatorTokenID; diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index df619e2f69..ad540d1df9 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -42,7 +42,6 @@ class EntityTreeElementExtraEncodeData; /// one directly, instead you must only construct one of it's derived classes with additional features. class EntityItem { friend class EntityTreeElement; - public: enum EntityDirtyFlags { DIRTY_POSITION = 0x0001, @@ -55,6 +54,8 @@ public: DIRTY_UPDATEABLE = 0x0080, }; + static quint64 lastCollisionTime; + DONT_ALLOW_INSTANTIATION // This class can not be instantiated directly EntityItem(const EntityItemID& entityItemID); diff --git a/libraries/physics/src/EntityMotionState.cpp b/libraries/physics/src/EntityMotionState.cpp index a6a358faa0..02d7b77606 100644 --- a/libraries/physics/src/EntityMotionState.cpp +++ b/libraries/physics/src/EntityMotionState.cpp @@ -99,6 +99,13 @@ void EntityMotionState::setWorldTransform(const btTransform& worldTrans) { _outgoingPacketFlags = DIRTY_PHYSICS_FLAGS; EntityMotionState::enqueueOutgoingEntity(_entity); + + quint64 now = usecTimestampNow(); + qDebug() << "EntityMotionState::setWorldTransform()... changed entity:" << _entity->getEntityItemID(); + qDebug() << " last edited:" << _entity->getLastEdited() << formatUsecTime(now - _entity->getLastEdited()) << "ago"; + qDebug() << " last simulated:" << _entity->getLastSimulated() << formatUsecTime(now - _entity->getLastSimulated()) << "ago"; + qDebug() << " last updated:" << _entity->getLastUpdated() << formatUsecTime(now - _entity->getLastUpdated()) << "ago"; + qDebug() << " last collision:" << EntityItem::lastCollisionTime << formatUsecTime(now - EntityItem::lastCollisionTime) << "ago"; } void EntityMotionState::updateObjectEasy(uint32_t flags, uint32_t frame) { diff --git a/libraries/physics/src/PhysicsEngine.cpp b/libraries/physics/src/PhysicsEngine.cpp index dfd28dd8a4..fce8faf301 100644 --- a/libraries/physics/src/PhysicsEngine.cpp +++ b/libraries/physics/src/PhysicsEngine.cpp @@ -371,10 +371,18 @@ void PhysicsEngine::computeCollisionEvents() { if (B && B->getType() == MOTION_STATE_TYPE_ENTITY) { idB = static_cast(B)->getEntity()->getEntityItemID(); } + +qDebug() << "entityCollisionWithEntity()... idA:" << idA << "idB:" << idB << "*******************************"; +EntityItem::lastCollisionTime = usecTimestampNow(); + emit entityCollisionWithEntity(idA, idB, contactItr->second); } else if (B && B->getType() == MOTION_STATE_TYPE_ENTITY) { EntityItemID idA; EntityItemID idB = static_cast(B)->getEntity()->getEntityItemID(); + +qDebug() << "entityCollisionWithEntity()... idA:" << idA << "idB:" << idB << "*******************************"; +EntityItem::lastCollisionTime = usecTimestampNow(); + emit entityCollisionWithEntity(idA, idB, contactItr->second); }