diff options
Diffstat (limited to 'editor/editor.cpp')
| -rw-r--r-- | editor/editor.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/editor/editor.cpp b/editor/editor.cpp index db82fc0..86fae96 100644 --- a/editor/editor.cpp +++ b/editor/editor.cpp @@ -198,17 +198,20 @@ void PkeEditor_Tick(double delta) { glm::vec3 fromCoords{unproject(glm::vec3(xMousePos, yMousePos, -1.f))}; glm::vec3 toCoords{unproject(glm::vec3(xMousePos, yMousePos, 1.f))}; - btVector3 rayOrigin{}; - btVector3 rayDestination{}; - GlmToBullet(fromCoords, rayOrigin); - GlmToBullet(toCoords, rayDestination); - - btCollisionWorld::ClosestRayResultCallback rayResult{rayOrigin, rayDestination}; - rayResult.m_flags |= btTriangleRaycastCallback::kF_FilterBackfaces; + if (fromCoords.x == fromCoords.x && toCoords.x == toCoords.x) { + btVector3 rayOrigin{}; + btVector3 rayDestination{}; + GlmToBullet(fromCoords, rayOrigin); + GlmToBullet(toCoords, rayDestination); + + btCollisionWorld::ClosestRayResultCallback rayResult{rayOrigin, rayDestination}; + rayResult.m_flags |= btTriangleRaycastCallback::kF_FilterBackfaces; + + BtDynamicsWorld->rayTest(rayOrigin, rayDestination, rayResult); + if (rayResult.hasHit()) { + hoveredEntity = reinterpret_cast<CompInstance *>(rayResult.m_collisionObject->getUserPointer()); + } - BtDynamicsWorld->rayTest(rayOrigin, rayDestination, rayResult); - if (rayResult.hasHit()) { - hoveredEntity = reinterpret_cast<CompInstance *>(rayResult.m_collisionObject->getUserPointer()); } } |
