@@ -12,25 +12,25 @@ SELECT spoint '(0.15,0.10)' @ :poly; -- point inside polygon
12
12
t
13
13
(1 row)
14
14
15
- SELECT spoint '(0.20,0.00)' @ :poly; -- point contained polygon
15
+ SELECT spoint '(0.20,0.00)' @ :poly; -- point contained polygon
16
16
?column?
17
17
----------
18
18
t
19
19
(1 row)
20
20
21
- SELECT spoint '(0.10,0.10)' @ :poly; -- point contained polygon
21
+ SELECT spoint '(0.10,0.10)' @ :poly; -- point contained polygon
22
22
?column?
23
23
----------
24
24
t
25
25
(1 row)
26
26
27
- SELECT spoint '(0.25,0.50)' @ :poly; -- point outside polygon
27
+ SELECT spoint '(0.25,0.50)' @ :poly; -- point outside polygon
28
28
?column?
29
29
----------
30
30
f
31
31
(1 row)
32
32
33
- SELECT spoint '(0.25,0.00)' @ :poly; -- point outside polygon
33
+ SELECT spoint '(0.25,0.00)' @ :poly; -- point outside polygon
34
34
?column?
35
35
----------
36
36
f
@@ -42,13 +42,13 @@ SELECT scircle '<(0.15,0.10),0.03>' @ :poly; -- circle inside polygon
42
42
t
43
43
(1 row)
44
44
45
- SELECT scircle '<(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
45
+ SELECT scircle '<(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
46
46
?column?
47
47
----------
48
48
t
49
49
(1 row)
50
50
51
- SELECT scircle '<(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
51
+ SELECT scircle '<(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
52
52
?column?
53
53
----------
54
54
f
@@ -72,13 +72,13 @@ SELECT scircle '<(0.15,0.10),0.03>' && :poly; -- circle inside polygon
72
72
t
73
73
(1 row)
74
74
75
- SELECT scircle '<(0.20,0.00),0.00>' && :poly; -- circle contained polygon
75
+ SELECT scircle '<(0.20,0.00),0.00>' && :poly; -- circle contained polygon
76
76
?column?
77
77
----------
78
78
t
79
79
(1 row)
80
80
81
- SELECT scircle '<(0.20,0.30),0.05>' && :poly; -- circle outside polygon
81
+ SELECT scircle '<(0.20,0.30),0.05>' && :poly; -- circle outside polygon
82
82
?column?
83
83
----------
84
84
f
@@ -96,13 +96,13 @@ SELECT scircle '<(0.25,0.00),0.10>' && :poly; -- circle overlaps polyg
96
96
t
97
97
(1 row)
98
98
99
- SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @ :poly; -- line touches polygon
99
+ SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @ :poly; -- line touches polygon
100
100
?column?
101
101
----------
102
102
f
103
103
(1 row)
104
104
105
- SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @ :poly; -- line touches polygon
105
+ SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @ :poly; -- line touches polygon
106
106
?column?
107
107
----------
108
108
f
@@ -114,7 +114,7 @@ SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) @ :poly; -- line
114
114
f
115
115
(1 row)
116
116
117
- SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @ :poly; -- line touches and inside polygon
117
+ SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @ :poly; -- line touches and inside polygon
118
118
?column?
119
119
----------
120
120
t
@@ -138,13 +138,13 @@ SELECT sline ( spoint '(0.24, 0.17)', spoint '(0.25,0.14)' ) @ :poly; -- line
138
138
t
139
139
(1 row)
140
140
141
- SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly; -- line touches polygon
141
+ SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly; -- line touches polygon
142
142
?column?
143
143
----------
144
144
t
145
145
(1 row)
146
146
147
- SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly; -- line touches polygon
147
+ SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly; -- line touches polygon
148
148
?column?
149
149
----------
150
150
t
@@ -156,7 +156,7 @@ SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) && :poly; -- line
156
156
t
157
157
(1 row)
158
158
159
- SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly; -- line touches and inside polygon
159
+ SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly; -- line touches and inside polygon
160
160
?column?
161
161
----------
162
162
t
@@ -342,7 +342,32 @@ SELECT spoly_deg(ARRAY[10.0, 0.0, 10.0, 1.0, 15.0, 0.0]);
342
342
{(10d , 0d),(10d , 1d),(15d , 0d)}
343
343
(1 row)
344
344
345
- -- incorrect input -----
345
+ --- Constructors
346
+ SELECT spoly(NULL::spoint[]);
347
+ spoly
348
+ -------
349
+
350
+ (1 row)
351
+
352
+ SELECT spoly(ARRAY[]::spoint[]);
353
+ ERROR: spherepoly_from_point_array: invalid number of arguments (must be >= 3)
354
+ SELECT spoly(ARRAY[spoint_deg(0, 0)]);
355
+ ERROR: spherepoly_from_point_array: invalid number of arguments (must be >= 3)
356
+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0)]);
357
+ ERROR: spherepoly_from_point_array: invalid number of arguments (must be >= 3)
358
+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10, 10)]);
359
+ spoly
360
+ ------------------------------------
361
+ {(0d , 0d),(10d , 0d),(10d , 10d)}
362
+ (1 row)
363
+
364
+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10, 10), spoint_deg(0, 10)]);
365
+ spoly
366
+ -----------------------------------------------
367
+ {(0d , 0d),(10d , 0d),(10d , 10d),(0d , 10d)}
368
+ (1 row)
369
+
370
+ --- incorrect input -----
346
371
SELECT spoly '{(10d,0d),(10d,1d)}';
347
372
ERROR: spherepoly_in: more than two points needed
348
373
LINE 1: SELECT spoly '{(10d,0d),(10d,1d)}';
@@ -1211,7 +1236,7 @@ SELECT spoly '{(0d,-88d),(90d,-88d),(180d,-88d),(270d,-88d)}' @ spoly '{(0d,89d)
1211
1236
(1 row)
1212
1237
1213
1238
--- spoly ~ spoly
1214
- --- should be true
1239
+ --- should be true
1215
1240
SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ~ spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}';
1216
1241
?column?
1217
1242
----------
@@ -1280,7 +1305,7 @@ SELECT spoly '{(0d,89d),(90d,89d),(180d,89d),(270d,89d)}' ~ spoly '{(0d,-88d),(9
1280
1305
(1 row)
1281
1306
1282
1307
--- spoly && spoly
1283
- --- should be true
1308
+ --- should be true
1284
1309
SELECT spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' && spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}';
1285
1310
?column?
1286
1311
----------
@@ -1417,7 +1442,6 @@ SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' && spoly '{(179d,-1d),(179d
1417
1442
--
1418
1443
-- ellipse and polygon
1419
1444
--
1420
-
1421
1445
-- negators , commutator @,&&
1422
1446
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{10d,5d},(280d,-20d),90d>';
1423
1447
?column?
@@ -1564,49 +1588,49 @@ SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& spoly '{(280d,-11d),(280d,-12
1564
1588
(1 row)
1565
1589
1566
1590
-- ellipse is point
1567
- SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1591
+ SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1568
1592
?column?
1569
1593
----------
1570
1594
f
1571
1595
(1 row)
1572
1596
1573
- SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1597
+ SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1574
1598
?column?
1575
1599
----------
1576
1600
f
1577
1601
(1 row)
1578
1602
1579
- SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1603
+ SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1580
1604
?column?
1581
1605
----------
1582
1606
f
1583
1607
(1 row)
1584
1608
1585
- SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1609
+ SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1586
1610
?column?
1587
1611
----------
1588
1612
t
1589
1613
(1 row)
1590
1614
1591
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1615
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1592
1616
?column?
1593
1617
----------
1594
1618
f
1595
1619
(1 row)
1596
1620
1597
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1621
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1598
1622
?column?
1599
1623
----------
1600
1624
t
1601
1625
(1 row)
1602
1626
1603
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1627
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1604
1628
?column?
1605
1629
----------
1606
1630
f
1607
1631
(1 row)
1608
1632
1609
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1633
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1610
1634
?column?
1611
1635
----------
1612
1636
t
0 commit comments