Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
939 B
42 lines
939 B
describe('PolyUtil', function () { |
|
|
|
describe('#clipPolygon', function () { |
|
it('clips polygon by bounds', function () { |
|
var bounds = L.bounds([0, 0], [10, 10]); |
|
|
|
var points = [ |
|
new L.Point(5, 5), |
|
new L.Point(15, 10), |
|
new L.Point(10, 15) |
|
]; |
|
|
|
// check clip without rounding |
|
var clipped = L.PolyUtil.clipPolygon(points, bounds); |
|
|
|
for (var i = 0, len = clipped.length; i < len; i++) { |
|
delete clipped[i]._code; |
|
} |
|
|
|
expect(clipped).to.eql([ |
|
new L.Point(7.5, 10), |
|
new L.Point(5, 5), |
|
new L.Point(10, 7.5), |
|
new L.Point(10, 10) |
|
]); |
|
|
|
// check clip with rounding |
|
var clippedRounded = L.PolyUtil.clipPolygon(points, bounds, true); |
|
|
|
for (i = 0, len = clippedRounded.length; i < len; i++) { |
|
delete clippedRounded[i]._code; |
|
} |
|
|
|
expect(clippedRounded).to.eql([ |
|
new L.Point(8, 10), |
|
new L.Point(5, 5), |
|
new L.Point(10, 8), |
|
new L.Point(10, 10) |
|
]); |
|
}); |
|
}); |
|
});
|
|
|