ui-canvas
ui-canvas copied to clipboard
Missing Matrix.mapPoints one parameter version iOS
@farfromrefug Can you please modify the function this way in canvas.ios.ts?
public mapPoints(...args) {
let src: number[];
let dstIndex: number = 0,
srcIndex: number = 0,
pointCount: number;
const pts: number[] = args[0];
if (args.length <= 2) {
src = args[args.length-1];
} else {
dstIndex = args[1] || 0;
srcIndex = args[3] || 0;
pointCount = args[4];
src = args[2];
}
src = src || pts;
pointCount = Math.floor(pointCount || src.length);
for (let index = 0; index < pointCount; index += 2) {
const cgPoint = CGPointApplyAffineTransform(CGPointMake(src[index + srcIndex], src[index + srcIndex + 1]), this._transform);
pts[index + dstIndex] = cgPoint.x;
pts[index + dstIndex + 1] = cgPoint.y;
}
}
@farfromrefug And I think actually the pointCount variable should be treated as actual count of x,y points, not the separated numeric values.
pointCount = Math.floor(pointCount || (src.length / 2));
for (let index = 0; index < pointCount; index++) {
const cgPoint = CGPointApplyAffineTransform(CGPointMake(src[index + srcIndex], src[index + srcIndex + 1]), this._transform);
pts[index * 2 + dstIndex] = cgPoint.x;
pts[index * 2 + dstIndex + 1] = cgPoint.y;
}