Use FeatureLike typedef

This commit is contained in:
Frederic Junod
2018-12-12 15:03:54 +01:00
parent daa92c105d
commit 39a21f177d
4 changed files with 18 additions and 18 deletions

View File

@@ -13,7 +13,7 @@ class VectorContext {
* Render a geometry with a custom renderer. * Render a geometry with a custom renderer.
* *
* @param {import("../geom/SimpleGeometry.js").default} geometry Geometry. * @param {import("../geom/SimpleGeometry.js").default} geometry Geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
* @param {Function} renderer Renderer. * @param {Function} renderer Renderer.
*/ */
drawCustom(geometry, feature, renderer) {} drawCustom(geometry, feature, renderer) {}
@@ -52,43 +52,43 @@ class VectorContext {
/** /**
* @param {import("../geom/LineString.js").default|import("./Feature.js").default} lineStringGeometry Line string geometry. * @param {import("../geom/LineString.js").default|import("./Feature.js").default} lineStringGeometry Line string geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawLineString(lineStringGeometry, feature) {} drawLineString(lineStringGeometry, feature) {}
/** /**
* @param {import("../geom/MultiLineString.js").default|import("./Feature.js").default} multiLineStringGeometry MultiLineString geometry. * @param {import("../geom/MultiLineString.js").default|import("./Feature.js").default} multiLineStringGeometry MultiLineString geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawMultiLineString(multiLineStringGeometry, feature) {} drawMultiLineString(multiLineStringGeometry, feature) {}
/** /**
* @param {import("../geom/MultiPoint.js").default|import("./Feature.js").default} multiPointGeometry MultiPoint geometry. * @param {import("../geom/MultiPoint.js").default|import("./Feature.js").default} multiPointGeometry MultiPoint geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawMultiPoint(multiPointGeometry, feature) {} drawMultiPoint(multiPointGeometry, feature) {}
/** /**
* @param {import("../geom/MultiPolygon.js").default} multiPolygonGeometry MultiPolygon geometry. * @param {import("../geom/MultiPolygon.js").default} multiPolygonGeometry MultiPolygon geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawMultiPolygon(multiPolygonGeometry, feature) {} drawMultiPolygon(multiPolygonGeometry, feature) {}
/** /**
* @param {import("../geom/Point.js").default|import("./Feature.js").default} pointGeometry Point geometry. * @param {import("../geom/Point.js").default|import("./Feature.js").default} pointGeometry Point geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawPoint(pointGeometry, feature) {} drawPoint(pointGeometry, feature) {}
/** /**
* @param {import("../geom/Polygon.js").default|import("./Feature.js").default} polygonGeometry Polygon geometry. * @param {import("../geom/Polygon.js").default|import("./Feature.js").default} polygonGeometry Polygon geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawPolygon(polygonGeometry, feature) {} drawPolygon(polygonGeometry, feature) {}
/** /**
* @param {import("../geom/Geometry.js").default|import("./Feature.js").default} geometry Geometry. * @param {import("../geom/Geometry.js").default|import("./Feature.js").default} geometry Geometry.
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature. * @param {import("../Feature.js").FeatureLike} feature Feature.
*/ */
drawText(geometry, feature) {} drawText(geometry, feature) {}

View File

@@ -247,7 +247,7 @@ class CanvasBuilder extends VectorContext {
/** /**
* @protected * @protected
* @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry. * @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry.
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature. * @param {import("../../Feature.js").FeatureLike} feature Feature.
*/ */
beginGeometry(geometry, feature) { beginGeometry(geometry, feature) {
this.beginGeometryInstruction1_ = [CanvasInstruction.BEGIN_GEOMETRY, feature, 0]; this.beginGeometryInstruction1_ = [CanvasInstruction.BEGIN_GEOMETRY, feature, 0];
@@ -429,7 +429,7 @@ class CanvasBuilder extends VectorContext {
/** /**
* @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry. * @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry.
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature. * @param {import("../../Feature.js").FeatureLike} feature Feature.
*/ */
endGeometry(geometry, feature) { endGeometry(geometry, feature) {
this.beginGeometryInstruction1_[2] = this.instructions.length; this.beginGeometryInstruction1_[2] = this.instructions.length;

View File

@@ -402,7 +402,7 @@ class Executor {
/** /**
* @param {import("../canvas.js").DeclutterGroup} declutterGroup Declutter group. * @param {import("../canvas.js").DeclutterGroup} declutterGroup Declutter group.
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature. * @param {import("../../Feature.js").FeatureLike} feature Feature.
*/ */
renderDeclutter_(declutterGroup, feature) { renderDeclutter_(declutterGroup, feature) {
if (declutterGroup && declutterGroup.length > 5) { if (declutterGroup && declutterGroup.length > 5) {
@@ -473,7 +473,7 @@ class Executor {
* to skip. * to skip.
* @param {Array<*>} instructions Instructions array. * @param {Array<*>} instructions Instructions array.
* @param {boolean} snapToPixel Snap point symbols and text to integer pixels. * @param {boolean} snapToPixel Snap point symbols and text to integer pixels.
* @param {function((import("../../Feature.js").default|import("../Feature.js").default)): T|undefined} featureCallback Feature callback. * @param {function(import("../../Feature.js").FeatureLike): T|undefined} featureCallback Feature callback.
* @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this * @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this
* extent. * extent.
* @return {T|undefined} Callback result. * @return {T|undefined} Callback result.
@@ -525,14 +525,14 @@ class Executor {
// When the batch size gets too big, performance decreases. 200 is a good // When the batch size gets too big, performance decreases. 200 is a good
// balance between batch size and number of fill/stroke instructions. // balance between batch size and number of fill/stroke instructions.
const batchSize = this.instructions != instructions || this.overlaps ? 0 : 200; const batchSize = this.instructions != instructions || this.overlaps ? 0 : 200;
let /** @type {import("../../Feature.js").default|import("../Feature.js").default} */ feature; let /** @type {import("../../Feature.js").FeatureLike} */ feature;
let x, y; let x, y;
while (i < ii) { while (i < ii) {
const instruction = instructions[i]; const instruction = instructions[i];
const type = /** @type {CanvasInstruction} */ (instruction[0]); const type = /** @type {CanvasInstruction} */ (instruction[0]);
switch (type) { switch (type) {
case CanvasInstruction.BEGIN_GEOMETRY: case CanvasInstruction.BEGIN_GEOMETRY:
feature = /** @type {import("../../Feature.js").default|import("../Feature.js").default} */ (instruction[1]); feature = /** @type {import("../../Feature.js").FeatureLike} */ (instruction[1]);
if ((skipFeatures && skippedFeaturesHash[getUid(feature)]) || !feature.getGeometry()) { if ((skipFeatures && skippedFeaturesHash[getUid(feature)]) || !feature.getGeometry()) {
i = /** @type {number} */ (instruction[2]); i = /** @type {number} */ (instruction[2]);
} else if (opt_hitExtent !== undefined && !intersects( } else if (opt_hitExtent !== undefined && !intersects(
@@ -735,7 +735,7 @@ class Executor {
break; break;
case CanvasInstruction.END_GEOMETRY: case CanvasInstruction.END_GEOMETRY:
if (featureCallback !== undefined) { if (featureCallback !== undefined) {
feature = /** @type {import("../../Feature.js").default|import("../Feature.js").default} */ (instruction[1]); feature = /** @type {import("../../Feature.js").FeatureLike} */ (instruction[1]);
const result = featureCallback(feature); const result = featureCallback(feature);
if (result) { if (result) {
return result; return result;
@@ -843,7 +843,7 @@ class Executor {
* @param {number} viewRotation View rotation. * @param {number} viewRotation View rotation.
* @param {Object<string, boolean>} skippedFeaturesHash Ids of features * @param {Object<string, boolean>} skippedFeaturesHash Ids of features
* to skip. * to skip.
* @param {function((import("../../Feature.js").default|import("../Feature.js").default)): T=} opt_featureCallback * @param {function(import("../../Feature.js").FeatureLike): T=} opt_featureCallback
* Feature callback. * Feature callback.
* @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this * @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this
* extent. * extent.

View File

@@ -153,7 +153,7 @@ class ExecutorGroup {
* @param {number} rotation Rotation. * @param {number} rotation Rotation.
* @param {number} hitTolerance Hit tolerance in pixels. * @param {number} hitTolerance Hit tolerance in pixels.
* @param {Object<string, boolean>} skippedFeaturesHash Ids of features to skip. * @param {Object<string, boolean>} skippedFeaturesHash Ids of features to skip.
* @param {function((import("../../Feature.js").default|import("../Feature.js").default)): T} callback Feature callback. * @param {function(import("../../Feature.js").FeatureLike): T} callback Feature callback.
* @param {Object<string, import("../canvas.js").DeclutterGroup>} declutterReplays Declutter replays. * @param {Object<string, import("../canvas.js").DeclutterGroup>} declutterReplays Declutter replays.
* @return {T|undefined} Callback result. * @return {T|undefined} Callback result.
* @template T * @template T
@@ -205,7 +205,7 @@ class ExecutorGroup {
let builderType; let builderType;
/** /**
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature. * @param {import("../../Feature.js").FeatureLike} feature Feature.
* @return {?} Callback result. * @return {?} Callback result.
*/ */
function featureCallback(feature) { function featureCallback(feature) {