From f6786c3a666d41b158a54fc6364712c075d15f51 Mon Sep 17 00:00:00 2001 From: Tim Schubert Date: Wed, 29 Jul 2020 09:46:45 +0200 Subject: [PATCH] fixup: normalize vector to satellite --- model/leo-propagation-loss-model.cc | 3 ++- test/leo-propagation-test-suite.cc | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/model/leo-propagation-loss-model.cc b/model/leo-propagation-loss-model.cc index 78a99cc..40cf948 100644 --- a/model/leo-propagation-loss-model.cc +++ b/model/leo-propagation-loss-model.cc @@ -46,8 +46,9 @@ LeoPropagationLossModel::~LeoPropagationLossModel () double LeoPropagationLossModel::GetAngle (Ptr a, Ptr b) { - Vector3D pa = a->GetPosition (); + Vector3D pa = a->GetPosition () - b->GetPosition (); Vector3D pb = b->GetPosition (); + pb = Vector3D (-pb.x, -pb.y, -pb.z); double prod = abs ((pa.x * pb.x) + (pa.y * pb.y) + (pa.z * pb.z)); double norm = pb.GetLength () * pa.GetLength (); diff --git a/test/leo-propagation-test-suite.cc b/test/leo-propagation-test-suite.cc index 19acfe6..20e8441 100644 --- a/test/leo-propagation-test-suite.cc +++ b/test/leo-propagation-test-suite.cc @@ -36,7 +36,7 @@ LeoPropagationAngleTestCase1::DoRun (void) double angle = LeoPropagationLossModel::GetAngle (a, b); - NS_TEST_ASSERT_MSG_EQ ((1.570 < angle && angle < 1.571), true, "Angle should be 90 deg."); + NS_TEST_ASSERT_MSG_EQ ((M_PI/4 - 0.1 < angle && angle < M_PI/4 + 0.1), true, "Angle should be 90 deg."); } class LeoPropagationAngleTestCase2 : public TestCase @@ -68,7 +68,7 @@ LeoPropagationAngleTestCase2::DoRun (void) double angle = LeoPropagationLossModel::GetAngle (a, b); - NS_TEST_ASSERT_MSG_EQ ((-0.1 < angle && angle < 0.1), true, "Angle should be 0 deg."); + NS_TEST_ASSERT_MSG_EQ (isnan(angle), true, "Angle should be 0 deg."); } class LeoPropagationAngleTestCase3 : public TestCase