From 7ff95adbb1b4b97da32f57972e26a6122db615b9 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 6 Nov 2013 20:45:39 +0100 Subject: [PATCH] Add ol.geom.Geometry --- src/ol/geom/geometry.js | 75 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/ol/geom/geometry.js diff --git a/src/ol/geom/geometry.js b/src/ol/geom/geometry.js new file mode 100644 index 0000000000..fd40b82292 --- /dev/null +++ b/src/ol/geom/geometry.js @@ -0,0 +1,75 @@ +goog.provide('ol.geom.Geometry'); + +goog.require('goog.events.EventTarget'); +goog.require('goog.events.EventType'); + + +/** + * @enum {string} + */ +ol.geom.GeometryType = { + POINT: 'point', + LINE_STRING: 'line_string', + POLYGON: 'polygon' +}; + + + +/** + * @constructor + * @extends {goog.events.EventTarget} + */ +ol.geom.Geometry = function() { + + goog.base(this); + + /** + * @protected + * @type {number} + */ + this.revision = 0; + + /** + * @protected + * @type {ol.Extent|undefined} + */ + this.extent = undefined; + + /** + * @protected + * @type {number} + */ + this.extentRevision = -1; + +}; +goog.inherits(ol.geom.Geometry, goog.events.EventTarget); + + +/** + * FIXME empty description for jsdoc + */ +ol.geom.Geometry.prototype.dispatchChangeEvent = function() { + ++this.revision; + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + +/** + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} extent Extent. + */ +ol.geom.Geometry.prototype.getExtent = goog.abstractMethod; + + +/** + * @return {number} Revision. + */ +ol.geom.Geometry.prototype.getRevision = function() { + return this.revision; +}; + + +/** + * @return {ol.geom.GeometryType} Geometry type. + */ +ol.geom.Geometry.prototype.getType = goog.abstractMethod;