@@ -7,31 +7,31 @@ SET extra_float_digits = 0;
77
88\set poly ' spoly \' {(0.1,0),(0.2,0),(0.2,0.1),(0.3,0.1),(0.3,-0.1),(0.4,-0.1),(0.5,0.1),(0.4,0.2),(0.1,0.2)}\' '
99SELECT spoint ' (0.15,0.10)' @ :poly; -- point inside polygon
10- SELECT spoint ' (0.20,0.00)' @ :poly; -- point contained polygon
11- SELECT spoint ' (0.10,0.10)' @ :poly; -- point contained polygon
12- SELECT spoint ' (0.25,0.50)' @ :poly; -- point outside polygon
13- SELECT spoint ' (0.25,0.00)' @ :poly; -- point outside polygon
10+ SELECT spoint ' (0.20,0.00)' @ :poly; -- point contained polygon
11+ SELECT spoint ' (0.10,0.10)' @ :poly; -- point contained polygon
12+ SELECT spoint ' (0.25,0.50)' @ :poly; -- point outside polygon
13+ SELECT spoint ' (0.25,0.00)' @ :poly; -- point outside polygon
1414SELECT scircle ' <(0.15,0.10),0.03>' @ :poly; -- circle inside polygon
15- SELECT scircle ' <(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
16- SELECT scircle ' <(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
15+ SELECT scircle ' <(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
16+ SELECT scircle ' <(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
1717SELECT scircle ' <(0.25,0.00),0.05>' @ :poly; -- circle overlaps polygon
1818SELECT scircle ' <(0.25,0.00),0.10>' @ :poly; -- circle overlaps polygon
1919SELECT scircle ' <(0.15,0.10),0.03>' && :poly; -- circle inside polygon
20- SELECT scircle ' <(0.20,0.00),0.00>' && :poly; -- circle contained polygon
21- SELECT scircle ' <(0.20,0.30),0.05>' && :poly; -- circle outside polygon
20+ SELECT scircle ' <(0.20,0.00),0.00>' && :poly; -- circle contained polygon
21+ SELECT scircle ' <(0.20,0.30),0.05>' && :poly; -- circle outside polygon
2222SELECT scircle ' <(0.25,0.00),0.05>' && :poly; -- circle overlaps polygon
2323SELECT scircle ' <(0.25,0.00),0.10>' && :poly; -- circle overlaps polygon
24- SELECT sline ( spoint ' (0.00, 0.00)' , spoint ' (0.10,0.20)' ) @ :poly; -- line touches polygon
25- SELECT sline ( spoint ' (0.00, 0.10)' , spoint ' (0.10,0.10)' ) @ :poly; -- line touches polygon
24+ SELECT sline ( spoint ' (0.00, 0.00)' , spoint ' (0.10,0.20)' ) @ :poly; -- line touches polygon
25+ SELECT sline ( spoint ' (0.00, 0.10)' , spoint ' (0.10,0.10)' ) @ :poly; -- line touches polygon
2626SELECT sline ( spoint ' (0.50, 0.00)' , spoint ' (0.50,0.20)' ) @ :poly; -- line touches polygon
27- SELECT sline ( spoint ' (0.10, 0.20)' , spoint ' (0.20,0.00)' ) @ :poly; -- line touches and inside polygon
27+ SELECT sline ( spoint ' (0.10, 0.20)' , spoint ' (0.20,0.00)' ) @ :poly; -- line touches and inside polygon
2828SELECT sline ( spoint ' (0.45,-0.20)' , spoint ' (0.45,0.20)' ) @ :poly; -- line overlaps polygon
2929SELECT sline ( spoint ' (0.45, 0.10)' , spoint ' (0.45,0.20)' ) @ :poly; -- line overlaps polygon
3030SELECT sline ( spoint ' (0.24, 0.17)' , spoint ' (0.25,0.14)' ) @ :poly; -- line inside polygon
31- SELECT sline ( spoint ' (0.00, 0.00)' , spoint ' (0.10,0.20)' ) && :poly; -- line touches polygon
32- SELECT sline ( spoint ' (0.00, 0.10)' , spoint ' (0.10,0.10)' ) && :poly; -- line touches polygon
31+ SELECT sline ( spoint ' (0.00, 0.00)' , spoint ' (0.10,0.20)' ) && :poly; -- line touches polygon
32+ SELECT sline ( spoint ' (0.00, 0.10)' , spoint ' (0.10,0.10)' ) && :poly; -- line touches polygon
3333SELECT sline ( spoint ' (0.50, 0.00)' , spoint ' (0.50,0.20)' ) && :poly; -- line touches polygon
34- SELECT sline ( spoint ' (0.10, 0.20)' , spoint ' (0.20,0.00)' ) && :poly; -- line touches and inside polygon
34+ SELECT sline ( spoint ' (0.10, 0.20)' , spoint ' (0.20,0.00)' ) && :poly; -- line touches and inside polygon
3535SELECT sline ( spoint ' (0.45,-0.20)' , spoint ' (0.45,0.20)' ) && :poly; -- line overlaps polygon
3636SELECT sline ( spoint ' (0.45, 0.10)' , spoint ' (0.45,0.20)' ) && :poly; -- line overlaps polygon
3737SELECT sline ( spoint ' (0.24, 0.17)' , spoint ' (0.25,0.14)' ) && :poly; -- line inside polygon
@@ -86,7 +86,21 @@ SELECT spoly_deg(ARRAY[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]);
8686
8787SELECT spoly_deg(ARRAY[10 .0 , 0 .0 , 10 .0 , 1 .0 , 15 .0 , 0 .0 ]);
8888
89- -- incorrect input -----
89+ -- - Constructors
90+
91+ SELECT spoly(NULL ::spoint[]);
92+
93+ SELECT spoly(ARRAY[]::spoint[]);
94+
95+ SELECT spoly(ARRAY[spoint_deg(0 , 0 )]);
96+
97+ SELECT spoly(ARRAY[spoint_deg(0 , 0 ), spoint_deg(10 , 0 )]);
98+
99+ SELECT spoly(ARRAY[spoint_deg(0 , 0 ), spoint_deg(10 , 0 ), spoint_deg(10 ,10 )]);
100+
101+ SELECT spoly(ARRAY[spoint_deg(0 , 0 ), spoint_deg(10 , 0 ), spoint_deg(10 ,10 ), spoint_deg(0 , 10 )]);
102+
103+ -- - incorrect input -----
90104
91105SELECT spoly ' {(10d,0d),(10d,1d)}' ;
92106
@@ -457,7 +471,7 @@ SELECT spoly '{(0d,-88d),(90d,-88d),(180d,-88d),(270d,-88d)}' @ spoly '{(0d,89d)
457471
458472-- - spoly ~ spoly
459473
460- -- - should be true
474+ -- - should be true
461475
462476SELECT spoly ' {(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ~ spoly ' {(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' ;
463477
@@ -485,7 +499,7 @@ SELECT spoly '{(0d,89d),(90d,89d),(180d,89d),(270d,89d)}' ~ spoly '{(0d,-88d),(9
485499
486500-- - spoly && spoly
487501
488- -- - should be true
502+ -- - should be true
489503
490504SELECT spoly ' {(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' && spoly ' {(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ;
491505
@@ -536,7 +550,7 @@ SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' && spoly '{(179d,-1d),(179d
536550--
537551-- ellipse and polygon
538552--
539-
553+
540554-- negators , commutator @,&&
541555
542556SELECT spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse ' <{10d,5d},(280d,-20d),90d>' ;
@@ -565,14 +579,14 @@ SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& spoly '{(280d, -9d),(280d,-12
565579SELECT sellipse ' <{10d,5d},(280d,-20d),90d>' !&& spoly ' {(280d,-11d),(280d,-12d),(279d, -12d)}' ;
566580
567581-- ellipse is point
568- SELECT spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse ' <{0d,0d},(280d,-20d),90d>' ;
569- SELECT spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse ' <{0d,0d},(280d,-20d),90d>' ;
570- SELECT spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse ' <{0d,0d},(280d,-20d),90d>' ;
571- SELECT spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse ' <{0d,0d},(280d,-20d),90d>' ;
572- SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' @ spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' ;
573- SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' @ spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' ;
574- SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' && spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' ;
575- SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' && spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' ;
582+ SELECT spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse ' <{0d,0d},(280d,-20d),90d>' ;
583+ SELECT spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse ' <{0d,0d},(280d,-20d),90d>' ;
584+ SELECT spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse ' <{0d,0d},(280d,-20d),90d>' ;
585+ SELECT spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse ' <{0d,0d},(280d,-20d),90d>' ;
586+ SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' @ spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' ;
587+ SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' @ spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' ;
588+ SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' && spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' ;
589+ SELECT sellipse ' <{0d,0d},(280d,-20d),90d>' && spoly ' {(280d,-11d),(280d,-20d),(279d, -12d)}' ;
576590
577591-- ellipse is circle
578592SELECT spoly ' {(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse ' <{5d,5d},(280d,-20d),90d>' ;
0 commit comments