From de7d9743369eb0ec5b99696767d5f979cd7d7e16 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Mon, 30 Jul 2018 16:45:31 -0700 Subject: [PATCH] Re-name EntityIntersection to ContactTestResult and remove its default constructor, plus update related variables --- interface/src/raypick/CollisionPick.cpp | 8 ++--- interface/src/raypick/CollisionPick.h | 44 ++++++++++++------------- libraries/physics/src/PhysicsEngine.cpp | 10 +++--- libraries/physics/src/PhysicsEngine.h | 20 +++++------ 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/interface/src/raypick/CollisionPick.cpp b/interface/src/raypick/CollisionPick.cpp index 49c08a8f5c..c1fc8e9c87 100644 --- a/interface/src/raypick/CollisionPick.cpp +++ b/interface/src/raypick/CollisionPick.cpp @@ -271,8 +271,8 @@ PickResultPointer CollisionPick::getEntityIntersection(const CollisionRegion& pi return std::make_shared(); } - const auto& intersectingEntities = _physicsEngine->getCollidingInRegion(MOTIONSTATE_TYPE_ENTITY, pick.shapeInfo, pick.transform); - return std::make_shared(pick, intersectingEntities, std::vector()); + const auto& entityIntersections = _physicsEngine->getCollidingInRegion(MOTIONSTATE_TYPE_ENTITY, pick.shapeInfo, pick.transform); + return std::make_shared(pick, entityIntersections, std::vector()); } PickResultPointer CollisionPick::getOverlayIntersection(const CollisionRegion& pick) { @@ -285,8 +285,8 @@ PickResultPointer CollisionPick::getAvatarIntersection(const CollisionRegion& pi return std::make_shared(); } - const auto& intersectingAvatars = _physicsEngine->getCollidingInRegion(MOTIONSTATE_TYPE_AVATAR, pick.shapeInfo, pick.transform); - return std::make_shared(pick, std::vector(), intersectingAvatars); + const auto& avatarIntersections = _physicsEngine->getCollidingInRegion(MOTIONSTATE_TYPE_AVATAR, pick.shapeInfo, pick.transform); + return std::make_shared(pick, std::vector(), avatarIntersections); } PickResultPointer CollisionPick::getHUDIntersection(const CollisionRegion& pick) { diff --git a/interface/src/raypick/CollisionPick.h b/interface/src/raypick/CollisionPick.h index b8da0db85e..29990f21a7 100644 --- a/interface/src/raypick/CollisionPick.h +++ b/interface/src/raypick/CollisionPick.h @@ -18,22 +18,22 @@ public: CollisionPickResult() {} CollisionPickResult(const QVariantMap& pickVariant) : PickResult(pickVariant) {} - CollisionPickResult(const CollisionRegion& searchRegion, const std::vector& intersectingEntities, const std::vector& intersectingAvatars) : + CollisionPickResult(const CollisionRegion& searchRegion, const std::vector& entityIntersections, const std::vector& avatarIntersections) : PickResult(searchRegion.toVariantMap()), - intersects(intersectingEntities.size() || intersectingAvatars.size()), - intersectingEntities(intersectingEntities), - intersectingAvatars(intersectingAvatars) { + intersects(entityIntersections.size() || avatarIntersections.size()), + entityIntersections(entityIntersections), + avatarIntersections(avatarIntersections) { } CollisionPickResult(const CollisionPickResult& collisionPickResult) : PickResult(collisionPickResult.pickVariant) { - intersectingAvatars = collisionPickResult.intersectingAvatars; - intersectingEntities = collisionPickResult.intersectingEntities; - intersects = intersectingAvatars.size() || intersectingEntities.size(); + avatarIntersections = collisionPickResult.avatarIntersections; + entityIntersections = collisionPickResult.entityIntersections; + intersects = avatarIntersections.size() || entityIntersections.size(); } bool intersects { false }; - std::vector intersectingEntities; - std::vector intersectingAvatars; + std::vector entityIntersections; + std::vector avatarIntersections; virtual QVariantMap toVariantMap() const override { QVariantMap variantMap; @@ -41,21 +41,21 @@ public: variantMap["intersects"] = intersects; QVariantList qEntityIntersections; - for (auto intersectingEntity : intersectingEntities) { + for (auto entityIntersection : entityIntersections) { QVariantMap qEntityIntersection; - qEntityIntersection["objectID"] = intersectingEntity.id; - qEntityIntersection["pickCollisionPoint"] = vec3toVariant(intersectingEntity.testCollisionPoint); - qEntityIntersection["entityCollisionPoint"] = vec3toVariant(intersectingEntity.foundCollisionPoint); + qEntityIntersection["objectID"] = entityIntersection.foundID; + qEntityIntersection["pickCollisionPoint"] = vec3toVariant(entityIntersection.testCollisionPoint); + qEntityIntersection["entityCollisionPoint"] = vec3toVariant(entityIntersection.foundCollisionPoint); qEntityIntersections.append(qEntityIntersection); } variantMap["entityIntersections"] = qEntityIntersections; QVariantList qAvatarIntersections; - for (auto intersectingAvatar : intersectingAvatars) { + for (auto avatarIntersection : avatarIntersections) { QVariantMap qAvatarIntersection; - qAvatarIntersection["objectID"] = intersectingAvatar.id; - qAvatarIntersection["pickCollisionPoint"] = vec3toVariant(intersectingAvatar.testCollisionPoint); - qAvatarIntersection["entityCollisionPoint"] = vec3toVariant(intersectingAvatar.foundCollisionPoint); + qAvatarIntersection["objectID"] = avatarIntersection.foundID; + qAvatarIntersection["pickCollisionPoint"] = vec3toVariant(avatarIntersection.testCollisionPoint); + qAvatarIntersection["entityCollisionPoint"] = vec3toVariant(avatarIntersection.foundCollisionPoint); qAvatarIntersections.append(qAvatarIntersection); } variantMap["avatarIntersections"] = qAvatarIntersections; @@ -71,14 +71,14 @@ public: PickResultPointer compareAndProcessNewResult(const PickResultPointer& newRes) override { const std::shared_ptr newCollisionResult = std::static_pointer_cast(newRes); - for (EntityIntersection& intersectingEntity : newCollisionResult->intersectingEntities) { - intersectingEntities.push_back(intersectingEntity); + for (ContactTestResult& entityIntersection : newCollisionResult->entityIntersections) { + entityIntersections.push_back(entityIntersection); } - for (EntityIntersection& intersectingAvatar : newCollisionResult->intersectingAvatars) { - intersectingAvatars.push_back(intersectingAvatar); + for (ContactTestResult& avatarIntersection : newCollisionResult->avatarIntersections) { + avatarIntersections.push_back(avatarIntersection); } - intersects = intersectingEntities.size() || intersectingAvatars.size(); + intersects = entityIntersections.size() || avatarIntersections.size(); return std::make_shared(*this); } diff --git a/libraries/physics/src/PhysicsEngine.cpp b/libraries/physics/src/PhysicsEngine.cpp index 20f09f6adf..32708f6ead 100644 --- a/libraries/physics/src/PhysicsEngine.cpp +++ b/libraries/physics/src/PhysicsEngine.cpp @@ -844,7 +844,7 @@ struct AllContactsCallback : public btCollisionWorld::ContactResultCallback { AllContactsCallback(MotionStateType desiredObjectType, const ShapeInfo& shapeInfo, const Transform& transform) : desiredObjectType(desiredObjectType), collisionObject(), - intersectingObjects(), + contacts(), btCollisionWorld::ContactResultCallback() { const btCollisionShape* collisionShape = ObjectMotionState::getShapeManager()->getShape(shapeInfo); @@ -863,7 +863,7 @@ struct AllContactsCallback : public btCollisionWorld::ContactResultCallback { MotionStateType desiredObjectType; btCollisionObject collisionObject; - std::vector intersectingObjects; + std::vector contacts; bool needsCollision(btBroadphaseProxy* proxy) const override { return true; @@ -896,7 +896,7 @@ struct AllContactsCallback : public btCollisionWorld::ContactResultCallback { } // This is the correct object type. Add it to the list. - intersectingObjects.emplace_back(candidate->getObjectID(), bulletToGLM(penetrationPoint), bulletToGLM(otherPenetrationPoint)); + contacts.emplace_back(candidate->getObjectID(), bulletToGLM(penetrationPoint), bulletToGLM(otherPenetrationPoint)); return 0; } @@ -907,10 +907,10 @@ protected: } }; -std::vector PhysicsEngine::getCollidingInRegion(MotionStateType desiredObjectType, const ShapeInfo& regionShapeInfo, const Transform& regionTransform) const { +const std::vector PhysicsEngine::getCollidingInRegion(MotionStateType desiredObjectType, const ShapeInfo& regionShapeInfo, const Transform& regionTransform) const { auto contactCallback = AllContactsCallback(desiredObjectType, regionShapeInfo, regionTransform); _dynamicsWorld->contactTest(&contactCallback.collisionObject, contactCallback); - return contactCallback.intersectingObjects; + return contactCallback.contacts; } diff --git a/libraries/physics/src/PhysicsEngine.h b/libraries/physics/src/PhysicsEngine.h index c6dfba518f..91e4cd4578 100644 --- a/libraries/physics/src/PhysicsEngine.h +++ b/libraries/physics/src/PhysicsEngine.h @@ -43,22 +43,22 @@ public: void* _b; // ObjectMotionState pointer }; -struct EntityIntersection { - EntityIntersection() { } +struct ContactTestResult { + ContactTestResult() = delete; - EntityIntersection(const EntityIntersection& entityIntersection) : - id(entityIntersection.id), - testCollisionPoint(entityIntersection.testCollisionPoint), - foundCollisionPoint(entityIntersection.foundCollisionPoint) { + ContactTestResult(const ContactTestResult& contactTestResult) : + foundID(contactTestResult.foundID), + testCollisionPoint(contactTestResult.testCollisionPoint), + foundCollisionPoint(contactTestResult.foundCollisionPoint) { } - EntityIntersection(QUuid id, glm::vec3 testCollisionPoint, glm::vec3 otherCollisionPoint) : - id(id), + ContactTestResult(QUuid foundID, glm::vec3 testCollisionPoint, glm::vec3 otherCollisionPoint) : + foundID(foundID), testCollisionPoint(testCollisionPoint), foundCollisionPoint(otherCollisionPoint) { } - QUuid id; + QUuid foundID; // The deepest point of an intersection within the volume of the test shape, in world space. glm::vec3 testCollisionPoint; // The deepest point of an intersection within the volume of the found object, in world space. @@ -128,7 +128,7 @@ public: void setShowBulletConstraintLimits(bool value); // Function for getting colliding ObjectMotionStates in the world of specified type - std::vector getCollidingInRegion(MotionStateType desiredObjectType, const ShapeInfo& regionShapeInfo, const Transform& regionTransform) const; + const std::vector getCollidingInRegion(MotionStateType desiredObjectType, const ShapeInfo& regionShapeInfo, const Transform& regionTransform) const; private: QList removeDynamicsForBody(btRigidBody* body);