ui-canvas icon indicating copy to clipboard operation
ui-canvas copied to clipboard

Missing Matrix.mapPoints one parameter version iOS

Open stemyke opened this issue 4 years ago • 1 comments

@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;
        }
    }

stemyke avatar Feb 25 '21 19:02 stemyke

@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;
}

stemyke avatar Feb 25 '21 21:02 stemyke