Merge pull request #1463 from twpayne/vector-api-type-fixes
[vector-api] Type checking improvements
This commit is contained in:
@@ -142,56 +142,60 @@ ol.color.equals = function(color1, color2) {
|
||||
* @param {ol.Color=} opt_color Color.
|
||||
* @return {ol.Color} Color.
|
||||
*/
|
||||
ol.color.fromString = (function() {
|
||||
ol.color.fromString = (
|
||||
/**
|
||||
* @return {function(string, ol.Color=): ol.Color}
|
||||
*/
|
||||
function() {
|
||||
|
||||
// We maintain a small cache of parsed strings. To provide cheap LRU-like
|
||||
// semantics, whenever the cache grows too large we simply delete an
|
||||
// arbitrary 25% of the entries.
|
||||
// We maintain a small cache of parsed strings. To provide cheap LRU-like
|
||||
// semantics, whenever the cache grows too large we simply delete an
|
||||
// arbitrary 25% of the entries.
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {number}
|
||||
*/
|
||||
var MAX_CACHE_SIZE = 1024;
|
||||
|
||||
/**
|
||||
* @type {Object.<string, ol.Color>}
|
||||
*/
|
||||
var cache = {};
|
||||
|
||||
/**
|
||||
* @type {number}
|
||||
*/
|
||||
var cacheSize = 0;
|
||||
|
||||
return (
|
||||
/**
|
||||
* @param {string} s String.
|
||||
* @param {ol.Color=} opt_color Color.
|
||||
* @return {ol.Color} Color.
|
||||
* @const
|
||||
* @type {number}
|
||||
*/
|
||||
function(s, opt_color) {
|
||||
var color;
|
||||
if (cache.hasOwnProperty(s)) {
|
||||
color = cache[s];
|
||||
} else {
|
||||
if (cacheSize >= MAX_CACHE_SIZE) {
|
||||
var i = 0;
|
||||
var key;
|
||||
for (key in cache) {
|
||||
if (i++ & 3 === 0) {
|
||||
delete cache[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
color = ol.color.fromStringInternal_(s);
|
||||
cache[s] = color;
|
||||
++cacheSize;
|
||||
}
|
||||
return ol.color.returnOrUpdate(color, opt_color);
|
||||
});
|
||||
var MAX_CACHE_SIZE = 1024;
|
||||
|
||||
})();
|
||||
/**
|
||||
* @type {Object.<string, ol.Color>}
|
||||
*/
|
||||
var cache = {};
|
||||
|
||||
/**
|
||||
* @type {number}
|
||||
*/
|
||||
var cacheSize = 0;
|
||||
|
||||
return (
|
||||
/**
|
||||
* @param {string} s String.
|
||||
* @param {ol.Color=} opt_color Color.
|
||||
* @return {ol.Color} Color.
|
||||
*/
|
||||
function(s, opt_color) {
|
||||
var color;
|
||||
if (cache.hasOwnProperty(s)) {
|
||||
color = cache[s];
|
||||
} else {
|
||||
if (cacheSize >= MAX_CACHE_SIZE) {
|
||||
var i = 0;
|
||||
var key;
|
||||
for (key in cache) {
|
||||
if (i++ & 3 === 0) {
|
||||
delete cache[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
color = ol.color.fromStringInternal_(s);
|
||||
cache[s] = color;
|
||||
++cacheSize;
|
||||
}
|
||||
return ol.color.returnOrUpdate(color, opt_color);
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
|
||||
/**
|
||||
@@ -314,7 +318,7 @@ ol.color.toString = function(color) {
|
||||
|
||||
/**
|
||||
* @param {ol.Color} color Color.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {ol.Color=} opt_color Color.
|
||||
* @return {ol.Color} Transformed color.
|
||||
*/
|
||||
|
||||
@@ -488,6 +488,7 @@ ol.geom.flat.linearRingsContainsXY =
|
||||
ol.geom.flat.linearRingsGetInteriorPoint =
|
||||
function(flatCoordinates, offset, ends, stride, y, opt_point) {
|
||||
var i, ii, x, x1, x2, y1, y2;
|
||||
/** @type {Array.<number>} */
|
||||
var intersections = [];
|
||||
// Calculate intersections with the horizontal line
|
||||
var end = ends[0];
|
||||
@@ -735,7 +736,7 @@ ol.geom.flat.squaredDistance = function(x1, y1, x2, y2) {
|
||||
/**
|
||||
* @param {Array.<number>} flatCoordinates Flat coordinates.
|
||||
* @param {number} stride Stride.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {Array.<number>=} opt_dest Destination.
|
||||
* @return {Array.<number>} Transformed coordinates.
|
||||
*/
|
||||
|
||||
@@ -230,7 +230,7 @@ ol.geom.SimpleGeometry.prototype.transform = function(transformFn) {
|
||||
|
||||
/**
|
||||
* @param {ol.geom.SimpleGeometry} simpleGeometry Simple geometry.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {Array.<number>=} opt_dest Destination.
|
||||
* @return {Array.<number>} Transformed flat coordinates.
|
||||
*/
|
||||
|
||||
@@ -86,6 +86,7 @@ ol.geom.simplify.douglasPeucker = function(flatCoordinates, offset, end,
|
||||
var markers = new MarkerArray(n);
|
||||
markers[0] = 1;
|
||||
markers[n - 1] = 1;
|
||||
/** @type {Array.<number>} */
|
||||
var stack = [offset, end - stride];
|
||||
var index = 0;
|
||||
var i;
|
||||
|
||||
@@ -2,7 +2,6 @@ goog.provide('ol.layer.Vector');
|
||||
|
||||
goog.require('ol.feature');
|
||||
goog.require('ol.layer.Layer');
|
||||
goog.require('ol.source.Vector');
|
||||
|
||||
|
||||
/**
|
||||
@@ -63,14 +62,6 @@ goog.exportProperty(
|
||||
ol.layer.Vector.prototype.getStyleFunction);
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.source.Source} Vector source.
|
||||
*/
|
||||
ol.layer.Vector.prototype.getVectorSource = function() {
|
||||
return /** @type {ol.source.Vector} */ (this.getSource());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction
|
||||
* Render geometry function.
|
||||
|
||||
@@ -21,7 +21,7 @@ goog.require('ol.vec.Mat4');
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {number} pixelRatio Pixel ratio.
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @struct
|
||||
*/
|
||||
ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) {
|
||||
@@ -46,7 +46,7 @@ ol.render.canvas.Immediate = function(context, pixelRatio, extent, transform) {
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {goog.vec.Mat4.AnyType}
|
||||
* @type {goog.vec.Mat4.Number}
|
||||
*/
|
||||
this.transform_ = transform;
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) {
|
||||
/**
|
||||
* @private
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render
|
||||
* geometry function.
|
||||
* @param {Array.<*>} instructions Instructions array.
|
||||
@@ -305,7 +305,7 @@ ol.render.canvas.Replay.prototype.replay_ =
|
||||
|
||||
/**
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render
|
||||
* geometry function.
|
||||
* @return {T|undefined} Callback result.
|
||||
@@ -321,7 +321,7 @@ ol.render.canvas.Replay.prototype.replay =
|
||||
|
||||
/**
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render
|
||||
* geometry function.
|
||||
* @param {function(ol.geom.Geometry, Object): T=} opt_geometryCallback
|
||||
@@ -1231,7 +1231,7 @@ ol.render.canvas.ReplayGroup = function(pixelRatio, tolerance) {
|
||||
/**
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render
|
||||
* geometry function.
|
||||
* @return {T|undefined} Callback result.
|
||||
@@ -1252,7 +1252,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(context, extent,
|
||||
* @param {Array.<number>} zs Z-indices array.
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render
|
||||
* geometry function.
|
||||
* @param {function(ol.geom.Geometry, Object): T} geometryCallback Geometry
|
||||
@@ -1286,7 +1286,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ =
|
||||
* @param {Array.<number>} zs Z-indices array.
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {ol.Extent} extent Extent.
|
||||
* @param {goog.vec.Mat4.AnyType} transform Transform.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render
|
||||
* geometry function.
|
||||
* @return {T|undefined} Callback result.
|
||||
|
||||
@@ -76,7 +76,7 @@ ol.renderer.canvas.Layer.prototype.composeFrame =
|
||||
* @param {ol.render.EventType} type Event type.
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {ol.FrameState} frameState Frame state.
|
||||
* @param {goog.vec.Mat4.AnyType=} opt_transform Transform.
|
||||
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
|
||||
* @private
|
||||
*/
|
||||
ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ =
|
||||
@@ -97,7 +97,7 @@ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ =
|
||||
/**
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {ol.FrameState} frameState Frame state.
|
||||
* @param {goog.vec.Mat4.AnyType=} opt_transform Transform.
|
||||
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
|
||||
* @protected
|
||||
*/
|
||||
ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent =
|
||||
@@ -110,7 +110,7 @@ ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent =
|
||||
/**
|
||||
* @param {CanvasRenderingContext2D} context Context.
|
||||
* @param {ol.FrameState} frameState Frame state.
|
||||
* @param {goog.vec.Mat4.AnyType=} opt_transform Transform.
|
||||
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
|
||||
* @protected
|
||||
*/
|
||||
ol.renderer.canvas.Layer.prototype.dispatchPreComposeEvent =
|
||||
|
||||
@@ -11,6 +11,7 @@ goog.require('ol.layer.Vector');
|
||||
goog.require('ol.render.canvas.ReplayGroup');
|
||||
goog.require('ol.renderer.canvas.Layer');
|
||||
goog.require('ol.renderer.vector');
|
||||
goog.require('ol.source.Vector');
|
||||
goog.require('ol.style.ImageState');
|
||||
|
||||
|
||||
@@ -133,7 +134,8 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel =
|
||||
*/
|
||||
ol.renderer.canvas.VectorLayer.prototype.getRenderGeometryFunction_ =
|
||||
function() {
|
||||
var vectorLayer = this.getVectorLayer();
|
||||
var vectorLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector);
|
||||
var renderGeometryFunction = vectorLayer.getRenderGeometryFunction();
|
||||
if (!goog.isDef(renderGeometryFunction)) {
|
||||
renderGeometryFunction = goog.functions.TRUE;
|
||||
@@ -142,14 +144,6 @@ ol.renderer.canvas.VectorLayer.prototype.getRenderGeometryFunction_ =
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.layer.Vector} Vector layer.
|
||||
*/
|
||||
ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() {
|
||||
return /** @type {ol.layer.Vector} */ (this.getLayer());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Handle changes in image style state.
|
||||
* @param {goog.events.Event} event Image style change event.
|
||||
@@ -175,8 +169,10 @@ ol.renderer.canvas.VectorLayer.prototype.prepareFrame =
|
||||
return;
|
||||
}
|
||||
|
||||
var vectorLayer = this.getVectorLayer();
|
||||
var vectorSource = vectorLayer.getVectorSource();
|
||||
var vectorLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector);
|
||||
var vectorSource = vectorLayer.getSource();
|
||||
goog.asserts.assertInstanceof(vectorSource, ol.source.Vector);
|
||||
var frameStateExtent = frameState.extent;
|
||||
var frameStateResolution = frameState.view2DState.resolution;
|
||||
var pixelRatio = frameState.devicePixelRatio;
|
||||
|
||||
@@ -35,8 +35,8 @@ ol.vec.Mat4.makeTransform2D = function(mat, translateX1, translateY1,
|
||||
|
||||
/**
|
||||
* Returns true if mat1 and mat2 represent the same 2D transformation.
|
||||
* @param {goog.vec.Mat4.AnyType} mat1 Matrix 1.
|
||||
* @param {goog.vec.Mat4.AnyType} mat2 Matrix 2.
|
||||
* @param {goog.vec.Mat4.Number} mat1 Matrix 1.
|
||||
* @param {goog.vec.Mat4.Number} mat2 Matrix 2.
|
||||
* @return {boolean} Equal 2D.
|
||||
*/
|
||||
ol.vec.Mat4.equals2D = function(mat1, mat2) {
|
||||
|
||||
Reference in New Issue
Block a user