Fix stride related bug in Canvas immediate API
This commit is contained in:
committed by
Bart van den Eijnden
parent
9dc17230c2
commit
d57a35ffcb
@@ -5,13 +5,15 @@ goog.require('goog.vec.Mat4');
|
||||
|
||||
/**
|
||||
* @param {Array.<number>} flatCoordinates Flat coordinates.
|
||||
* @param {number} offset Offset.
|
||||
* @param {number} end End.
|
||||
* @param {number} stride Stride.
|
||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||
* @param {Array.<number>=} opt_dest Destination.
|
||||
* @return {Array.<number>} Transformed coordinates.
|
||||
*/
|
||||
ol.geom.flat.transform.transform2D =
|
||||
function(flatCoordinates, stride, transform, opt_dest) {
|
||||
function(flatCoordinates, offset, end, stride, transform, opt_dest) {
|
||||
var m00 = goog.vec.Mat4.getElement(transform, 0, 0);
|
||||
var m10 = goog.vec.Mat4.getElement(transform, 1, 0);
|
||||
var m01 = goog.vec.Mat4.getElement(transform, 0, 1);
|
||||
@@ -21,7 +23,7 @@ ol.geom.flat.transform.transform2D =
|
||||
var dest = goog.isDef(opt_dest) ? opt_dest : [];
|
||||
var i = 0;
|
||||
var j, jj;
|
||||
for (j = 0, jj = flatCoordinates.length; j < jj; j += stride) {
|
||||
for (j = offset; j < end; j += stride) {
|
||||
var x = flatCoordinates[j];
|
||||
var y = flatCoordinates[j + 1];
|
||||
dest[i++] = m00 * x + m01 * y + m03;
|
||||
|
||||
@@ -269,6 +269,7 @@ ol.geom.transformSimpleGeometry2D =
|
||||
} else {
|
||||
var stride = simpleGeometry.getStride();
|
||||
return ol.geom.flat.transform.transform2D(
|
||||
flatCoordinates, stride, transform, opt_dest);
|
||||
flatCoordinates, 0, flatCoordinates.length, stride,
|
||||
transform, opt_dest);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user