ol/geom/flat/intersectsextent

This commit is contained in:
raiyni
2018-02-13 09:15:07 -06:00
parent abf191289c
commit 4d27a9eb0e
6 changed files with 32 additions and 34 deletions

View File

@@ -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);
};

View File

@@ -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);
};

View File

@@ -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);
};

View File

@@ -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);
};

View File

@@ -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_;
}

View File

@@ -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);
});