Refactor ol.geom.MultiPolygon
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
goog.provide('ol.geom.MultiPolygon');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('ol.extent');
|
||||
goog.require('ol.geom.Geometry');
|
||||
|
||||
|
||||
@@ -9,44 +7,39 @@ goog.require('ol.geom.Geometry');
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {ol.geom.Geometry}
|
||||
* @param {ol.geom.RawMultiPolygon} ringss Ringss.
|
||||
* @param {ol.geom.RawMultiPolygon} coordinates Coordinates.
|
||||
* @param {ol.geom.Layout=} opt_layout Layout.
|
||||
*/
|
||||
ol.geom.MultiPolygon = function(ringss) {
|
||||
ol.geom.MultiPolygon = function(coordinates, opt_layout) {
|
||||
|
||||
goog.base(this);
|
||||
|
||||
/**
|
||||
* @type {Array.<Array.<number>>}
|
||||
* @private
|
||||
* @type {ol.geom.RawMultiPolygon}
|
||||
*/
|
||||
this.ringss_ = ringss;
|
||||
this.endss_ = [];
|
||||
|
||||
this.setCoordinates(coordinates, opt_layout);
|
||||
|
||||
};
|
||||
goog.inherits(ol.geom.MultiPolygon, ol.geom.Geometry);
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @return {ol.geom.RawMultiPolygon} Coordinates.
|
||||
*/
|
||||
ol.geom.MultiPolygon.prototype.getExtent = function(opt_extent) {
|
||||
if (this.extentRevision != this.revision) {
|
||||
this.extent = ol.extent.createOrUpdateEmpty(this.extent);
|
||||
var ringss = this.ringss_;
|
||||
var i, ii;
|
||||
for (i = 0, ii = ringss.length; i < ii; ++i) {
|
||||
ol.extent.extendRings(this.extent, ringss[i]);
|
||||
}
|
||||
}
|
||||
goog.asserts.assert(goog.isDef(this.extent));
|
||||
return ol.extent.returnOrUpdate(this.extent, opt_extent);
|
||||
ol.geom.MultiPolygon.prototype.getCoordinates = function() {
|
||||
return ol.geom.inflateCoordinatesss(
|
||||
this.flatCoordinates, 0, this.endss_, this.stride);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @return {ol.geom.RawMultiPolygon} Ringss.
|
||||
* @return {Array.<Array.<number>>} Endss.
|
||||
*/
|
||||
ol.geom.MultiPolygon.prototype.getRingss = function() {
|
||||
return this.ringss_;
|
||||
ol.geom.MultiPolygon.prototype.getEndss = function() {
|
||||
return this.endss_;
|
||||
};
|
||||
|
||||
|
||||
@@ -59,30 +52,13 @@ ol.geom.MultiPolygon.prototype.getType = function() {
|
||||
|
||||
|
||||
/**
|
||||
* @param {ol.geom.RawMultiPolygon} ringss Ringss.
|
||||
* @param {ol.geom.RawMultiPolygon} coordinates Coordinates.
|
||||
* @param {ol.geom.Layout=} opt_layout Layout.
|
||||
*/
|
||||
ol.geom.MultiPolygon.prototype.setRingss = function(ringss) {
|
||||
this.ringss_ = ringss;
|
||||
ol.geom.MultiPolygon.prototype.setCoordinates =
|
||||
function(coordinates, opt_layout) {
|
||||
this.setLayout(opt_layout, coordinates, 3);
|
||||
ol.geom.deflateCoordinatesss(
|
||||
this.flatCoordinates, 0, coordinates, this.stride, this.endss_);
|
||||
this.dispatchChangeEvent();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
ol.geom.MultiPolygon.prototype.transform = function(transformFn) {
|
||||
var ringss = this.ringss_;
|
||||
var i, ii;
|
||||
for (i = 0, ii = ringss.length; i < ii; ++i) {
|
||||
var rings = ringss[i];
|
||||
var j, jj;
|
||||
for (j = 0, jj = rings.length; j < jj; ++j) {
|
||||
var coordinates = rings[j];
|
||||
var k, kk;
|
||||
for (k = 0, kk = coordinates.length; k < kk; ++k) {
|
||||
var coordinate = coordinates[k];
|
||||
transformFn(coordinate, coordinate, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -418,7 +418,7 @@ ol.replay.canvas.PolygonBatch.prototype.drawMultiPolygonGeometry =
|
||||
function(multiPolygonGeometry) {
|
||||
goog.asserts.assert(!goog.isNull(this.state_));
|
||||
this.setFillStrokeStyles_();
|
||||
var ringss = multiPolygonGeometry.getRingss();
|
||||
var ringss = multiPolygonGeometry.getCoordinates();
|
||||
var i, ii;
|
||||
for (i = 0, ii = ringss.length; i < ii; ++i) {
|
||||
this.drawRings_(ringss[i]);
|
||||
|
||||
Reference in New Issue
Block a user