@@ -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
@@ -330,7 +330,32 @@ SELECT spoly_deg(ARRAY[10.0, 0.0, 10.0, 1.0, 15.0, 0.0]);
330
330
{(10d , 0d),(10d , 1d),(15d , 0d)}
331
331
(1 row)
332
332
333
- -- incorrect input -----
333
+ --- Constructors
334
+ SELECT spoly(NULL::spoint[]);
335
+ spoly
336
+ -------
337
+
338
+ (1 row)
339
+
340
+ SELECT spoly(ARRAY[]::spoint[]);
341
+ ERROR: spoly_deg: invalid number of arguments (must be >= 3)
342
+ SELECT spoly(ARRAY[spoint_deg(0, 0)]);
343
+ ERROR: spoly_deg: invalid number of arguments (must be >= 3)
344
+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0)]);
345
+ ERROR: spoly_deg: invalid number of arguments (must be >= 3)
346
+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10,10)]);
347
+ spoly
348
+ ------------------------------------
349
+ {(0d , 0d),(10d , 0d),(10d , 10d)}
350
+ (1 row)
351
+
352
+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10,10), spoint_deg(0, 10)]);
353
+ spoly
354
+ -----------------------------------------------
355
+ {(0d , 0d),(10d , 0d),(10d , 10d),(0d , 10d)}
356
+ (1 row)
357
+
358
+ --- incorrect input -----
334
359
SELECT spoly '{(10d,0d),(10d,1d)}';
335
360
ERROR: spherepoly_in: more than two points needed
336
361
LINE 1: SELECT spoly '{(10d,0d),(10d,1d)}';
@@ -1185,7 +1210,7 @@ SELECT spoly '{(0d,-88d),(90d,-88d),(180d,-88d),(270d,-88d)}' @ spoly '{(0d,89d)
1185
1210
(1 row)
1186
1211
1187
1212
--- spoly ~ spoly
1188
- --- should be true
1213
+ --- should be true
1189
1214
SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ~ spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}';
1190
1215
?column?
1191
1216
----------
@@ -1254,7 +1279,7 @@ SELECT spoly '{(0d,89d),(90d,89d),(180d,89d),(270d,89d)}' ~ spoly '{(0d,-88d),(9
1254
1279
(1 row)
1255
1280
1256
1281
--- spoly && spoly
1257
- --- should be true
1282
+ --- should be true
1258
1283
SELECT spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' && spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}';
1259
1284
?column?
1260
1285
----------
@@ -1391,7 +1416,6 @@ SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' && spoly '{(179d,-1d),(179d
1391
1416
--
1392
1417
-- ellipse and polygon
1393
1418
--
1394
-
1395
1419
-- negators , commutator @,&&
1396
1420
SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{10d,5d},(280d,-20d),90d>';
1397
1421
?column?
@@ -1538,49 +1562,49 @@ SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& spoly '{(280d,-11d),(280d,-12
1538
1562
(1 row)
1539
1563
1540
1564
-- ellipse is point
1541
- SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1565
+ SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1542
1566
?column?
1543
1567
----------
1544
1568
f
1545
1569
(1 row)
1546
1570
1547
- SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1571
+ SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1548
1572
?column?
1549
1573
----------
1550
1574
f
1551
1575
(1 row)
1552
1576
1553
- SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1577
+ SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1554
1578
?column?
1555
1579
----------
1556
1580
f
1557
1581
(1 row)
1558
1582
1559
- SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1583
+ SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1560
1584
?column?
1561
1585
----------
1562
1586
t
1563
1587
(1 row)
1564
1588
1565
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1589
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1566
1590
?column?
1567
1591
----------
1568
1592
f
1569
1593
(1 row)
1570
1594
1571
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1595
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1572
1596
?column?
1573
1597
----------
1574
1598
t
1575
1599
(1 row)
1576
1600
1577
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1601
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1578
1602
?column?
1579
1603
----------
1580
1604
f
1581
1605
(1 row)
1582
1606
1583
- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1607
+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1584
1608
?column?
1585
1609
----------
1586
1610
t
0 commit comments