diff --git a/src/ol/color/color.js b/src/ol/color/color.js index c4f3a4f476..765cc22614 100644 --- a/src/ol/color/color.js +++ b/src/ol/color/color.js @@ -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.} - */ - 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.} + */ + 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. */ diff --git a/src/ol/geom/flatgeom.js b/src/ol/geom/flatgeom.js index 588858d624..14f129081f 100644 --- a/src/ol/geom/flatgeom.js +++ b/src/ol/geom/flatgeom.js @@ -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.} */ 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.} flatCoordinates Flat coordinates. * @param {number} stride Stride. - * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {goog.vec.Mat4.Number} transform Transform. * @param {Array.=} opt_dest Destination. * @return {Array.} Transformed coordinates. */ diff --git a/src/ol/geom/simplegeometry.js b/src/ol/geom/simplegeometry.js index 29a92f6b97..2f24d9d28f 100644 --- a/src/ol/geom/simplegeometry.js +++ b/src/ol/geom/simplegeometry.js @@ -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.=} opt_dest Destination. * @return {Array.} Transformed flat coordinates. */ diff --git a/src/ol/geom/simplifygeom.js b/src/ol/geom/simplifygeom.js index 427f8b22ce..0a917b636e 100644 --- a/src/ol/geom/simplifygeom.js +++ b/src/ol/geom/simplifygeom.js @@ -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.} */ var stack = [offset, end - stride]; var index = 0; var i; diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 0856167791..7c69c0c77c 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -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. diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index d3c96591bf..7576e1d6ca 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -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; diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 9b69bb1c55..81fe9ede56 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -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.} 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.} 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. diff --git a/src/ol/renderer/canvas/canvaslayerrenderer.js b/src/ol/renderer/canvas/canvaslayerrenderer.js index f3a0366338..e590979ff0 100644 --- a/src/ol/renderer/canvas/canvaslayerrenderer.js +++ b/src/ol/renderer/canvas/canvaslayerrenderer.js @@ -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 = diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index dc31b669b0..a4bbdfb362 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -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; diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index 0f024243c4..54e7df7e71 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -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) {