Commit cba8a77
committed
Improve Polygon clipping.
1. We no longer perform an equality check on GeoJSON polygon endpoints,
since we know that the first and last points should be equal.
2. However, there are special cases where a polygon just touches the
clip edge, generating two coincident intersection points. Here we avoid
generating a coincident point, and continue as normal.
3. Another special case is where we have coincident intersection points
e.g. due to a self-intersecting polygon. Here we continue calculating
the winding number as if this is a closed polygon (so we know whether to
insert a polygon around the whole clip edge).1 parent 28fb58b commit cba8a77
5 files changed
Lines changed: 177 additions & 133 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5546 | 5546 | | |
5547 | 5547 | | |
5548 | 5548 | | |
5549 | | - | |
5550 | | - | |
| 5549 | + | |
| 5550 | + | |
5551 | 5551 | | |
5552 | 5552 | | |
5553 | 5553 | | |
5554 | | - | |
5555 | 5554 | | |
5556 | | - | |
5557 | | - | |
| 5555 | + | |
| 5556 | + | |
| 5557 | + | |
| 5558 | + | |
| 5559 | + | |
| 5560 | + | |
| 5561 | + | |
5558 | 5562 | | |
5559 | | - | |
5560 | | - | |
| 5563 | + | |
| 5564 | + | |
| 5565 | + | |
| 5566 | + | |
| 5567 | + | |
| 5568 | + | |
| 5569 | + | |
| 5570 | + | |
| 5571 | + | |
| 5572 | + | |
5561 | 5573 | | |
5562 | | - | |
5563 | | - | |
5564 | 5574 | | |
| 5575 | + | |
5565 | 5576 | | |
5566 | 5577 | | |
5567 | 5578 | | |
5568 | | - | |
| 5579 | + | |
| 5580 | + | |
5569 | 5581 | | |
5570 | 5582 | | |
5571 | 5583 | | |
| |||
5584 | 5596 | | |
5585 | 5597 | | |
5586 | 5598 | | |
5587 | | - | |
| 5599 | + | |
5588 | 5600 | | |
5589 | 5601 | | |
5590 | 5602 | | |
5591 | 5603 | | |
5592 | 5604 | | |
5593 | 5605 | | |
5594 | 5606 | | |
5595 | | - | |
| 5607 | + | |
5596 | 5608 | | |
5597 | 5609 | | |
5598 | 5610 | | |
5599 | 5611 | | |
5600 | | - | |
5601 | | - | |
5602 | | - | |
5603 | | - | |
5604 | | - | |
5605 | | - | |
5606 | | - | |
| 5612 | + | |
| 5613 | + | |
| 5614 | + | |
| 5615 | + | |
| 5616 | + | |
| 5617 | + | |
| 5618 | + | |
| 5619 | + | |
5607 | 5620 | | |
5608 | 5621 | | |
5609 | 5622 | | |
5610 | | - | |
5611 | | - | |
5612 | | - | |
| 5623 | + | |
| 5624 | + | |
| 5625 | + | |
5613 | 5626 | | |
5614 | | - | |
| 5627 | + | |
5615 | 5628 | | |
5616 | | - | |
5617 | | - | |
5618 | | - | |
| 5629 | + | |
| 5630 | + | |
5619 | 5631 | | |
5620 | 5632 | | |
5621 | | - | |
5622 | | - | |
5623 | | - | |
5624 | | - | |
5625 | | - | |
5626 | | - | |
5627 | | - | |
5628 | | - | |
5629 | | - | |
5630 | | - | |
5631 | | - | |
5632 | | - | |
5633 | | - | |
5634 | | - | |
5635 | | - | |
5636 | | - | |
5637 | | - | |
5638 | | - | |
5639 | | - | |
5640 | | - | |
5641 | | - | |
5642 | | - | |
5643 | | - | |
5644 | | - | |
5645 | | - | |
5646 | | - | |
5647 | | - | |
5648 | | - | |
5649 | | - | |
5650 | | - | |
5651 | | - | |
5652 | | - | |
5653 | | - | |
5654 | | - | |
5655 | | - | |
5656 | | - | |
5657 | | - | |
5658 | | - | |
5659 | | - | |
5660 | | - | |
5661 | | - | |
5662 | | - | |
5663 | | - | |
5664 | | - | |
5665 | | - | |
5666 | | - | |
5667 | | - | |
5668 | | - | |
| 5633 | + | |
| 5634 | + | |
| 5635 | + | |
| 5636 | + | |
| 5637 | + | |
| 5638 | + | |
| 5639 | + | |
| 5640 | + | |
| 5641 | + | |
| 5642 | + | |
| 5643 | + | |
| 5644 | + | |
| 5645 | + | |
| 5646 | + | |
| 5647 | + | |
| 5648 | + | |
| 5649 | + | |
| 5650 | + | |
| 5651 | + | |
| 5652 | + | |
| 5653 | + | |
| 5654 | + | |
| 5655 | + | |
| 5656 | + | |
| 5657 | + | |
| 5658 | + | |
| 5659 | + | |
| 5660 | + | |
| 5661 | + | |
| 5662 | + | |
| 5663 | + | |
| 5664 | + | |
| 5665 | + | |
| 5666 | + | |
| 5667 | + | |
| 5668 | + | |
| 5669 | + | |
| 5670 | + | |
| 5671 | + | |
5669 | 5672 | | |
5670 | 5673 | | |
5671 | 5674 | | |
| |||
5754 | 5757 | | |
5755 | 5758 | | |
5756 | 5759 | | |
5757 | | - | |
| 5760 | + | |
| 5761 | + | |
| 5762 | + | |
| 5763 | + | |
| 5764 | + | |
5758 | 5765 | | |
5759 | 5766 | | |
5760 | 5767 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | | - | |
79 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
80 | 84 | | |
81 | 85 | | |
82 | 86 | | |
83 | 87 | | |
84 | | - | |
85 | 88 | | |
86 | 89 | | |
87 | | - | |
88 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
89 | 98 | | |
90 | 99 | | |
91 | | - | |
92 | | - | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
93 | 111 | | |
94 | | - | |
95 | | - | |
96 | 112 | | |
| 113 | + | |
97 | 114 | | |
98 | 115 | | |
99 | 116 | | |
100 | | - | |
| 117 | + | |
| 118 | + | |
101 | 119 | | |
102 | 120 | | |
103 | 121 | | |
| |||
139 | 157 | | |
140 | 158 | | |
141 | 159 | | |
142 | | - | |
| 160 | + | |
143 | 161 | | |
144 | 162 | | |
145 | 163 | | |
| |||
158 | 176 | | |
159 | 177 | | |
160 | 178 | | |
161 | | - | |
| 179 | + | |
| 180 | + | |
162 | 181 | | |
163 | 182 | | |
164 | 183 | | |
165 | 184 | | |
166 | | - | |
167 | 185 | | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
178 | 198 | | |
179 | 199 | | |
180 | 200 | | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
186 | 210 | | |
187 | 211 | | |
188 | 212 | | |
189 | 213 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
214 | 224 | | |
215 | 225 | | |
216 | 226 | | |
| |||
324 | 334 | | |
325 | 335 | | |
326 | 336 | | |
327 | | - | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
328 | 342 | | |
329 | 343 | | |
330 | 344 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
0 commit comments