| 35 | #include <geode/tests/common.hpp> |
| 36 | |
| 37 | void test_point_side_to_segment() |
| 38 | { |
| 39 | const geode::Point2D a{ { 0.0, 0.0 } }; |
| 40 | const geode::Point2D b{ { 1.0, 0.0 } }; |
| 41 | const geode::Segment2D segment2D{ a, b }; |
| 42 | |
| 43 | const auto side_a = geode::point_side_to_segment( a, segment2D ); |
| 44 | geode::OpenGeodeGeometryException::test( side_a == geode::SIDE::zero, |
| 45 | "Wrong result for point_side_to_segment with query point " |
| 46 | "a" ); |
| 47 | |
| 48 | const auto side_b = geode::point_side_to_segment( b, segment2D ); |
| 49 | geode::OpenGeodeGeometryException::test( side_b == geode::SIDE::zero, |
| 50 | "Wrong result for point_side_to_segment with query point " |
| 51 | "b" ); |
| 52 | |
| 53 | const geode::Point2D q1{ { 0.5, 0 } }; |
| 54 | const auto side_q1 = geode::point_side_to_segment( q1, segment2D ); |
| 55 | geode::OpenGeodeGeometryException::test( side_q1 == geode::SIDE::zero, |
| 56 | "Wrong result for point_side_to_segment with query point " |
| 57 | "q1" ); |
| 58 | |
| 59 | const geode::Point2D q2{ { 10.0, 0 } }; |
| 60 | const auto side_q2 = geode::point_side_to_segment( q2, segment2D ); |
| 61 | geode::OpenGeodeGeometryException::test( side_q2 == geode::SIDE::zero, |
| 62 | "Wrong result for point_side_to_segment with query point " |
| 63 | "q2" ); |
| 64 | |
| 65 | const geode::Point2D q3{ { 0.3, 2.0 } }; |
| 66 | const auto side_q3 = geode::point_side_to_segment( q3, segment2D ); |
| 67 | geode::OpenGeodeGeometryException::test( side_q3 == geode::SIDE::positive, |
| 68 | "Wrong result for point_side_to_segment with query point " |
| 69 | "q3" ); |
| 70 | |
| 71 | const geode::Point2D q4{ { 12.0, -6.0 } }; |
| 72 | const auto side_q4 = geode::point_side_to_segment( q4, segment2D ); |
| 73 | geode::OpenGeodeGeometryException::test( side_q4 == geode::SIDE::negative, |
| 74 | "Wrong result for point_side_to_segment with query point " |
| 75 | "q4" ); |
| 76 | |
| 77 | const geode::Point2D q5{ { 0.0, -1e-10 } }; |
| 78 | const auto side_q5 = geode::point_side_to_segment( q5, segment2D ); |
| 79 | geode::OpenGeodeGeometryException::test( side_q5 == geode::SIDE::negative, |
| 80 | "Wrong result for point_side_to_segment with query point " |
| 81 | "q5" ); |
| 82 | } |
| 83 | |
| 84 | void test_point_side_to_plane() |
| 85 | { |
no test coverage detected