ol/geom/flat/intersectsextent
This commit is contained in:
@@ -11,7 +11,7 @@ import {assignClosestPoint, maxSquaredDelta} from '../geom/flat/closest.js';
|
||||
import {deflateCoordinates} from '../geom/flat/deflate.js';
|
||||
import {inflateCoordinates} from '../geom/flat/inflate.js';
|
||||
import {interpolatePoint, lineStringCoordinateAtM} from '../geom/flat/interpolate.js';
|
||||
import _ol_geom_flat_intersectsextent_ from '../geom/flat/intersectsextent.js';
|
||||
import {intersectsLineString} from '../geom/flat/intersectsextent.js';
|
||||
import {lineStringLength} from '../geom/flat/length.js';
|
||||
import {forEach as forEachSegment} from '../geom/flat/segments.js';
|
||||
import {douglasPeucker} from '../geom/flat/simplify.js';
|
||||
@@ -229,7 +229,7 @@ LineString.prototype.getType = function() {
|
||||
* @api
|
||||
*/
|
||||
LineString.prototype.intersectsExtent = function(extent) {
|
||||
return _ol_geom_flat_intersectsextent_.lineString(
|
||||
return intersectsLineString(
|
||||
this.flatCoordinates, 0, this.flatCoordinates.length, this.stride,
|
||||
extent);
|
||||
};
|
||||
|
||||
@@ -12,7 +12,7 @@ import {assignClosestArrayPoint, arrayMaxSquaredDelta} from '../geom/flat/closes
|
||||
import {deflateCoordinatesArray} from '../geom/flat/deflate.js';
|
||||
import {inflateCoordinatesArray} from '../geom/flat/inflate.js';
|
||||
import {interpolatePoint, lineStringsCoordinateAtM} from '../geom/flat/interpolate.js';
|
||||
import _ol_geom_flat_intersectsextent_ from '../geom/flat/intersectsextent.js';
|
||||
import {intersectsLineStringArray} from '../geom/flat/intersectsextent.js';
|
||||
import {douglasPeuckerArray} from '../geom/flat/simplify.js';
|
||||
|
||||
/**
|
||||
@@ -247,7 +247,7 @@ MultiLineString.prototype.getType = function() {
|
||||
* @api
|
||||
*/
|
||||
MultiLineString.prototype.intersectsExtent = function(extent) {
|
||||
return _ol_geom_flat_intersectsextent_.lineStrings(
|
||||
return intersectsLineStringArray(
|
||||
this.flatCoordinates, 0, this.ends_, this.stride, extent);
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import {linearRingssContainsXY} from '../geom/flat/contains.js';
|
||||
import {deflateMultiCoordinatesArray} from '../geom/flat/deflate.js';
|
||||
import {inflateMultiCoordinatesArray} from '../geom/flat/inflate.js';
|
||||
import {getInteriorPointsOfMultiArray} from '../geom/flat/interiorpoint.js';
|
||||
import _ol_geom_flat_intersectsextent_ from '../geom/flat/intersectsextent.js';
|
||||
import {intersectsLinearRingMultiArray} from '../geom/flat/intersectsextent.js';
|
||||
import {linearRingsAreOriented, orientLinearRingsArray} from '../geom/flat/orient.js';
|
||||
import {quantizeMultiArray} from '../geom/flat/simplify.js';
|
||||
|
||||
@@ -344,7 +344,7 @@ MultiPolygon.prototype.getType = function() {
|
||||
* @api
|
||||
*/
|
||||
MultiPolygon.prototype.intersectsExtent = function(extent) {
|
||||
return _ol_geom_flat_intersectsextent_.linearRingss(
|
||||
return intersectsLinearRingMultiArray(
|
||||
this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, extent);
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import {linearRingsContainsXY} from '../geom/flat/contains.js';
|
||||
import {deflateCoordinatesArray} from '../geom/flat/deflate.js';
|
||||
import {inflateCoordinatesArray} from '../geom/flat/inflate.js';
|
||||
import {getInteriorPointOfArray} from '../geom/flat/interiorpoint.js';
|
||||
import _ol_geom_flat_intersectsextent_ from '../geom/flat/intersectsextent.js';
|
||||
import {intersectsLinearRingArray} from '../geom/flat/intersectsextent.js';
|
||||
import {linearRingIsOriented, orientLinearRings} from '../geom/flat/orient.js';
|
||||
import {quantizeArray} from '../geom/flat/simplify.js';
|
||||
import {modulo} from '../math.js';
|
||||
@@ -325,7 +325,7 @@ Polygon.prototype.getType = function() {
|
||||
* @api
|
||||
*/
|
||||
Polygon.prototype.intersectsExtent = function(extent) {
|
||||
return _ol_geom_flat_intersectsextent_.linearRings(
|
||||
return intersectsLinearRingArray(
|
||||
this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, extent);
|
||||
};
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
import {containsExtent, createEmpty, extendFlatCoordinates, intersects, intersectsSegment} from '../../extent.js';
|
||||
import {linearRingContainsXY, linearRingContainsExtent} from '../flat/contains.js';
|
||||
import {forEach as forEachSegment} from '../flat/segments.js';
|
||||
const _ol_geom_flat_intersectsextent_ = {};
|
||||
|
||||
|
||||
/**
|
||||
@@ -15,7 +14,7 @@ const _ol_geom_flat_intersectsextent_ = {};
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @return {boolean} True if the geometry and the extent intersect.
|
||||
*/
|
||||
_ol_geom_flat_intersectsextent_.lineString = function(flatCoordinates, offset, end, stride, extent) {
|
||||
export function intersectsLineString(flatCoordinates, offset, end, stride, extent) {
|
||||
const coordinatesExtent = extendFlatCoordinates(
|
||||
createEmpty(), flatCoordinates, offset, end, stride);
|
||||
if (!intersects(extent, coordinatesExtent)) {
|
||||
@@ -42,7 +41,7 @@ _ol_geom_flat_intersectsextent_.lineString = function(flatCoordinates, offset, e
|
||||
function(point1, point2) {
|
||||
return intersectsSegment(extent, point1, point2);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -53,16 +52,16 @@ _ol_geom_flat_intersectsextent_.lineString = function(flatCoordinates, offset, e
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @return {boolean} True if the geometry and the extent intersect.
|
||||
*/
|
||||
_ol_geom_flat_intersectsextent_.lineStrings = function(flatCoordinates, offset, ends, stride, extent) {
|
||||
export function intersectsLineStringArray(flatCoordinates, offset, ends, stride, extent) {
|
||||
for (let i = 0, ii = ends.length; i < ii; ++i) {
|
||||
if (_ol_geom_flat_intersectsextent_.lineString(
|
||||
if (intersectsLineString(
|
||||
flatCoordinates, offset, ends[i], stride, extent)) {
|
||||
return true;
|
||||
}
|
||||
offset = ends[i];
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -73,8 +72,8 @@ _ol_geom_flat_intersectsextent_.lineStrings = function(flatCoordinates, offset,
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @return {boolean} True if the geometry and the extent intersect.
|
||||
*/
|
||||
_ol_geom_flat_intersectsextent_.linearRing = function(flatCoordinates, offset, end, stride, extent) {
|
||||
if (_ol_geom_flat_intersectsextent_.lineString(
|
||||
export function intersectsLinearRing(flatCoordinates, offset, end, stride, extent) {
|
||||
if (intersectsLineString(
|
||||
flatCoordinates, offset, end, stride, extent)) {
|
||||
return true;
|
||||
}
|
||||
@@ -91,7 +90,7 @@ _ol_geom_flat_intersectsextent_.linearRing = function(flatCoordinates, offset, e
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -102,8 +101,8 @@ _ol_geom_flat_intersectsextent_.linearRing = function(flatCoordinates, offset, e
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @return {boolean} True if the geometry and the extent intersect.
|
||||
*/
|
||||
_ol_geom_flat_intersectsextent_.linearRings = function(flatCoordinates, offset, ends, stride, extent) {
|
||||
if (!_ol_geom_flat_intersectsextent_.linearRing(
|
||||
export function intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent) {
|
||||
if (!intersectsLinearRing(
|
||||
flatCoordinates, offset, ends[0], stride, extent)) {
|
||||
return false;
|
||||
}
|
||||
@@ -116,7 +115,7 @@ _ol_geom_flat_intersectsextent_.linearRings = function(flatCoordinates, offset,
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -127,15 +126,14 @@ _ol_geom_flat_intersectsextent_.linearRings = function(flatCoordinates, offset,
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @return {boolean} True if the geometry and the extent intersect.
|
||||
*/
|
||||
_ol_geom_flat_intersectsextent_.linearRingss = function(flatCoordinates, offset, endss, stride, extent) {
|
||||
export function intersectsLinearRingMultiArray(flatCoordinates, offset, endss, stride, extent) {
|
||||
for (let i = 0, ii = endss.length; i < ii; ++i) {
|
||||
const ends = endss[i];
|
||||
if (_ol_geom_flat_intersectsextent_.linearRings(
|
||||
if (intersectsLinearRingArray(
|
||||
flatCoordinates, offset, ends, stride, extent)) {
|
||||
return true;
|
||||
}
|
||||
offset = ends[ends.length - 1];
|
||||
}
|
||||
return false;
|
||||
};
|
||||
export default _ol_geom_flat_intersectsextent_;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import _ol_geom_flat_intersectsextent_ from '../../../../../src/ol/geom/flat/intersectsextent.js';
|
||||
import {intersectsLinearRing, intersectsLineString} from '../../../../../src/ol/geom/flat/intersectsextent.js';
|
||||
|
||||
|
||||
describe('ol.geom.flat.intersectsextent', function() {
|
||||
@@ -11,7 +11,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
describe('linestring envelope does not intersect the extent', function() {
|
||||
it('returns false', function() {
|
||||
const extent = [3, 3, 4, 4];
|
||||
const r = _ol_geom_flat_intersectsextent_.lineString(
|
||||
const r = intersectsLineString(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(false);
|
||||
});
|
||||
@@ -19,7 +19,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
describe('linestring envelope within the extent', function() {
|
||||
it('returns true', function() {
|
||||
const extent = [-1, -1, 3, 3];
|
||||
const r = _ol_geom_flat_intersectsextent_.lineString(
|
||||
const r = intersectsLineString(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(true);
|
||||
});
|
||||
@@ -28,7 +28,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
function() {
|
||||
it('returns true', function() {
|
||||
const extent = [-0.1, 0.1, 2.1, 0.1];
|
||||
const r = _ol_geom_flat_intersectsextent_.lineString(
|
||||
const r = intersectsLineString(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(true);
|
||||
});
|
||||
@@ -36,7 +36,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
describe('a segment intersects the extent', function() {
|
||||
it('returns true', function() {
|
||||
const extent = [-0.5, -0.5, 0.5, 0.5];
|
||||
const r = _ol_geom_flat_intersectsextent_.lineString(
|
||||
const r = intersectsLineString(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(true);
|
||||
});
|
||||
@@ -44,13 +44,13 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
describe('no segments intersect the extent', function() {
|
||||
it('returns false', function() {
|
||||
const extent = [0.5, 1.5, 1, 1.75];
|
||||
const r = _ol_geom_flat_intersectsextent_.lineString(
|
||||
const r = intersectsLineString(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(false);
|
||||
});
|
||||
it('returns false', function() {
|
||||
const extent = [1, 0.25, 1.5, 0.5];
|
||||
const r = _ol_geom_flat_intersectsextent_.lineString(
|
||||
const r = intersectsLineString(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(false);
|
||||
});
|
||||
@@ -65,7 +65,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
describe('boundary intersects the extent', function() {
|
||||
it('returns true', function() {
|
||||
const extent = [1.5, 0.0, 2.5, 1.0];
|
||||
const r = _ol_geom_flat_intersectsextent_.linearRing(
|
||||
const r = intersectsLinearRing(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(true);
|
||||
});
|
||||
@@ -75,7 +75,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
function() {
|
||||
it('returns false', function() {
|
||||
const extent = [2.0, 0.5, 3, 1.5];
|
||||
const r = _ol_geom_flat_intersectsextent_.linearRing(
|
||||
const r = intersectsLinearRing(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(false);
|
||||
});
|
||||
@@ -83,7 +83,7 @@ describe('ol.geom.flat.intersectsextent', function() {
|
||||
describe('ring contains the extent', function() {
|
||||
it('returns true', function() {
|
||||
const extent = [0.75, -0.25, 1.25, 0.25];
|
||||
const r = _ol_geom_flat_intersectsextent_.linearRing(
|
||||
const r = intersectsLinearRing(
|
||||
flatCoordinates, 0, flatCoordinates.length, 2, extent);
|
||||
expect(r).to.be(true);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user