From 4a9e9bd4c960abb3617c63d8c75f5faadcb3d1f8 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 4 Nov 2023 17:41:15 +0200 Subject: [PATCH] using the new ray casting implementation --- activeGameState.cpp | 15 ++++----------- gameObjectFrameController.cpp | 7 +++---- mapEditorAppState.cpp | 16 +++++----------- projectile.cpp | 2 +- unit.cpp | 1 - vehicle.cpp | 6 ++---- 6 files changed, 15 insertions(+), 32 deletions(-) diff --git a/activeGameState.cpp b/activeGameState.cpp index b025cb6..a61b8fe 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include @@ -297,13 +297,10 @@ namespace battleship{ Vector3 camPos = cam->getPosition(); Vector3 endPos = screenToSpace(getCursorPos()); - vector results; Vector3 rayDir = (endPos - camPos).norm(); - Ray::retrieveCollisions(camPos, rayDir, Map::getSingleton()->getNodeParent(), results); + vector results = RayCaster::cast(camPos, rayDir, Map::getSingleton()->getNodeParent()); std::map unitData; - Ray::sortResults(results); - if(!results.empty()){ vector ancestors = results[0].mesh->getNode()->getAncestors(); Node *node = ancestors[ancestors.size() - 2]; @@ -325,9 +322,7 @@ namespace battleship{ Node *nodeParent = map->getNodeParent(); if(u->getType() == UnitType::UNDERWATER && nodeParent->getNumChildren() > 0){ - vector res; - Ray::retrieveCollisions(Vector3(pos.x, 100, pos.z), Vector3(0, -1, 0), nodeParent->getChild(0), res); - Ray::sortResults(res); + vector res = RayCaster::cast(Vector3(pos.x, 100, pos.z), Vector3(0, -1, 0), nodeParent->getChild(0)); Vector3 waterBodyPos = Vector3::VEC_ZERO; Vector3 cellSize = map->getCellSize(); @@ -442,9 +437,7 @@ namespace battleship{ depth += 0.05; Vector3 startPos = Root::getSingleton()->getCamera()->getPosition(); - vector results; - Ray::retrieveCollisions(startPos, (screenToSpace(getCursorPos()) - startPos).norm(), Map::getSingleton()->getNodeParent()->getChild(0), results); - Ray::sortResults(results); + vector results = RayCaster::cast(startPos, (screenToSpace(getCursorPos()) - startPos).norm(), Map::getSingleton()->getNodeParent()->getChild(0)); if(!results.empty()) ufCtr->setPaintSelectRowStart(results[0].pos); diff --git a/gameObjectFrameController.cpp b/gameObjectFrameController.cpp index f86f2e9..2ca0fab 100644 --- a/gameObjectFrameController.cpp +++ b/gameObjectFrameController.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include @@ -97,9 +97,8 @@ namespace battleship{ frame.update(); Vector3 startPos = Root::getSingleton()->getCamera()->getPosition(); - vector results; - Ray::retrieveCollisions(startPos, (screenToSpace(getCursorPos()) - startPos).norm(), Map::getSingleton()->getNodeParent()->getChild(0), results); - Ray::sortResults(results); + vector results = RayCaster::cast(startPos, (screenToSpace(getCursorPos()) - startPos).norm(), Map::getSingleton()->getNodeParent()->getChild(0)); + if(results.empty()) return; Vector3 newPos, rowEnd; diff --git a/mapEditorAppState.cpp b/mapEditorAppState.cpp index 23a2ebf..89d9976 100644 --- a/mapEditorAppState.cpp +++ b/mapEditorAppState.cpp @@ -10,7 +10,7 @@ #include "mesh.h" #include "util.h" -#include +#include #include #include #include @@ -91,10 +91,8 @@ namespace battleship{ Vector3 startPos = cam->getPosition(); Vector3 endPos = screenToSpace(getCursorPos()); - vector results; Map *map = Map::getSingleton(); - Ray::retrieveCollisions(startPos, (endPos - startPos).norm(), map->getNodeParent(), results); - Ray::sortResults(results); + vector results = RayCaster::cast(startPos, (endPos - startPos).norm(), map->getNodeParent()); if(selectedTerrainNode) toggleSelection(selectedTerrainNode, false); @@ -308,13 +306,11 @@ namespace battleship{ for(int i = 0; i < numVertCells; i++) for(int j = 0; j < numHorCells; j++){ - vector res; Vector3 rayPos = startPos + Vector3(cellSize.x * j, 100, cellSize.z * i); - Ray::retrieveCollisions(rayPos, -Vector3::VEC_J, terrainNode->getChild(0), res); - Ray::sortResults(res); + vector res = RayCaster::cast(rayPos, -Vector3::VEC_J, terrainNode->getChild(0)); if(res.empty()){ - Ray::CollisionResult r; + RayCaster::CollisionResult r; r.pos = Vector3(rayPos.x, 0, rayPos.z); res.push_back(r); } @@ -648,9 +644,7 @@ namespace battleship{ Vector2 cursorPos = getCursorPos(); Vector3 endPos = screenToSpace(cursorPos); - vector results; - Ray::retrieveCollisions(startPos, (endPos - startPos).norm(), Root::getSingleton()->getRootNode(), results); - Ray::sortResults(results); + vector results = RayCaster::cast(startPos, (endPos - startPos).norm(), Root::getSingleton()->getRootNode()); if(cursorPos.y < GameManager::getSingleton()->getHeight() - mapEditor->getGuiThreshold()){ bool push = !results.empty(); diff --git a/projectile.cpp b/projectile.cpp index 6a55adf..78be807 100755 --- a/projectile.cpp +++ b/projectile.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include diff --git a/unit.cpp b/unit.cpp index dc69a12..dd1697f 100755 --- a/unit.cpp +++ b/unit.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include diff --git a/vehicle.cpp b/vehicle.cpp index 22d7b47..49f546c 100644 --- a/vehicle.cpp +++ b/vehicle.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include @@ -149,9 +149,7 @@ namespace battleship{ /* Map *map = Map::getSingleton(); TerrainObject terr = map->getTerrainObject(0); - vector res; - Ray::retrieveCollisions(Vector3(pos.x, terr.size.y, pos.z), Vector3(0, -1, 0), terr.node, res); - Ray::sortResults(res); + vector res = RayCaster::cast(Vector3(pos.x, terr.size.y, pos.z), Vector3(0, -1, 0), terr.node); if(!res.empty()){ placeAt(res[0].pos);