Merge pull request #1377 from twpayne/struct

Improve type checking with @struct
This commit is contained in:
Tom Payne
2013-12-13 10:39:21 -08:00
54 changed files with 260 additions and 186 deletions

View File

@@ -57,9 +57,10 @@ brightness.bindTo('value', layer, 'brightness')
var rotation = new ol.dom.Input(document.getElementById('rotation'));
rotation.bindTo('value', map.getView(), 'rotation')
rotation.bindTo('value', /** @type {ol.View2D} */ (map.getView()), 'rotation')
.transform(parseFloat, String);
var resolution = new ol.dom.Input(document.getElementById('resolution'));
resolution.bindTo('value', map.getView(), 'resolution')
resolution.bindTo('value',
/** @type {ol.View2D} */ (map.getView()), 'resolution')
.transform(parseFloat, String);

View File

@@ -6,6 +6,10 @@ goog.require('ol.dom.Input');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');
var view = new ol.View2D({
center: [0, 0],
zoom: 2
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
@@ -14,12 +18,8 @@ var map = new ol.Map({
],
renderers: ol.RendererHints.createFromQueryData(),
target: 'map',
view: new ol.View2D({
center: [0, 0],
zoom: 2
})
view: view
});
var view = map.getView();
var deviceOrientation = new ol.DeviceOrientation();
var track = new ol.dom.Input(document.getElementById('track'));

View File

@@ -24,7 +24,7 @@ var map = new ol.Map({
});
var geolocation = new ol.Geolocation();
geolocation.bindTo('projection', map.getView());
geolocation.bindTo('projection', /** @type {ol.View2D} */ (map.getView()));
var track = new ol.dom.Input(document.getElementById('track'));
track.bindTo('checked', geolocation, 'tracking');

View File

@@ -36,8 +36,10 @@ xhr.onload = function() {
zoom: 1
})
});
var units = map.getView().getProjection().getUnits();
var sld = new ol.parser.ogc.SLD().read(xhr.responseText, units);
var units = map.getView().getView2D().getProjection().getUnits();
var sld = new ol.parser.ogc.SLD().read(xhr.responseText, {
units: units
});
var style = sld.namedLayers['countries'].userStyles[0];
var vector = new ol.layer.Vector({
source: new ol.source.Vector({

View File

@@ -21,6 +21,7 @@ goog.require('ol.TileRange');
*
* @constructor
* @param {olx.AttributionOptions} options Attribution options.
* @struct
* @todo stability experimental
*/
ol.Attribution = function(options) {

View File

@@ -9,15 +9,19 @@ goog.require('goog.dom.TagName');
* @const
* @type {boolean}
*/
ol.canvas.SUPPORTED = (function() {
if (!('HTMLCanvasElement' in goog.global)) {
return false;
}
try {
var canvas = /** @type {HTMLCanvasElement} */
(goog.dom.createElement(goog.dom.TagName.CANVAS));
return !goog.isNull(canvas.getContext('2d'));
} catch (e) {
return false;
}
})();
ol.canvas.SUPPORTED = (
/**
* @return {boolean} Canvas supported.
*/
function() {
if (!('HTMLCanvasElement' in goog.global)) {
return false;
}
try {
var canvas = /** @type {HTMLCanvasElement} */
(goog.dom.createElement(goog.dom.TagName.CANVAS));
return !goog.isNull(canvas.getContext('2d'));
} catch (e) {
return false;
}
})();

View File

@@ -2,10 +2,12 @@
goog.provide('ol.control.Zoom');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.TagName');
goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('ol.View2D');
goog.require('ol.animation');
goog.require('ol.control.Control');
goog.require('ol.css');
@@ -77,8 +79,11 @@ ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) {
browserEvent.preventDefault();
var map = this.getMap();
// FIXME works for View2D only
var view = map.getView().getView2D();
var currentResolution = view.getResolution();
var view = map.getView();
goog.asserts.assert(goog.isDef(view));
var view2D = view.getView2D();
goog.asserts.assertInstanceof(view2D, ol.View2D);
var currentResolution = view2D.getResolution();
if (goog.isDef(currentResolution)) {
if (this.duration_ > 0) {
map.beforeRender(ol.animation.zoom({
@@ -87,7 +92,7 @@ ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) {
easing: ol.easing.easeOut
}));
}
var newResolution = view.constrainResolution(currentResolution, delta);
view.setResolution(newResolution);
var newResolution = view2D.constrainResolution(currentResolution, delta);
view2D.setResolution(newResolution);
}
};

View File

@@ -31,7 +31,7 @@ ol.dom.setTransform = function(element, value) {
/**
* @param {Element} element Element.
* @param {goog.vec.Mat4.AnyType} transform Matrix.
* @param {goog.vec.Mat4.Number} transform Matrix.
* @param {number=} opt_precision Precision.
*/
ol.dom.transformElement2D = function(element, transform, opt_precision) {

View File

@@ -84,11 +84,13 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
// FIXME works for View2D only
var map = mapBrowserEvent.map;
var view = map.getView().getView2D();
var view = map.getView();
view.setHint(ol.ViewHint.INTERACTING, -1);
if (this.kinetic_ && this.kinetic_.end()) {
var view2DState = view.getView2DState();
var view2D = view.getView2D();
goog.asserts.assertInstanceof(view2D, ol.View2D);
var view2DState = view2D.getView2DState();
var distance = this.kinetic_.getDistance();
var angle = this.kinetic_.getAngle();
this.kineticPreRenderFn_ = this.kinetic_.pan(view2DState.center);
@@ -99,8 +101,8 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
centerpx[0] - distance * Math.cos(angle),
centerpx[1] - distance * Math.sin(angle)
]);
dest = view.constrainCenter(dest);
view.setCenter(dest);
dest = view2D.constrainCenter(dest);
view2D.setCenter(dest);
}
map.requestRenderFrame();
};

View File

@@ -105,13 +105,14 @@ ol.interaction.DragRotateAndZoom.prototype.handleDragEnd =
function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
// FIXME works for View2D only
var view = map.getView().getView2D();
var view = map.getView();
view.setHint(ol.ViewHint.INTERACTING, -1);
var view2DState = view.getView2DState();
var view2D = view.getView2D();
var view2DState = view2D.getView2DState();
var direction = this.lastScaleDelta_ - 1;
map.withFrozenRendering(function() {
ol.interaction.Interaction.rotate(map, view, view2DState.rotation);
ol.interaction.Interaction.zoom(map, view, view2DState.resolution,
ol.interaction.Interaction.rotate(map, view2D, view2DState.rotation);
ol.interaction.Interaction.zoom(map, view2D, view2DState.resolution,
undefined, ol.interaction.DRAGROTATEANDZOOM_ANIMATION_DURATION,
direction);
});

View File

@@ -74,11 +74,12 @@ ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) {
ol.interaction.DragRotate.prototype.handleDragEnd = function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
// FIXME works for View2D only
var view = map.getView().getView2D();
var view = map.getView();
view.setHint(ol.ViewHint.INTERACTING, -1);
var view2DState = view.getView2DState();
ol.interaction.Interaction.rotate(map, view, view2DState.rotation, undefined,
ol.interaction.DRAGROTATE_ANIMATION_DURATION);
var view2D = view.getView2D();
var view2DState = view2D.getView2DState();
ol.interaction.Interaction.rotate(map, view2D, view2DState.rotation,
undefined, ol.interaction.DRAGROTATE_ANIMATION_DURATION);
};

View File

@@ -2,8 +2,10 @@
goog.provide('ol.interaction.Interaction');
goog.require('goog.asserts');
goog.require('goog.events.EventTarget');
goog.require('ol.MapBrowserEvent');
goog.require('ol.View2D');
goog.require('ol.animation');
goog.require('ol.easing');
@@ -58,12 +60,13 @@ ol.interaction.Interaction.prototype.setMap = function(map) {
/**
* @param {ol.Map} map Map.
* @param {ol.View2D} view View.
* @param {ol.IView2D} view View.
* @param {ol.Coordinate} delta Delta.
* @param {number=} opt_duration Duration.
*/
ol.interaction.Interaction.pan = function(
map, view, delta, opt_duration) {
goog.asserts.assertInstanceof(view, ol.View2D);
var currentCenter = view.getCenter();
if (goog.isDef(currentCenter)) {
if (goog.isDef(opt_duration) && opt_duration > 0) {
@@ -82,13 +85,14 @@ ol.interaction.Interaction.pan = function(
/**
* @param {ol.Map} map Map.
* @param {ol.View2D} view View.
* @param {ol.IView2D} view View.
* @param {number|undefined} rotation Rotation.
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
* @param {number=} opt_duration Duration.
*/
ol.interaction.Interaction.rotate =
function(map, view, rotation, opt_anchor, opt_duration) {
goog.asserts.assertInstanceof(view, ol.View2D);
rotation = view.constrainRotation(rotation, 0);
ol.interaction.Interaction.rotateWithoutConstraints(
map, view, rotation, opt_anchor, opt_duration);
@@ -97,13 +101,14 @@ ol.interaction.Interaction.rotate =
/**
* @param {ol.Map} map Map.
* @param {ol.View2D} view View.
* @param {ol.IView2D} view View.
* @param {number|undefined} rotation Rotation.
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
* @param {number=} opt_duration Duration.
*/
ol.interaction.Interaction.rotateWithoutConstraints =
function(map, view, rotation, opt_anchor, opt_duration) {
goog.asserts.assertInstanceof(view, ol.View2D);
if (goog.isDefAndNotNull(rotation)) {
var currentRotation = view.getRotation();
var currentCenter = view.getCenter();
@@ -125,6 +130,7 @@ ol.interaction.Interaction.rotateWithoutConstraints =
if (goog.isDefAndNotNull(opt_anchor)) {
var center = view.calculateCenterRotate(rotation, opt_anchor);
map.withFrozenRendering(function() {
goog.asserts.assertInstanceof(view, ol.View2D);
view.setCenter(center);
view.setRotation(rotation);
});
@@ -137,7 +143,7 @@ ol.interaction.Interaction.rotateWithoutConstraints =
/**
* @param {ol.Map} map Map.
* @param {ol.View2D} view View.
* @param {ol.IView2D} view View.
* @param {number|undefined} resolution Resolution to go to.
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
* @param {number=} opt_duration Duration.
@@ -152,6 +158,7 @@ ol.interaction.Interaction.rotateWithoutConstraints =
*/
ol.interaction.Interaction.zoom =
function(map, view, resolution, opt_anchor, opt_duration, opt_direction) {
goog.asserts.assertInstanceof(view, ol.View2D);
resolution = view.constrainResolution(resolution, 0, opt_direction);
ol.interaction.Interaction.zoomWithoutConstraints(
map, view, resolution, opt_anchor, opt_duration);
@@ -160,13 +167,14 @@ ol.interaction.Interaction.zoom =
/**
* @param {ol.Map} map Map.
* @param {ol.View2D} view View.
* @param {ol.IView2D} view View.
* @param {number} delta Delta from previous zoom level.
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
* @param {number=} opt_duration Duration.
*/
ol.interaction.Interaction.zoomByDelta =
function(map, view, delta, opt_anchor, opt_duration) {
goog.asserts.assertInstanceof(view, ol.View2D);
var currentResolution = view.getResolution();
var resolution = view.constrainResolution(currentResolution, delta, 0);
ol.interaction.Interaction.zoomWithoutConstraints(
@@ -176,13 +184,14 @@ ol.interaction.Interaction.zoomByDelta =
/**
* @param {ol.Map} map Map.
* @param {ol.View2D} view View.
* @param {ol.IView2D} view View.
* @param {number|undefined} resolution Resolution to go to.
* @param {ol.Coordinate=} opt_anchor Anchor coordinate.
* @param {number=} opt_duration Duration.
*/
ol.interaction.Interaction.zoomWithoutConstraints =
function(map, view, resolution, opt_anchor, opt_duration) {
goog.asserts.assertInstanceof(view, ol.View2D);
if (goog.isDefAndNotNull(resolution)) {
var currentResolution = view.getResolution();
var currentCenter = view.getCenter();
@@ -204,6 +213,7 @@ ol.interaction.Interaction.zoomWithoutConstraints =
if (goog.isDefAndNotNull(opt_anchor)) {
var center = view.calculateCenterZoom(resolution, opt_anchor);
map.withFrozenRendering(function() {
goog.asserts.assertInstanceof(view, ol.View2D);
view.setCenter(center);
view.setResolution(resolution);
});

View File

@@ -5,6 +5,7 @@ goog.require('goog.asserts');
goog.require('ol.Kinetic');
goog.require('ol.Pixel');
goog.require('ol.PreRenderFunction');
goog.require('ol.View2D');
goog.require('ol.coordinate');
goog.require('ol.interaction.Touch');
@@ -64,15 +65,16 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
var deltaX = this.lastCentroid[0] - centroid[0];
var deltaY = centroid[1] - this.lastCentroid[1];
var map = mapBrowserEvent.map;
var view = map.getView().getView2D();
var view2DState = view.getView2DState();
var view2D = map.getView().getView2D();
goog.asserts.assertInstanceof(view2D, ol.View2D);
var view2DState = view2D.getView2DState();
var center = [deltaX, deltaY];
ol.coordinate.scale(center, view2DState.resolution);
ol.coordinate.rotate(center, view2DState.rotation);
ol.coordinate.add(center, view2DState.center);
center = view.constrainCenter(center);
center = view2D.constrainCenter(center);
map.requestRenderFrame();
view.setCenter(center);
view2D.setCenter(center);
}
this.lastCentroid = centroid;
};
@@ -84,12 +86,14 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
ol.interaction.TouchPan.prototype.handleTouchEnd =
function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
var view = map.getView();
var view2D = map.getView().getView2D();
goog.asserts.assertInstanceof(view2D, ol.View2D);
if (this.targetTouches.length === 0) {
if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {
var distance = this.kinetic_.getDistance();
var angle = this.kinetic_.getAngle();
var center = view.getCenter();
var center = view2D.getCenter();
goog.asserts.assert(goog.isDef(center));
this.kineticPreRenderFn_ = this.kinetic_.pan(center);
map.beforeRender(this.kineticPreRenderFn_);
var centerpx = map.getPixelFromCoordinate(center);
@@ -97,8 +101,8 @@ ol.interaction.TouchPan.prototype.handleTouchEnd =
centerpx[0] - distance * Math.cos(angle),
centerpx[1] - distance * Math.sin(angle)
]);
dest = view.constrainCenter(dest);
view.setCenter(dest);
dest = view2D.constrainCenter(dest);
view2D.setCenter(dest);
}
map.requestRenderFrame();
return false;
@@ -116,12 +120,13 @@ ol.interaction.TouchPan.prototype.handleTouchStart =
function(mapBrowserEvent) {
if (this.targetTouches.length > 0) {
var map = mapBrowserEvent.map;
var view = map.getView();
var view2D = map.getView().getView2D();
goog.asserts.assertInstanceof(view2D, ol.View2D);
this.lastCentroid = null;
map.requestRenderFrame();
if (!goog.isNull(this.kineticPreRenderFn_) &&
map.removePreRenderFunction(this.kineticPreRenderFn_)) {
view.setCenter(mapBrowserEvent.frameState.view2DState.center);
view2D.setCenter(mapBrowserEvent.frameState.view2DState.center);
this.kineticPreRenderFn_ = null;
}
if (this.kinetic_) {

View File

@@ -25,3 +25,10 @@ ol.IView.prototype.getView2D = function() {
*/
ol.IView.prototype.getView3D = function() {
};
/**
* @return {boolean} Is defined.
*/
ol.IView.prototype.isDef = function() {
};

View File

@@ -59,3 +59,10 @@ ol.IView2D.prototype.getRotation = function() {
*/
ol.IView2D.prototype.getView2DState = function() {
};
/**
* @return {boolean} Is defined.
*/
ol.IView2D.prototype.isDef = function() {
};

View File

@@ -8,3 +8,10 @@ goog.provide('ol.IView3D');
*/
ol.IView3D = function() {
};
/**
* @return {boolean} Is defined.
*/
ol.IView3D.prototype.isDef = function() {
};

View File

@@ -13,6 +13,7 @@ goog.require('ol.animation');
* @param {number} minVelocity Minimum velocity (pixels/millisecond).
* @param {number} delay Delay to consider to calculate the kinetic
* initial values (milliseconds).
* @struct
* @todo stability experimental
*/
ol.Kinetic = function(decay, minVelocity, delay) {

View File

@@ -1,7 +1,6 @@
goog.provide('ol.layer.Image');
goog.require('ol.layer.Layer');
goog.require('ol.source.Image');
@@ -15,11 +14,3 @@ ol.layer.Image = function(options) {
goog.base(this, options);
};
goog.inherits(ol.layer.Image, ol.layer.Layer);
/**
* @return {ol.source.Image} Single image source.
*/
ol.layer.Image.prototype.getImageSource = function() {
return /** @type {ol.source.Image} */ (this.getSource());
};

View File

@@ -84,10 +84,11 @@ ol.layer.Base.prototype.dispatchChangeEvent = function() {
/**
* @return {number} Brightness.
* @return {number|undefined} Brightness.
*/
ol.layer.Base.prototype.getBrightness = function() {
return /** @type {number} */ (this.get(ol.layer.LayerProperty.BRIGHTNESS));
return /** @type {number|undefined} */ (
this.get(ol.layer.LayerProperty.BRIGHTNESS));
};
goog.exportProperty(
ol.layer.Base.prototype,
@@ -96,10 +97,11 @@ goog.exportProperty(
/**
* @return {number} Contrast.
* @return {number|undefined} Contrast.
*/
ol.layer.Base.prototype.getContrast = function() {
return /** @type {number} */ (this.get(ol.layer.LayerProperty.CONTRAST));
return /** @type {number|undefined} */ (
this.get(ol.layer.LayerProperty.CONTRAST));
};
goog.exportProperty(
ol.layer.Base.prototype,
@@ -108,10 +110,10 @@ goog.exportProperty(
/**
* @return {number} Hue.
* @return {number|undefined} Hue.
*/
ol.layer.Base.prototype.getHue = function() {
return /** @type {number} */ (this.get(ol.layer.LayerProperty.HUE));
return /** @type {number|undefined} */ (this.get(ol.layer.LayerProperty.HUE));
};
goog.exportProperty(
ol.layer.Base.prototype,
@@ -168,10 +170,10 @@ ol.layer.Base.prototype.getLayerStatesArray = goog.abstractMethod;
/**
* @return {number} MaxResolution.
* @return {number|undefined} MaxResolution.
*/
ol.layer.Base.prototype.getMaxResolution = function() {
return /** @type {number} */ (
return /** @type {number|undefined} */ (
this.get(ol.layer.LayerProperty.MAX_RESOLUTION));
};
goog.exportProperty(
@@ -181,10 +183,10 @@ goog.exportProperty(
/**
* @return {number} MinResolution.
* @return {number|undefined} MinResolution.
*/
ol.layer.Base.prototype.getMinResolution = function() {
return /** @type {number} */ (
return /** @type {number|undefined} */ (
this.get(ol.layer.LayerProperty.MIN_RESOLUTION));
};
goog.exportProperty(
@@ -194,10 +196,11 @@ goog.exportProperty(
/**
* @return {number} Opacity.
* @return {number|undefined} Opacity.
*/
ol.layer.Base.prototype.getOpacity = function() {
return /** @type {number} */ (this.get(ol.layer.LayerProperty.OPACITY));
return /** @type {number|undefined} */ (
this.get(ol.layer.LayerProperty.OPACITY));
};
goog.exportProperty(
ol.layer.Base.prototype,
@@ -206,10 +209,11 @@ goog.exportProperty(
/**
* @return {number} Saturation.
* @return {number|undefined} Saturation.
*/
ol.layer.Base.prototype.getSaturation = function() {
return /** @type {number} */ (this.get(ol.layer.LayerProperty.SATURATION));
return /** @type {number|undefined} */ (
this.get(ol.layer.LayerProperty.SATURATION));
};
goog.exportProperty(
ol.layer.Base.prototype,
@@ -224,10 +228,11 @@ ol.layer.Base.prototype.getSourceState = goog.abstractMethod;
/**
* @return {boolean} Visible.
* @return {boolean|undefined} Visible.
*/
ol.layer.Base.prototype.getVisible = function() {
return /** @type {boolean} */ (this.get(ol.layer.LayerProperty.VISIBLE));
return /** @type {boolean|undefined} */ (
this.get(ol.layer.LayerProperty.VISIBLE));
};
goog.exportProperty(
ol.layer.Base.prototype,
@@ -253,7 +258,7 @@ goog.exportProperty(
* [2] https://github.com/WebKit/webkit/commit/8f4765e569
* [3] https://www.w3.org/Bugs/Public/show_bug.cgi?id=15647
*
* @param {number} brightness Brightness.
* @param {number|undefined} brightness Brightness.
*/
ol.layer.Base.prototype.setBrightness = function(brightness) {
this.set(ol.layer.LayerProperty.BRIGHTNESS, brightness);
@@ -269,7 +274,7 @@ goog.exportProperty(
* grey. A value of 1 will leave the contrast unchanged. Other values are
* linear multipliers on the effect (and values over 1 are permitted).
*
* @param {number} contrast Contrast.
* @param {number|undefined} contrast Contrast.
*/
ol.layer.Base.prototype.setContrast = function(contrast) {
this.set(ol.layer.LayerProperty.CONTRAST, contrast);
@@ -283,7 +288,7 @@ goog.exportProperty(
/**
* Apply a hue-rotation to the layer. A value of 0 will leave the hue
* unchanged. Other values are radians around the color circle.
* @param {number} hue Hue.
* @param {number|undefined} hue Hue.
*/
ol.layer.Base.prototype.setHue = function(hue) {
this.set(ol.layer.LayerProperty.HUE, hue);
@@ -295,7 +300,7 @@ goog.exportProperty(
/**
* @param {number} maxResolution MaxResolution.
* @param {number|undefined} maxResolution MaxResolution.
*/
ol.layer.Base.prototype.setMaxResolution = function(maxResolution) {
this.set(ol.layer.LayerProperty.MAX_RESOLUTION, maxResolution);
@@ -307,7 +312,7 @@ goog.exportProperty(
/**
* @param {number} minResolution MinResolution.
* @param {number|undefined} minResolution MinResolution.
*/
ol.layer.Base.prototype.setMinResolution = function(minResolution) {
this.set(ol.layer.LayerProperty.MIN_RESOLUTION, minResolution);
@@ -319,7 +324,7 @@ goog.exportProperty(
/**
* @param {number} opacity Opacity.
* @param {number|undefined} opacity Opacity.
*/
ol.layer.Base.prototype.setOpacity = function(opacity) {
this.set(ol.layer.LayerProperty.OPACITY, opacity);
@@ -336,7 +341,7 @@ goog.exportProperty(
* values are linear multipliers of the effect (and values over 1 are
* permitted).
*
* @param {number} saturation Saturation.
* @param {number|undefined} saturation Saturation.
*/
ol.layer.Base.prototype.setSaturation = function(saturation) {
this.set(ol.layer.LayerProperty.SATURATION, saturation);
@@ -348,7 +353,7 @@ goog.exportProperty(
/**
* @param {boolean} visible Visible.
* @param {boolean|undefined} visible Visible.
*/
ol.layer.Base.prototype.setVisible = function(visible) {
this.set(ol.layer.LayerProperty.VISIBLE, visible);

View File

@@ -142,11 +142,11 @@ ol.layer.Group.prototype.handleLayersRemove_ = function(collectionEvent) {
/**
* @return {ol.Collection} Collection of layers.
* @return {ol.Collection|undefined} Collection of layers.
* @todo stability experimental
*/
ol.layer.Group.prototype.getLayers = function() {
return /** @type {ol.Collection} */ (this.get(
return /** @type {ol.Collection|undefined} */ (this.get(
ol.layer.GroupProperty.LAYERS));
};
goog.exportProperty(
@@ -156,7 +156,7 @@ goog.exportProperty(
/**
* @param {ol.Collection} layers Collection of layers.
* @param {ol.Collection|undefined} layers Collection of layers.
* @todo stability experimental
*/
ol.layer.Group.prototype.setLayers = function(layers) {

View File

@@ -1,7 +1,6 @@
goog.provide('ol.layer.Tile');
goog.require('ol.layer.Layer');
goog.require('ol.source.Tile');
/**
@@ -44,14 +43,6 @@ goog.exportProperty(
ol.layer.Tile.prototype.getPreload);
/**
* @return {ol.source.Tile} Source.
*/
ol.layer.Tile.prototype.getTileSource = function() {
return /** @type {ol.source.Tile} */ (this.getSource());
};
/**
* @param {number} preload Preload.
* @todo stability experimental

View File

@@ -621,11 +621,16 @@ goog.exportProperty(
/**
* Get the collection of layers associated with this map.
* @return {ol.Collection} Layers.
* @return {ol.Collection|undefined} Layers.
* @todo stability experimental
*/
ol.Map.prototype.getLayers = function() {
return this.getLayerGroup().getLayers();
var layerGroup = this.getLayerGroup();
if (goog.isDef(layerGroup)) {
return layerGroup.getLayers();
} else {
return undefined;
}
};
@@ -661,7 +666,7 @@ goog.exportProperty(
/**
* Get the view associated with this map. This can be a 2D or 3D view. A 2D
* view manages properties such as center and resolution.
* @return {ol.View} View.
* @return {ol.View|undefined} View.
* @todo stability experimental
*/
ol.Map.prototype.getView = function() {

View File

@@ -59,6 +59,7 @@ ol.METERS_PER_UNIT[ol.proj.Units.METERS] = 1;
/**
* @constructor
* @param {olx.ProjectionOptions} options Projection options.
* @struct
* @todo stability experimental
*/
ol.proj.Projection = function(options) {
@@ -200,6 +201,7 @@ ol.proj.Projection.prototype.setDefaultTileGrid = function(tileGrid) {
* @param {Proj4js.Proj} proj4jsProj Proj4js projection.
* @param {olx.Proj4jsProjectionOptions} options Proj4js projection options.
* @private
* @struct
*/
ol.Proj4jsProjection_ = function(proj4jsProj, options) {

View File

@@ -1,5 +1,6 @@
goog.provide('ol.renderer.canvas.ImageLayer');
goog.require('goog.asserts');
goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('goog.vec.Mat4');
@@ -9,6 +10,7 @@ goog.require('ol.ViewHint');
goog.require('ol.layer.Image');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.source.Image');
@@ -47,15 +49,6 @@ ol.renderer.canvas.ImageLayer.prototype.getImage = function() {
};
/**
* @protected
* @return {ol.layer.Image} Single image layer.
*/
ol.renderer.canvas.ImageLayer.prototype.getImageLayer = function() {
return /** @type {ol.layer.Image} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -76,8 +69,10 @@ ol.renderer.canvas.ImageLayer.prototype.renderFrame =
var viewRotation = view2DState.rotation;
var image;
var imageLayer = this.getImageLayer();
var imageSource = imageLayer.getImageSource();
var imageLayer = this.getLayer();
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
var imageSource = imageLayer.getSource();
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
var hints = frameState.viewHints;

View File

@@ -13,6 +13,7 @@ goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.ImageLayer');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.renderer.canvas.TileLayer');
goog.require('ol.renderer.canvas.VectorLayer');
goog.require('ol.source.State');
@@ -114,8 +115,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
for (i = 0, ii = layersArray.length; i < ii; ++i) {
layer = layersArray[i];
layerRenderer =
/** @type {ol.renderer.canvas.Layer} */ (this.getLayerRenderer(layer));
layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.canvas.Layer);
layerState = layerStates[goog.getUid(layer)];
if (!layerState.visible ||
layerState.sourceState != ol.source.State.READY ||

View File

@@ -18,6 +18,7 @@ goog.require('ol.extent');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.source.Tile');
@@ -85,15 +86,6 @@ ol.renderer.canvas.TileLayer.prototype.getImage = function() {
};
/**
* @protected
* @return {ol.layer.Tile} Tile layer.
*/
ol.renderer.canvas.TileLayer.prototype.getTileLayer = function() {
return /** @type {ol.layer.Tile} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -174,8 +166,10 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
var view2DState = frameState.view2DState;
var projection = view2DState.projection;
var tileLayer = this.getTileLayer();
var tileSource = tileLayer.getTileSource();
var tileLayer = this.getLayer();
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
var tileSource = tileLayer.getSource();
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
var tileGrid = tileSource.getTileGrid();
if (goog.isNull(tileGrid)) {
tileGrid = ol.tilegrid.getForProjection(projection);

View File

@@ -1,5 +1,6 @@
goog.provide('ol.renderer.dom.ImageLayer');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.TagName');
goog.require('goog.events');
@@ -11,6 +12,7 @@ goog.require('ol.ViewHint');
goog.require('ol.dom');
goog.require('ol.layer.Image');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.source.Image');
@@ -35,7 +37,7 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) {
/**
* @private
* @type {goog.vec.Mat4.AnyType}
* @type {goog.vec.Mat4.Number}
*/
this.transform_ = goog.vec.Mat4.createNumberIdentity();
@@ -43,15 +45,6 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) {
goog.inherits(ol.renderer.dom.ImageLayer, ol.renderer.dom.Layer);
/**
* @protected
* @return {ol.layer.Image} Image layer.
*/
ol.renderer.dom.ImageLayer.prototype.getImageLayer = function() {
return /** @type {ol.layer.Image} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -64,8 +57,10 @@ ol.renderer.dom.ImageLayer.prototype.renderFrame =
var viewRotation = view2DState.rotation;
var image = this.image_;
var imageLayer = this.getImageLayer();
var imageSource = imageLayer.getImageSource();
var imageLayer = this.getLayer();
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
var imageSource = imageLayer.getSource();
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
var hints = frameState.viewHints;
@@ -123,7 +118,7 @@ ol.renderer.dom.ImageLayer.prototype.renderFrame =
/**
* @param {goog.vec.Mat4.AnyType} transform Transform.
* @param {goog.vec.Mat4.Number} transform Transform.
* @private
*/
ol.renderer.dom.ImageLayer.prototype.setTransform_ = function(transform) {

View File

@@ -9,6 +9,7 @@ goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.dom.ImageLayer');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.renderer.dom.TileLayer');
goog.require('ol.source.State');
@@ -93,8 +94,8 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) {
var layerKey;
for (layerKey in this.getLayerRenderers()) {
if (!(layerKey in layerStates)) {
layerRenderer = /** @type {ol.renderer.dom.Layer} */
(this.getLayerRendererByKey(layerKey));
layerRenderer = this.getLayerRendererByKey(layerKey);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.dom.Layer);
goog.dom.removeNode(layerRenderer.getTarget());
}
}

View File

@@ -20,6 +20,7 @@ goog.require('ol.dom');
goog.require('ol.extent');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.source.Tile');
goog.require('ol.tilegrid.TileGrid');
@@ -65,15 +66,6 @@ ol.renderer.dom.TileLayer = function(mapRenderer, tileLayer) {
goog.inherits(ol.renderer.dom.TileLayer, ol.renderer.dom.Layer);
/**
* @protected
* @return {ol.layer.Tile} Tile layer.
*/
ol.renderer.dom.TileLayer.prototype.getTileLayer = function() {
return /** @type {ol.layer.Tile} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -91,8 +83,10 @@ ol.renderer.dom.TileLayer.prototype.renderFrame =
var view2DState = frameState.view2DState;
var projection = view2DState.projection;
var tileLayer = this.getTileLayer();
var tileSource = tileLayer.getTileSource();
var tileLayer = this.getLayer();
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
var tileSource = tileLayer.getSource();
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
var tileGrid = tileSource.getTileGrid();
if (goog.isNull(tileGrid)) {
tileGrid = ol.tilegrid.getForProjection(projection);
@@ -312,7 +306,7 @@ ol.renderer.dom.TileLayerZ_ = function(tileGrid, tileCoordOrigin) {
/**
* @private
* @type {goog.vec.Mat4.AnyType}
* @type {goog.vec.Mat4.Number}
*/
this.transform_ = goog.vec.Mat4.createNumberIdentity();
@@ -421,7 +415,7 @@ ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent =
/**
* @param {goog.vec.Mat4.AnyType} transform Transform.
* @param {goog.vec.Mat4.Number} transform Transform.
*/
ol.renderer.dom.TileLayerZ_.prototype.setTransform = function(transform) {
if (!goog.vec.Mat4.equals(transform, this.transform_)) {

View File

@@ -20,6 +20,8 @@ goog.require('ol.source.Tile');
* @extends {goog.Disposable}
* @param {ol.renderer.Map} mapRenderer Map renderer.
* @param {ol.layer.Layer} layer Layer.
* @suppress {checkStructDictInheritance}
* @struct
*/
ol.renderer.Layer = function(mapRenderer, layer) {

View File

@@ -18,6 +18,8 @@ goog.require('ol.renderer.Layer');
* @extends {goog.Disposable}
* @param {Element} container Container.
* @param {ol.Map} map Map.
* @suppress {checkStructDictInheritance}
* @struct
*/
ol.renderer.Map = function(container, map) {

View File

@@ -12,6 +12,7 @@ goog.require('ol.ImageState');
goog.require('ol.ViewHint');
goog.require('ol.layer.Image');
goog.require('ol.renderer.webgl.Layer');
goog.require('ol.source.Image');
@@ -71,15 +72,6 @@ ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) {
};
/**
* @protected
* @return {ol.layer.Image} Tile layer.
*/
ol.renderer.webgl.ImageLayer.prototype.getImageLayer = function() {
return /** @type {ol.layer.Image} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -95,8 +87,10 @@ ol.renderer.webgl.ImageLayer.prototype.renderFrame =
var image = this.image_;
var texture = this.texture;
var imageLayer = this.getImageLayer();
var imageSource = imageLayer.getImageSource();
var imageLayer = this.getLayer();
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
var imageSource = imageLayer.getSource();
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
var hints = frameState.viewHints;

View File

@@ -8,6 +8,7 @@ goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
* @struct
*/
ol.renderer.webgl.map.shader.ColorFragment = function() {
goog.base(this, ol.renderer.webgl.map.shader.ColorFragment.SOURCE);
@@ -43,6 +44,7 @@ ol.renderer.webgl.map.shader.ColorFragment.SOURCE = goog.DEBUG ?
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
* @struct
*/
ol.renderer.webgl.map.shader.ColorVertex = function() {
goog.base(this, ol.renderer.webgl.map.shader.ColorVertex.SOURCE);
@@ -79,6 +81,7 @@ ol.renderer.webgl.map.shader.ColorVertex.SOURCE = goog.DEBUG ?
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
* @struct
*/
ol.renderer.webgl.map.shader.Color.Locations = function(gl, program) {

View File

@@ -8,6 +8,7 @@ goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
* @struct
*/
ol.renderer.webgl.map.shader.DefaultFragment = function() {
goog.base(this, ol.renderer.webgl.map.shader.DefaultFragment.SOURCE);
@@ -43,6 +44,7 @@ ol.renderer.webgl.map.shader.DefaultFragment.SOURCE = goog.DEBUG ?
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
* @struct
*/
ol.renderer.webgl.map.shader.DefaultVertex = function() {
goog.base(this, ol.renderer.webgl.map.shader.DefaultVertex.SOURCE);
@@ -79,6 +81,7 @@ ol.renderer.webgl.map.shader.DefaultVertex.SOURCE = goog.DEBUG ?
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
* @struct
*/
ol.renderer.webgl.map.shader.Default.Locations = function(gl, program) {

View File

@@ -20,6 +20,7 @@ goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.webgl.ImageLayer');
goog.require('ol.renderer.webgl.Layer');
goog.require('ol.renderer.webgl.TileLayer');
goog.require('ol.renderer.webgl.map.shader.Color');
goog.require('ol.renderer.webgl.map.shader.Default');
@@ -520,6 +521,7 @@ ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) {
this.textureCache_.clear();
this.textureCacheFrameMarkerCount_ = 0;
goog.object.forEach(this.getLayerRenderers(), function(layerRenderer) {
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
layerRenderer.handleWebGLContextLost();
});
};
@@ -596,6 +598,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
for (i = 0, ii = layersArray.length; i < ii; ++i) {
layer = layersArray[i];
layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
layerState = frameState.layerStates[goog.getUid(layer)];
if (layerState.visible &&
layerState.sourceState == ol.source.State.READY &&
@@ -682,6 +685,7 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
}
layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
gl.uniformMatrix4fv(
locations.u_texCoordMatrix, false, layerRenderer.getTexCoordMatrix());
gl.uniformMatrix4fv(locations.u_projectionMatrix, false,

View File

@@ -4,6 +4,7 @@
goog.provide('ol.renderer.webgl.TileLayer');
goog.require('goog.array');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('goog.vec.Mat4');
goog.require('goog.vec.Vec4');
@@ -16,6 +17,7 @@ goog.require('ol.layer.Tile');
goog.require('ol.math');
goog.require('ol.renderer.webgl.Layer');
goog.require('ol.renderer.webgl.tilelayer.shader');
goog.require('ol.source.Tile');
goog.require('ol.structs.Buffer');
@@ -92,15 +94,6 @@ ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() {
};
/**
* @protected
* @return {ol.layer.Tile} Tile layer.
*/
ol.renderer.webgl.TileLayer.prototype.getTileLayer = function() {
return /** @type {ol.layer.Tile} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -122,8 +115,10 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame =
var view2DState = frameState.view2DState;
var projection = view2DState.projection;
var tileLayer = this.getTileLayer();
var tileSource = tileLayer.getTileSource();
var tileLayer = this.getLayer();
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
var tileSource = tileLayer.getSource();
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
var tileGrid = tileSource.getTileGrid();
if (goog.isNull(tileGrid)) {
tileGrid = ol.tilegrid.getForProjection(projection);

View File

@@ -8,6 +8,7 @@ goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
* @struct
*/
ol.renderer.webgl.tilelayer.shader.Fragment = function() {
goog.base(this, ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE);
@@ -43,6 +44,7 @@ ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE = goog.DEBUG ?
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
* @struct
*/
ol.renderer.webgl.tilelayer.shader.Vertex = function() {
goog.base(this, ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE);
@@ -79,6 +81,7 @@ ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE = goog.DEBUG ?
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
* @struct
*/
ol.renderer.webgl.tilelayer.shader.Locations = function(gl, program) {

View File

@@ -109,7 +109,9 @@ ol.source.ImageWMS.prototype.getFeatureInfoForPixel =
var size = map.getSize();
goog.asserts.assert(goog.isDefAndNotNull(size));
var extent = view.calculateExtent(size);
var url = this.imageUrlFunction(extent, size, view.getProjection());
var projection = view.getProjection();
goog.asserts.assert(goog.isDef(projection));
var url = this.imageUrlFunction(extent, size, projection);
goog.asserts.assert(goog.isDef(url),
'ol.source.ImageWMS#imageUrlFunction does not return a URL');
ol.source.wms.getFeatureInfo(url, pixel, this.getFeatureInfoOptions_, success,

View File

@@ -157,11 +157,13 @@ ol.source.TileWMS.prototype.getFeatureInfoForPixel =
function(pixel, map, success, opt_error) {
var coord = map.getCoordinateFromPixel(pixel),
view2D = map.getView().getView2D(),
projection = view2D.getProjection(),
tileGrid = goog.isNull(this.tileGrid) ?
ol.tilegrid.getForProjection(projection) : this.tileGrid,
tileCoord = tileGrid.getTileCoordForCoordAndResolution(coord,
view2D.getResolution()),
projection = view2D.getProjection();
goog.asserts.assert(goog.isDef(projection));
var tileGrid = goog.isNull(this.tileGrid) ?
ol.tilegrid.getForProjection(projection) : this.tileGrid;
var resolution = view2D.getResolution();
goog.asserts.assert(goog.isDef(resolution));
var tileCoord = tileGrid.getTileCoordForCoordAndResolution(coord, resolution),
tileExtent = tileGrid.getTileCoordExtent(tileCoord),
offset = map.getPixelFromCoordinate(ol.extent.getTopLeft(tileExtent)),
url = this.tileUrlFunction(tileCoord, projection);

View File

@@ -28,6 +28,7 @@ ol.BUFFER_REPLACE_UNUSED_ENTRIES_WITH_NANS = goog.DEBUG;
* @param {Array.<number>=} opt_arr Array.
* @param {number=} opt_used Used.
* @param {number=} opt_usage Usage.
* @struct
* @todo stability experimental
*/
ol.structs.Buffer = function(opt_arr, opt_used, opt_usage) {

View File

@@ -9,6 +9,7 @@ goog.require('goog.asserts');
* This implementation is designed for the case when the number of distinct
* integer ranges is small.
* @constructor
* @struct
* @param {Array.<number>=} opt_arr Array.
*/
ol.structs.IntegerSet = function(opt_arr) {

View File

@@ -10,6 +10,7 @@ goog.require('goog.object');
* Object's properties (e.g. 'hasOwnProperty' is not allowed as a key). Expiring
* items from the cache is the responsibility of the user.
* @constructor
* @struct
* @template T
*/
ol.structs.LRUCache = function() {

View File

@@ -17,6 +17,7 @@ goog.require('goog.object');
* @constructor
* @param {function(T): number} priorityFunction Priority function.
* @param {function(T): string} keyFunction Key function.
* @struct
* @template T
*/
ol.structs.PriorityQueue = function(priorityFunction, keyFunction) {

View File

@@ -36,6 +36,7 @@ goog.require('ol.extent');
* @param {number} height Height.
* @param {Array.<ol.structs.RBushNode.<T>>} children Children.
* @param {?T} value Value.
* @struct
* @template T
*/
ol.structs.RBushNode = function(extent, height, children, value) {
@@ -160,6 +161,7 @@ ol.structs.RBushNode.prototype.isLeaf = function() {
* @constructor
* @param {number=} opt_maxEntries Max entries.
* @see https://github.com/mourner/rbush
* @struct
* @template T
*/
ol.structs.RBush = function(opt_maxEntries) {

View File

@@ -18,6 +18,7 @@ ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK = 2048;
* @constructor
* @extends {ol.structs.LRUCache.<ol.Tile>}
* @param {number=} opt_highWaterMark High water mark.
* @struct
*/
ol.TileCache = function(opt_highWaterMark) {

View File

@@ -28,6 +28,7 @@ ol.DEFAULT_MAX_ZOOM = 42;
/**
* @constructor
* @param {olx.tilegrid.TileGridOptions} options Tile grid options.
* @struct
* @todo stability experimental
*/
ol.tilegrid.TileGrid = function(options) {

View File

@@ -11,6 +11,7 @@ goog.require('ol.tilegrid.TileGrid');
* @constructor
* @extends {ol.tilegrid.TileGrid}
* @param {olx.tilegrid.WMTSOptions} options WMTS options.
* @struct
* @todo stability experimental
*/
ol.tilegrid.WMTS = function(options) {

View File

@@ -13,6 +13,7 @@ goog.require('ol.tilegrid.TileGrid');
* @constructor
* @extends {ol.tilegrid.TileGrid}
* @param {olx.tilegrid.XYZOptions} options XYZ options.
* @struct
* @todo stability experimental
*/
ol.tilegrid.XYZ = function(options) {

View File

@@ -22,6 +22,7 @@ ol.TilePriorityFunction;
* Tile priority function.
* @param {function(): ?} tileChangeCallback
* Function called on each tile change event.
* @struct
*/
ol.TileQueue = function(tilePriorityFunction, tileChangeCallback) {

View File

@@ -15,6 +15,7 @@ goog.require('ol.TileCoord');
* @param {number} maxX Maximum X.
* @param {number} minY Minimum Y.
* @param {number} maxY Maximum Y.
* @struct
*/
ol.TileRange = function(minX, maxX, minY, maxY) {

View File

@@ -97,7 +97,7 @@ ol.vec.Mat4.makeSaturation = function(matrix, value) {
* transformed vector into resultVec. The input vector is multiplied against the
* upper 2x4 matrix omitting the projective component.
*
* @param {goog.vec.Mat4.AnyType} mat The matrix supplying the transformation.
* @param {goog.vec.Mat4.Number} mat The matrix supplying the transformation.
* @param {Array.<number>} vec The 3 element vector to transform.
* @param {Array.<number>} resultVec The 3 element vector to receive the results
* (may be vec).

View File

@@ -47,13 +47,31 @@ ol.View.prototype.getHints = function() {
/**
* @inheritDoc
*/
ol.View.prototype.getView2D = goog.abstractMethod;
ol.View.prototype.getView2D = function() {
// FIXME for some reason, we can't use goog.abstractMethod here
goog.asserts.fail();
return null;
};
/**
* @inheritDoc
*/
ol.View.prototype.getView3D = goog.abstractMethod;
ol.View.prototype.getView3D = function() {
// FIXME for some reason, we can't use goog.abstractMethod here
goog.asserts.fail();
return null;
};
/**
* @inheritDoc
*/
ol.View.prototype.isDef = function() {
// FIXME for some reason, we can't use goog.abstractMethod here
goog.asserts.fail();
return false;
};
/**

View File

@@ -9,6 +9,7 @@ goog.require('ol.webgl');
/**
* @constructor
* @param {string} source Source.
* @struct
*/
ol.webgl.Shader = function(source) {
@@ -46,6 +47,7 @@ ol.webgl.Shader.prototype.isAnimated = goog.functions.FALSE;
* @constructor
* @extends {ol.webgl.Shader}
* @param {string} source Source.
* @struct
*/
ol.webgl.shader.Fragment = function(source) {
goog.base(this, source);
@@ -66,6 +68,7 @@ ol.webgl.shader.Fragment.prototype.getType = function() {
* @constructor
* @extends {ol.webgl.Shader}
* @param {string} source Source.
* @struct
*/
ol.webgl.shader.Vertex = function(source) {
goog.base(this, source);

View File

@@ -8,6 +8,7 @@ goog.require('ol.webgl.shader');
/**
* @constructor
* @extends {ol.webgl.shader.Fragment}
* @struct
*/
{{className}}Fragment = function() {
goog.base(this, {{className}}Fragment.SOURCE);
@@ -43,6 +44,7 @@ goog.addSingletonGetter({{className}}Fragment);
/**
* @constructor
* @extends {ol.webgl.shader.Vertex}
* @struct
*/
{{className}}Vertex = function() {
goog.base(this, {{className}}Vertex.SOURCE);
@@ -79,6 +81,7 @@ goog.addSingletonGetter({{className}}Vertex);
* @constructor
* @param {WebGLRenderingContext} gl GL.
* @param {WebGLProgram} program Program.
* @struct
*/
{{namespace}}.Locations = function(gl, program) {
{{#getUniforms}}