#include "Entities/Movement.hpp" #include "SimCore/Position.hpp" #include "SimCore/SimCore.hpp" #include #include #include #define CATCH_CONFIG_MAIN #include #include struct KinVec{ double x,y,z; } struct MovementVec{ double dSpd,dClb,dCrs; } KinVec Generate_Kin_Vect(MovementVec Mov_Dat, LLA_Rad LLA_rCoord) { KinVec Result; //Transform Mov_Dat to topocentric vector UVW UVW_Coord; UVW_Coord.dU = Mov_Dat.dSpd * cos(Mov_Dat.dClb) * sin(Mov_Dat.dCrs); UVW_Coord.dV = Mov_Dat.dSpd * cos(Mov_Dat.dClb) * cos(Mov_Dat.dCrs); UVW_Coord.dW = Mov_Dat.dSpd * sin(Mov_Dat.dClb); //Transform topocentric vector to geocentric vector Result.x = -UVW_Coord.dU * sin(LLA_rCoord.dLon) - UVW_Coord.dV * sin(LLA_rCoord.dLat) * cos(LLA_rCoord.dLon) + UVW_Coord.dW * cos(LLA_rCoord.dLat) * cos(LLA_rCoord.dLon); Result.y = UVW_Coord.dU * cos(LLA_rCoord.dLon) - UVW_Coord.dV * sin(LLA_rCoord.dLat) * sin(LLA_rCoord.dLon) + UVW_Coord.dW * cos(LLA_rCoord.dLat) * sin(LLA_rCoord.dLon); Result.z = UVW_Coord.dV * cos(LLA_rCoord.dLat) + UVW_Coord.dW * sin(LLA_rCoord.dLat); return Result; }; SCENARIO("Testing the SimCore Sensor") { GIVEN("different Attributes for a Movement ") { SimCore::Position pos1; WHEN("constructing Track Object with data") { pos1.setGeodesicPos(55, 6, 0); LOG_S(INFO)<<"LAT: "<