584{
587 uint32_t rv;
588
589
590 line2pts(
"LINESTRING(58.5112113206308 0, 58.511211320077201 0.00090193752520337797)", &A1, &A2);
591 line2pts(
"LINESTRING(58.511166525601702 0.00027058124084120699, 58.511166525562899 0.00036077498778824899)", &B1, &B2);
593 CU_ASSERT(rv == 0);
594
595
596 line2pts(
"LINESTRING(50 -10.999999999999998224, -10.0 50.0)", &A1, &A2);
597 line2pts(
"LINESTRING(-10.0 50.0, -10.272779983831613393 -16.937003313332997578)", &B1, &B2);
600
601
602 g.
lat = 0.74123572595649878103;
603 g.
lon = -2.1496353191142714145;
605 g.
lat = 0.74123631950116664058;
606 g.
lon = -2.1496353248304860273;
608 g.
lat = 0.73856343764436815924;
609 g.
lon = -2.1461493501950630325;
611 g.
lat = 0.70971354024834598651;
612 g.
lon = 2.1082194552519770703;
615 CU_ASSERT(rv == 0);
616
617
618 g.
lat = 0.73826546728290887156;
619 g.
lon = -2.14426380171833042;
621 g.
lat = 0.73826545883786642843;
622 g.
lon = -2.1442638997530165668;
624 g.
lat = 0.73775469118192538165;
625 g.
lon = -2.1436035534281718817;
627 g.
lat = 0.71021099548296817705;
628 g.
lon = 2.1065275171200439353;
632
633
634 line2pts(
"LINESTRING(-123.165031277506 42.4696787216231, -123.165031605021 42.4697127292275)", &A1, &A2);
636 CU_ASSERT(rv == 0);
637
638
639 line2pts(
"LINESTRING(-1.0 0.0, 1.0 0.0)", &A1, &A2);
640 line2pts(
"LINESTRING(0.0 -1.0, 0.0 1.0)", &B1, &B2);
643
644
645 line2pts(
"LINESTRING(-1.0 0.0, 1.0 0.0)", &A1, &A2);
646 line2pts(
"LINESTRING(0.0 -1.0, 0.0 -2.0)", &B1, &B2);
648 CU_ASSERT(rv == 0);
649
650
651 line2pts(
"LINESTRING(-1.0 0.0, 1.0 0.0)", &A1, &A2);
652 line2pts(
"LINESTRING(0.0 -1.0, 0.0 0.0)", &B1, &B2);
655
656
657 line2pts(
"LINESTRING(0.0 0.0, 1.0 0.0)", &A1, &A2);
658 line2pts(
"LINESTRING(0.0 -1.0, 0.0 0.0)", &B1, &B2);
661
662
663 line2pts(
"LINESTRING(-179.0 -1.0, 179.0 1.0)", &A1, &A2);
664 line2pts(
"LINESTRING(-179.0 1.0, 179.0 -1.0)", &B1, &B2);
667
668
669 line2pts(
"LINESTRING(-170.0 0.0, 170.0 0.0)", &A1, &A2);
670 line2pts(
"LINESTRING(180.0 -10.0, 180.0 10.0)", &B1, &B2);
673
674
675 line2pts(
"LINESTRING(-180.0 80.0, 0.0 80.0)", &A1, &A2);
676 line2pts(
"LINESTRING(90.0 80.0, -90.0 80.0)", &B1, &B2);
679
680
681 line2pts(
"LINESTRING(45.0 10.0, 50.0 20.0)", &A1, &A2);
682 line2pts(
"LINESTRING(45.0 10.0, 50.0 20.0)", &B1, &B2);
685
686
687 line2pts(
"LINESTRING(40.0 0.0, 70.0 0.0)", &A1, &A2);
688 line2pts(
"LINESTRING(60.0 0.0, 50.0 0.0)", &B1, &B2);
691
692
693 line2pts(
"LINESTRING(-180.0 80.0, 0.0 80.0)", &A1, &A2);
694 line2pts(
"LINESTRING(90.0 80.0, -90.0 90.0)", &B1, &B2);
697
698
699 line2pts(
"LINESTRING(-180.0 80.0, 0.0 90.0)", &A1, &A2);
700 line2pts(
"LINESTRING(90.0 80.0, -90.0 90.0)", &B1, &B2);
703
704
705
706
707
708 line2pts(
"LINESTRING(90.0 60.0, 90.0 -20.0)", &A1, &A2);
709 line2pts(
"LINESTRING(0.0 0.0, -90.04868865037885 -57.44011727050777)", &B1, &B2);
711 CU_ASSERT(rv == 0);
712
713 line2pts(
"LINESTRING(-5 0, 5 0)", &A1, &A2);
714 line2pts(
"LINESTRING(179 -5, 179 5)", &B1, &B2);
716 CU_ASSERT(rv == 0);
717
718 line2pts(
"LINESTRING(175 -85, 175 85)", &A1, &A2);
719 line2pts(
"LINESTRING(65 0, -105 0)", &B1, &B2);
721 CU_ASSERT(rv == 0);
722
723 line2pts(
"LINESTRING(175 -85, 175 85)", &A1, &A2);
724 line2pts(
"LINESTRING(45 0, -125 0)", &B1, &B2);
726 CU_ASSERT(rv == 0);
727
728}
static void line2pts(const char *wkt, POINT3D *A1, POINT3D *A2)
uint32_t edge_intersects(const POINT3D *A1, const POINT3D *A2, const POINT3D *B1, const POINT3D *B2)
Returns non-zero if edges A and B interact.
void geog2cart(const GEOGRAPHIC_POINT *g, POINT3D *p)
Convert spherical coordinates to cartesian coordinates on unit sphere.
#define PIR_A_TOUCH_RIGHT
#define PIR_B_TOUCH_RIGHT
Point in spherical coordinates on the world.