diff --git a/TODO.md b/TODO.md index 5ba3acd..9021437 100644 --- a/TODO.md +++ b/TODO.md @@ -1,4 +1,3 @@ -- Reverse engineer FSUIPC .NET onRunway Check to use my solution - Potentially revert to Header only File lib (NO LINKING) - Update OSXCross Docker image to SDK 11 - Implement ARM64 arch for Plugin diff --git a/file/include/simdata/runway.hpp b/file/include/simdata/runway.hpp index 984d601..921069b 100644 --- a/file/include/simdata/runway.hpp +++ b/file/include/simdata/runway.hpp @@ -71,6 +71,34 @@ namespace file : designator(designator), bounds(bounds), width(width), length(length), trueHeading(trueHeading){}; + inline bool containsPoint(geodata::point point) + { + bool flag = false; + double udegrees1 = this->bounds.topRight.latitude + 90; + double udegrees2 = this->bounds.bottomLeft.latitude + 90; + double udegrees3 = this->bounds.topLeft.latitude + 90; + double udegrees4 = this->bounds.bottomRight.latitude + 90; + double udegrees5 = this->bounds.topRight.longitude + 180; + double udegrees6 = this->bounds.bottomLeft.longitude + 180; + double udegrees7 = this->bounds.topLeft.longitude + 180; + double udegrees8 = this->bounds.bottomRight.longitude + 180; + double udegrees9 = point.longitude + 180; + double udegrees10 = point.latitude + 90; + if (udegrees9 > udegrees5 + (udegrees6 - udegrees5) / + (udegrees1 - udegrees2) * + (udegrees1 - udegrees10) && + udegrees9 < udegrees8 + (udegrees7 - udegrees8) / + (udegrees4 - udegrees3) * + (udegrees4 - udegrees10) && + udegrees10 > udegrees2 + (udegrees3 - udegrees2) / + (udegrees7 - udegrees6) * + (udegrees9 - udegrees6)) + flag = udegrees10 < udegrees1 + (udegrees4 - udegrees1) / + (udegrees8 - udegrees5) * + (udegrees9 - udegrees5); + return flag; + } + inline void toFile(std::ofstream &out) const { writeString(out, this->designator);