diff --git a/Observer.cpp b/Observer.cpp index e95cb4f..72e1a49 100644 --- a/Observer.cpp +++ b/Observer.cpp @@ -75,9 +75,7 @@ CoordTopographic Observer::GetLookAngle(const Eci &eci) { az += 2.0 * Globals::PI(); double el = asin(top_z / range.GetW()); - double rate = (range.GetX() * range_rate.GetX() + - range.GetY() * range_rate.GetY() + - range.GetZ() * range_rate.GetZ()) / range.GetW(); + double rate = range.Dot(range_rate) / range.GetW(); /* * azimuth in radians diff --git a/Vector.cpp b/Vector.cpp index e256d92..72bc56d 100644 --- a/Vector.cpp +++ b/Vector.cpp @@ -14,3 +14,10 @@ Vector Vector::Subtract(const Vector& vec) const { z_ - vec.z_, 0.0); } + +double Vector::Dot(const Vector& vec) const { + + return (x_ * vec.x_) + + (y_ * vec.y_) + + (z_ * vec.z_); +} diff --git a/Vector.h b/Vector.h index d59f062..623aa32 100644 --- a/Vector.h +++ b/Vector.h @@ -54,7 +54,8 @@ public: } double GetMagnitude() const; - Vector Subtract(const Vector& v) const; + Vector Subtract(const Vector& vec) const; + double Dot(const Vector& vec) const; protected: double x_;