diff --git a/packages/canvas-babylon/package.json b/packages/canvas-babylon/package.json index f1c30609..0d113b74 100644 --- a/packages/canvas-babylon/package.json +++ b/packages/canvas-babylon/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-babylon", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-chartjs/package.json b/packages/canvas-chartjs/package.json index 4b1db175..634a8c48 100644 --- a/packages/canvas-chartjs/package.json +++ b/packages/canvas-chartjs/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-chartjs", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "ChartJS", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-media/package.json b/packages/canvas-media/package.json index 9871283a..76562623 100644 --- a/packages/canvas-media/package.json +++ b/packages/canvas-media/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-media", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Canvas media", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-phaser-ce/package.json b/packages/canvas-phaser-ce/package.json index c024d4ab..cdf21dbf 100644 --- a/packages/canvas-phaser-ce/package.json +++ b/packages/canvas-phaser-ce/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-phaser-ce", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Tools for using Phaser-ce to build native 2D games in NativeScript 👾", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-phaser/package.json b/packages/canvas-phaser/package.json index a897178d..e1fe3bf4 100644 --- a/packages/canvas-phaser/package.json +++ b/packages/canvas-phaser/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-phaser", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Build awesome 2D games with Phaser.js and NativeScript", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-pixi/package.json b/packages/canvas-pixi/package.json index d75a41e3..01008df4 100644 --- a/packages/canvas-pixi/package.json +++ b/packages/canvas-pixi/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-pixi", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Plugin for using pixi.js in NativeScript", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-polyfill/package.json b/packages/canvas-polyfill/package.json index 1fe43bbf..80da49e4 100644 --- a/packages/canvas-polyfill/package.json +++ b/packages/canvas-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-polyfill", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Polyfill for making NativeScript compatible with web libs like pixi.js, three.js, phaser.js, babylon.js, etc....", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas-three/package.json b/packages/canvas-three/package.json index 2f4e342b..e6a2f437 100644 --- a/packages/canvas-three/package.json +++ b/packages/canvas-three/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas-three", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Utilities for using THREE.js on NativeScript", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas/Canvas/common.ts b/packages/canvas/Canvas/common.ts index f8e7c095..5a34f4a8 100644 --- a/packages/canvas/Canvas/common.ts +++ b/packages/canvas/Canvas/common.ts @@ -5,6 +5,32 @@ export interface ICanvasBase { on(eventName: 'ready', callback: (data: any) => void, thisArg?: any): void; } +const defaultGLOptions = { + alpha: true, + antialias: true, + depth: true, + failIfMajorPerformanceCaveat: false, + powerPreference: 'default', + premultipliedAlpha: true, + preserveDrawingBuffer: false, + stencil: false, + desynchronized: false, + xrCompatible: false, +}; + +const default2DOptions = { + alpha: true, + antialias: true, + depth: true, + failIfMajorPerformanceCaveat: false, + powerPreference: 'default', + premultipliedAlpha: true, + preserveDrawingBuffer: false, + stencil: false, + desynchronized: false, + xrCompatible: false, +}; + interface EventOptions { bubbles?: boolean; cancelable?: boolean; @@ -442,7 +468,7 @@ export abstract class CanvasBase extends View implements ICanvasBase { const hasPointerCallbacks = this._pointerMoveCallbacks.size > 0; const hasMouseCallbacks = this._mouseMoveCallbacks.size > 0; if (hasPointerCallbacks || hasMouseCallbacks) { - pointers.forEach((pointer) => { + for (const pointer of pointers) { const pointerId = pointer.ptrId; const previousEvent = this._lastPointerEventById[pointerId]; @@ -461,9 +487,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { isPrimary: pointerId === 0, }); - this._pointerMoveCallbacks.forEach((callback) => { + for (const callback of this._pointerMoveCallbacks) { callback(event); - }); + } } if (hasMouseCallbacks) { @@ -478,19 +504,19 @@ export abstract class CanvasBase extends View implements ICanvasBase { movementY: pointer.y - previousEvent.y, }); - this._mouseMoveCallbacks.forEach((callback) => { + for (const callback of this._mouseMoveCallbacks) { callback(event); - }); + } } this._lastPointerEventById[pointerId] = { pointerId, x: pointer.x, y: pointer.y }; - }); + } } if (this._touchMoveCallbacks.size > 0) { const changedTouches = []; - pointers.forEach((pointer) => { + for (const pointer of pointers) { changedTouches.push( new Touch({ identifier: pointer.ptrId, @@ -503,7 +529,7 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageY: pointer.y, }) ); - }); + } const touches = TouchList.fromList(this._touches); @@ -513,9 +539,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { changedTouches, }); - this._touchMoveCallbacks.forEach((callback) => { + for (const callback of this._touchMoveCallbacks) { callback(event); - }); + } } } @@ -538,9 +564,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageY: y, }); - this._pointerUpCallbacks.forEach((callback) => { + for (const callback of this._pointerUpCallbacks) { callback(event); - }); + } } if (hasMouseCallbacks) { @@ -553,16 +579,17 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageY: y, }); - this._mouseUpCallbacks.forEach((callback) => { + for (const callback of this._mouseUpCallbacks) { callback(event); - }); + } } delete this._lastPointerEventById[pointerId]; } if (this._touchEndCallbacks.size > 0) { - for (var i = 0; i < this._touches.length; i++) { + const length = this._touches.length; + for (var i = 0; i < length; i++) { if (this._touches[i].identifier == ptrId) { this._touches.splice(i, 1); break; @@ -577,9 +604,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { changedTouches: this._touches, }); - this._touchEndCallbacks.forEach((callback) => { + for (const callback of this._touchEndCallbacks) { callback(event); - }); + } } } @@ -602,9 +629,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageY: y, }); - this._pointerDownCallbacks.forEach((callback) => { + for (const callback of this._pointerDownCallbacks) { callback(event); - }); + } } if (hasMouseCallbacks) { @@ -617,9 +644,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageY: y, }); - this._mouseDownCallbacks.forEach((callback) => { + for (const callback of this._mouseDownCallbacks) { callback(event); - }); + } } this._lastPointerEventById[pointerId] = { pointerId, x, y }; @@ -646,9 +673,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { changedTouches: this._touches, }); - this._touchStartCallbacks.forEach((callback) => { + for (const callback of this._touchStartCallbacks) { callback(touchEvent); - }); + } } } @@ -668,9 +695,10 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageX: x, pageY: y, }); - this._pointerCancelCallbacks.forEach((callback) => { + + for (const callback of this._pointerCancelCallbacks) { callback(event); - }); + } } if (hasMouseCallbacks) { @@ -682,9 +710,10 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageX: x, pageY: y, }); - this._mouseCancelCallbacks.forEach((callback) => { + + for (const callback of this._mouseCancelCallbacks) { callback(event); - }); + } } } @@ -707,9 +736,10 @@ export abstract class CanvasBase extends View implements ICanvasBase { targetTouches: touches, changedTouches: this._touches, }); - this._touchCancelCallbacks.forEach((callback) => { + + for (const callback of this._touchCancelCallbacks) { callback(touchEvent); - }); + } } } @@ -721,7 +751,7 @@ export abstract class CanvasBase extends View implements ICanvasBase { const hasMouseWheel = this._mouseWheelCallbacks.size > 0; if (hasPointerCallbacks || hasMouseCallbacks || hasMouseWheel) { - data.pointers.forEach((pointer) => { + for (const pointer of data.pointers) { const pointerId = pointer.ptrId; const previousEvent = this._lastPointerEventById[pointerId]; @@ -739,9 +769,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { movementY: pointer.y - previousEvent.y, }); - this._pointerMoveCallbacks.forEach((callback) => { + for (const callback of this._pointerMoveCallbacks) { callback(event); - }); + } } if (hasMouseCallbacks) { @@ -756,9 +786,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { movementY: pointer.y - previousEvent.y, }); - this._mouseMoveCallbacks.forEach((callback) => { + for (const callback of this._mouseMoveCallbacks) { callback(event); - }); + } } if (hasMouseWheel) { @@ -769,19 +799,19 @@ export abstract class CanvasBase extends View implements ICanvasBase { deltaMode: data.deltaMode, }); - this._mouseWheelCallbacks.forEach((callback) => { + for (const callback of this._mouseWheelCallbacks) { callback(event); - }); + } } this._lastPointerEventById[pointerId] = { pointerId, x: pointer.x, y: pointer.y }; - }); + } } if (this._touchMoveCallbacks.size > 0) { const changedTouches = []; - data.pointers.forEach((pointer) => { + for (const pointer of data.pointers) { changedTouches.push( new Touch({ identifier: pointer.ptrId, @@ -794,7 +824,7 @@ export abstract class CanvasBase extends View implements ICanvasBase { pageY: pointer.y, }) ); - }); + } const touches = TouchList.fromList(this._touches); @@ -804,9 +834,9 @@ export abstract class CanvasBase extends View implements ICanvasBase { changedTouches, }); - this._touchMoveCallbacks.forEach((callback) => { + for (const callback of this._touchMoveCallbacks) { callback(event); - }); + } } } @@ -847,35 +877,12 @@ export abstract class CanvasBase extends View implements ICanvasBase { } _handleContextOptions(type, contextOpts?) { - const defaultGLOptions = { - alpha: true, - antialias: true, - depth: true, - failIfMajorPerformanceCaveat: false, - powerPreference: 'default', - premultipliedAlpha: true, - preserveDrawingBuffer: false, - stencil: false, - desynchronized: false, - xrCompatible: false, - }; if (!contextOpts) { if (type === '2d') { - return { - alpha: true, - antialias: true, - depth: true, - failIfMajorPerformanceCaveat: false, - powerPreference: 'default', - premultipliedAlpha: true, - preserveDrawingBuffer: false, - stencil: false, - desynchronized: false, - xrCompatible: false, - }; + return { ...default2DOptions }; } if (type.indexOf('webgl') > -1) { - return defaultGLOptions; + return { ...defaultGLOptions }; } } if (type === '2d') { @@ -885,10 +892,11 @@ export abstract class CanvasBase extends View implements ICanvasBase { return { alpha: true }; } } + const glOptions = { ...defaultGLOptions }; const setIfDefined = (prop, value) => { - const property = defaultGLOptions[prop]; + const property = glOptions[prop]; if (property !== undefined && typeof value === typeof property) { - defaultGLOptions[prop] = value; + glOptions[prop] = value; } }; if (type.indexOf('webgl') > -1) { @@ -901,7 +909,7 @@ export abstract class CanvasBase extends View implements ICanvasBase { setIfDefined('preserveDrawingBuffer', contextOpts.preserveDrawingBuffer); setIfDefined('stencil', contextOpts.stencil); setIfDefined('desynchronized', contextOpts.desynchronized); - return defaultGLOptions; + return glOptions; } return null; } diff --git a/packages/canvas/Canvas/index.android.ts b/packages/canvas/Canvas/index.android.ts index b812dfd0..33912b7f 100644 --- a/packages/canvas/Canvas/index.android.ts +++ b/packages/canvas/Canvas/index.android.ts @@ -164,12 +164,12 @@ export class Canvas extends CanvasBase { if (parent && parent.clientWidth === undefined && parent.clientHeight === undefined) { Object.defineProperty(parent, 'clientWidth', { get: function () { - return parent.getMeasuredWidth(); + return parent.getMeasuredWidth() / Screen.mainScreen.scale; }, }); Object.defineProperty(parent, 'clientHeight', { get: function () { - return parent.getMeasuredHeight(); + return parent.getMeasuredHeight() / Screen.mainScreen.scale; }, }); } diff --git a/packages/canvas/Canvas/index.ios.ts b/packages/canvas/Canvas/index.ios.ts index c1cd4b28..e1505d66 100644 --- a/packages/canvas/Canvas/index.ios.ts +++ b/packages/canvas/Canvas/index.ios.ts @@ -3,7 +3,7 @@ import { DOMMatrix } from '../Canvas2D'; import { CanvasRenderingContext2D } from '../Canvas2D/CanvasRenderingContext2D'; import { WebGLRenderingContext } from '../WebGL/WebGLRenderingContext'; import { WebGL2RenderingContext } from '../WebGL2/WebGL2RenderingContext'; -import { ImageSource, Utils, profile } from '@nativescript/core'; +import { ImageSource, Utils, profile, Screen } from '@nativescript/core'; declare var NSCCanvas, NSCCanvasListener; export * from './common'; @@ -109,7 +109,7 @@ export class Canvas extends CanvasBase { get width() { const measuredWidth = this.getMeasuredWidth(); if (measuredWidth !== 0) { - return measuredWidth; + return measuredWidth / Screen.mainScreen.scale; } return this._realSize.width; } @@ -124,7 +124,7 @@ export class Canvas extends CanvasBase { get height() { const measuredHeight = this.getMeasuredHeight(); if (measuredHeight !== 0) { - return measuredHeight; + return measuredHeight / Screen.mainScreen.scale; } return this._realSize.height; } @@ -144,7 +144,7 @@ export class Canvas extends CanvasBase { set iosOverflowSafeArea(value: boolean) { const window = UIApplication.sharedApplication.windows[0]; - const topPadding = window.safeAreaInsets.top; + //const topPadding = window.safeAreaInsets.top; const bottomPadding = window.safeAreaInsets.bottom; if (bottomPadding === 0) { this._iosOverflowSafeArea = false; @@ -169,12 +169,12 @@ export class Canvas extends CanvasBase { if (parent && parent.clientWidth === undefined && parent.clientHeight === undefined) { Object.defineProperty(parent, 'clientWidth', { get: function () { - return parent.getMeasuredWidth(); + return parent.getMeasuredWidth() / Screen.mainScreen.scale; }, }); Object.defineProperty(parent, 'clientHeight', { get: function () { - return parent.getMeasuredHeight(); + return parent.getMeasuredHeight() / Screen.mainScreen.scale; }, }); } @@ -247,18 +247,12 @@ export class Canvas extends CanvasBase { if (!this._2dContext) { this._layoutNative(); - const opts = Object.assign(defaultOpts, this._handleContextOptions(type, options)); - - opts['fontColor'] = this.parent?.style?.color?.android || -16777216; - - // this._canvas.initContext(type, opts.alpha, opts.antialias, opts.depth, opts.failIfMajorPerformanceCaveat, opts.powerPreference, opts.premultipliedAlpha, opts.preserveDrawingBuffer, opts.desynchronized, opts.xrCompatible); + const opts = { ...defaultOpts, ...this._handleContextOptions(type, options), fontColor: this.parent?.style?.color?.android || -16777216 }; const ctx = this._canvas.create2DContext(opts.alpha, opts.antialias, opts.depth, opts.failIfMajorPerformanceCaveat, opts.powerPreference, opts.premultipliedAlpha, opts.preserveDrawingBuffer, opts.stencil, opts.desynchronized, opts.xrCompatible, opts.fontColor); this._2dContext = new (CanvasRenderingContext2D as any)(ctx); - //this._2dContext = new (CanvasRenderingContext2D as any)(this._canvas, opts); - // // @ts-ignore (this._2dContext as any)._canvas = this; @@ -274,7 +268,7 @@ export class Canvas extends CanvasBase { } if (!this._webglContext) { this._layoutNative(); - const opts = Object.assign({ version: 'v1' }, Object.assign(defaultOpts, this._handleContextOptions(type, options))); + const opts = { version: 'v1', ...defaultOpts, ...this._handleContextOptions(type, options) }; this._canvas.initContext(type, opts.alpha, false, opts.depth, opts.failIfMajorPerformanceCaveat, opts.powerPreference, opts.premultipliedAlpha, opts.preserveDrawingBuffer, opts.stencil, opts.desynchronized, opts.xrCompatible); @@ -291,7 +285,7 @@ export class Canvas extends CanvasBase { if (!this._webgl2Context) { this._layoutNative(); - const opts = Object.assign({ version: 'v2' }, Object.assign(defaultOpts, this._handleContextOptions(type, options))); + const opts = { version: 'v2', ...defaultOpts, ...this._handleContextOptions(type, options) }; this._canvas.initContext(type, opts.alpha, false, opts.depth, opts.failIfMajorPerformanceCaveat, opts.powerPreference, opts.premultipliedAlpha, opts.preserveDrawingBuffer, opts.stencil, opts.desynchronized, opts.xrCompatible); diff --git a/packages/canvas/package.json b/packages/canvas/package.json index 8acf110c..29b83679 100644 --- a/packages/canvas/package.json +++ b/packages/canvas/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/canvas", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "DOM Canvas API for NativeScript", "main": "index", "typings": "index.d.ts", diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative index 7a28aa85..2017d4c3 100755 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative differ diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo index 11bcf8b0..dd70db67 100644 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json index 80d3258a..0540a670 100644 --- a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +++ b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json @@ -5982,126 +5982,126 @@ { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 10618, + "offset": 10620, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 10739, + "offset": 10741, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 11099, + "offset": 11103, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11160, + "offset": 11164, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11337, + "offset": 11341, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11340, + "offset": 11344, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11723, + "offset": 11727, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11750, + "offset": 11754, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 11782, + "offset": 11786, "length": 4, "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11886, + "offset": 11890, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11914, + "offset": 11918, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 12034, + "offset": 12038, "length": 4, "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12145, + "offset": 12149, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12278, + "offset": 12282, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12368, + "offset": 12372, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12403, + "offset": 12407, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12476, + "offset": 12480, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 13044, + "offset": 13048, "length": 1, "value": "0" }, @@ -6542,388 +6542,731 @@ { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 728, + "offset": 774, + "length": 2, + "value": "10" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 856, + "length": 2, + "value": "10" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 1089, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 768, + "offset": 1111, "length": 1, "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 772, + "offset": 1115, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 1441, - "length": 2, - "value": "-1" + "offset": 1380, + "length": 1, + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1448, - "length": 3, - "value": "0.0" + "kind": "IntegerLiteral", + "offset": 2351, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2413, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1456, + "kind": "StringLiteral", + "offset": 2478, "length": 3, - "value": "0.0" + "value": "\"{\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2497, + "length": 7, + "value": "\"event\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2506, + "length": 7, + "value": "\"scale\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2538, + "length": 8, + "value": "\"deltaX\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2576, + "length": 8, + "value": "\"deltaY\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2642, + "length": 8, + "value": "\"deltaZ\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 1666, - "length": 2, - "value": "-3" + "offset": 2652, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1673, - "length": 3, - "value": "0.0" + "kind": "StringLiteral", + "offset": 2675, + "length": 11, + "value": "\"deltaMode\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1681, - "length": 3, - "value": "0.0" + "kind": "IntegerLiteral", + "offset": 2688, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1871, - "length": 3, - "value": "\"{\"" + "offset": 2711, + "length": 14, + "value": "\"isInProgress\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2782, + "length": 1, + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1890, - "length": 7, - "value": "\"event\"" + "offset": 2802, + "length": 17, + "value": "\"\"pointers\": [\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2838, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1899, - "length": 19, - "value": "\"mouseMoveCallback\"" + "offset": 2899, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1940, + "offset": 2922, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1976, + "offset": 3057, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2004, + "offset": 3101, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 3126, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2055, - "length": 15, - "value": "\",\"press\": {\"" + "offset": 3182, + "length": 4, + "value": "\"},\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3230, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3272, + "length": 3, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3299, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3529, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2090, + "offset": 3548, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2099, - "length": 19, - "value": "\"mouseDownCallback\"" + "offset": 3557, + "length": 6, + "value": "\"down\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2144, + "offset": 3585, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2183, + "offset": 3621, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3649, + "length": 3, + "value": "\"y\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 3662, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3683, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2237, - "length": 17, - "value": "\",\"release\": {\"" + "offset": 3908, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2274, + "offset": 3927, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2283, - "length": 17, - "value": "\"mouseUpCallback\"" + "offset": 3936, + "length": 4, + "value": "\"up\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2326, + "offset": 3962, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2365, + "offset": 3998, "length": 3, - "value": "\"}\"" + "value": "\"x\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 4026, + "length": 3, + "value": "\"y\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 4039, + "length": 4, + "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2394, + "offset": 4060, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2603, + "offset": 4279, "length": 3, "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2622, + "offset": 4298, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2631, - "length": 26, - "value": "\"touchCoordinatesCallback\"" + "offset": 4307, + "length": 8, + "value": "\"cancel\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2679, + "offset": 4337, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2715, + "offset": 4373, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2743, + "offset": 4401, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 4414, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2770, + "offset": 4434, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "IntegerLiteral", - "offset": 3013, - "length": 1, - "value": "0" + "kind": "StringLiteral", + "offset": 4705, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "IntegerLiteral", - "offset": 3081, - "length": 1, - "value": "1" + "kind": "StringLiteral", + "offset": 4728, + "length": 7, + "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3100, - "length": 3, - "value": "\"[\"" + "offset": 4737, + "length": 6, + "value": "\"move\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 3121, + "offset": 4789, "length": 1, - "value": "0" + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3208, - "length": 3, - "value": "\"{\"" + "offset": 4813, + "length": 17, + "value": "\"\"pointers\": [\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "StringLiteral", - "offset": 3231, - "length": 7, - "value": "\"event\"" + "kind": "IntegerLiteral", + "offset": 4853, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3240, - "length": 26, - "value": "\"touchCoordinatesCallback\"" + "offset": 4922, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3292, + "offset": 4949, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3330, + "offset": 5092, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3429, + "offset": 5140, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 5165, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3559, + "offset": 5229, "length": 4, "value": "\"},\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3607, + "offset": 5285, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3649, + "offset": 5339, "length": 3, "value": "\"]\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3808, - "length": 27, + "offset": 5374, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7591, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7614, + "length": 46, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3817, + "offset": 7623, "length": 1, "value": "\"\": \"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3831, + "offset": 7637, "length": 1, - "value": "\"\",\"" + "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3932, - "length": 23, + "offset": 7650, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7655, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7659, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7758, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7781, + "length": 44, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3941, + "offset": 7790, "length": 1, "value": "\"\": \"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3953, + "offset": 7802, "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7814, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7819, + "length": 3, "value": "\",\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4056, - "length": 23, + "offset": 7824, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7927, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7950, + "length": 44, + "value": "\"\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7959, + "length": 1, + "value": "\"\": \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7971, + "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7983, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7988, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7993, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 8098, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8121, + "length": 44, + "value": "\"\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8130, + "length": 1, + "value": "\"\": \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8142, + "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8154, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8159, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8164, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 8268, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8291, + "length": 44, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4065, + "offset": 8300, "length": 1, "value": "\"\": \"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4077, + "offset": 8312, "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8324, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8329, + "length": 3, "value": "\",\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8334, + "length": 1, + "value": "\"\"" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative index 03f17ef4..bb9b22bb 100644 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative differ diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative index efa5690d..2c94b616 100755 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative differ diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo index 84fceeff..7dadb8a5 100644 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo differ diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo index 6571f0bb..62f1e538 100644 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo differ diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json index 80d3258a..0540a670 100644 --- a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +++ b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json @@ -5982,126 +5982,126 @@ { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 10618, + "offset": 10620, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 10739, + "offset": 10741, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 11099, + "offset": 11103, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11160, + "offset": 11164, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11337, + "offset": 11341, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11340, + "offset": 11344, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11723, + "offset": 11727, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11750, + "offset": 11754, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 11782, + "offset": 11786, "length": 4, "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11886, + "offset": 11890, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11914, + "offset": 11918, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 12034, + "offset": 12038, "length": 4, "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12145, + "offset": 12149, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12278, + "offset": 12282, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12368, + "offset": 12372, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12403, + "offset": 12407, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12476, + "offset": 12480, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 13044, + "offset": 13048, "length": 1, "value": "0" }, @@ -6542,388 +6542,731 @@ { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 728, + "offset": 774, + "length": 2, + "value": "10" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 856, + "length": 2, + "value": "10" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 1089, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 768, + "offset": 1111, "length": 1, "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 772, + "offset": 1115, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 1441, - "length": 2, - "value": "-1" + "offset": 1380, + "length": 1, + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1448, - "length": 3, - "value": "0.0" + "kind": "IntegerLiteral", + "offset": 2351, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2413, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1456, + "kind": "StringLiteral", + "offset": 2478, "length": 3, - "value": "0.0" + "value": "\"{\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2497, + "length": 7, + "value": "\"event\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2506, + "length": 7, + "value": "\"scale\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2538, + "length": 8, + "value": "\"deltaX\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2576, + "length": 8, + "value": "\"deltaY\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2642, + "length": 8, + "value": "\"deltaZ\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 1666, - "length": 2, - "value": "-3" + "offset": 2652, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1673, - "length": 3, - "value": "0.0" + "kind": "StringLiteral", + "offset": 2675, + "length": 11, + "value": "\"deltaMode\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1681, - "length": 3, - "value": "0.0" + "kind": "IntegerLiteral", + "offset": 2688, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1871, - "length": 3, - "value": "\"{\"" + "offset": 2711, + "length": 14, + "value": "\"isInProgress\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2782, + "length": 1, + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1890, - "length": 7, - "value": "\"event\"" + "offset": 2802, + "length": 17, + "value": "\"\"pointers\": [\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2838, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1899, - "length": 19, - "value": "\"mouseMoveCallback\"" + "offset": 2899, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1940, + "offset": 2922, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1976, + "offset": 3057, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2004, + "offset": 3101, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 3126, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2055, - "length": 15, - "value": "\",\"press\": {\"" + "offset": 3182, + "length": 4, + "value": "\"},\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3230, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3272, + "length": 3, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3299, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3529, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2090, + "offset": 3548, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2099, - "length": 19, - "value": "\"mouseDownCallback\"" + "offset": 3557, + "length": 6, + "value": "\"down\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2144, + "offset": 3585, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2183, + "offset": 3621, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3649, + "length": 3, + "value": "\"y\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 3662, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3683, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2237, - "length": 17, - "value": "\",\"release\": {\"" + "offset": 3908, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2274, + "offset": 3927, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2283, - "length": 17, - "value": "\"mouseUpCallback\"" + "offset": 3936, + "length": 4, + "value": "\"up\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2326, + "offset": 3962, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2365, + "offset": 3998, "length": 3, - "value": "\"}\"" + "value": "\"x\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 4026, + "length": 3, + "value": "\"y\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 4039, + "length": 4, + "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2394, + "offset": 4060, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2603, + "offset": 4279, "length": 3, "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2622, + "offset": 4298, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2631, - "length": 26, - "value": "\"touchCoordinatesCallback\"" + "offset": 4307, + "length": 8, + "value": "\"cancel\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2679, + "offset": 4337, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2715, + "offset": 4373, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2743, + "offset": 4401, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 4414, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2770, + "offset": 4434, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "IntegerLiteral", - "offset": 3013, - "length": 1, - "value": "0" + "kind": "StringLiteral", + "offset": 4705, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "IntegerLiteral", - "offset": 3081, - "length": 1, - "value": "1" + "kind": "StringLiteral", + "offset": 4728, + "length": 7, + "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3100, - "length": 3, - "value": "\"[\"" + "offset": 4737, + "length": 6, + "value": "\"move\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 3121, + "offset": 4789, "length": 1, - "value": "0" + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3208, - "length": 3, - "value": "\"{\"" + "offset": 4813, + "length": 17, + "value": "\"\"pointers\": [\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "StringLiteral", - "offset": 3231, - "length": 7, - "value": "\"event\"" + "kind": "IntegerLiteral", + "offset": 4853, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3240, - "length": 26, - "value": "\"touchCoordinatesCallback\"" + "offset": 4922, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3292, + "offset": 4949, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3330, + "offset": 5092, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3429, + "offset": 5140, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 5165, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3559, + "offset": 5229, "length": 4, "value": "\"},\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3607, + "offset": 5285, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3649, + "offset": 5339, "length": 3, "value": "\"]\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3808, - "length": 27, + "offset": 5374, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7591, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7614, + "length": 46, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3817, + "offset": 7623, "length": 1, "value": "\"\": \"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3831, + "offset": 7637, "length": 1, - "value": "\"\",\"" + "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3932, - "length": 23, + "offset": 7650, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7655, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7659, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7758, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7781, + "length": 44, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3941, + "offset": 7790, "length": 1, "value": "\"\": \"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3953, + "offset": 7802, "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7814, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7819, + "length": 3, "value": "\",\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4056, - "length": 23, + "offset": 7824, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7927, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7950, + "length": 44, + "value": "\"\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7959, + "length": 1, + "value": "\"\": \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7971, + "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7983, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7988, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7993, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 8098, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8121, + "length": 44, + "value": "\"\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8130, + "length": 1, + "value": "\"\": \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8142, + "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8154, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8159, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8164, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 8268, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8291, + "length": 44, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4065, + "offset": 8300, "length": 1, "value": "\"\": \"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4077, + "offset": 8312, "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8324, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8329, + "length": 3, "value": "\",\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8334, + "length": 1, + "value": "\"\"" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json index 80d3258a..0540a670 100644 --- a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +++ b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -5982,126 +5982,126 @@ { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 10618, + "offset": 10620, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 10739, + "offset": 10741, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 11099, + "offset": 11103, "length": 5, "value": "false" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11160, + "offset": 11164, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11337, + "offset": 11341, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11340, + "offset": 11344, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11723, + "offset": 11727, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11750, + "offset": 11754, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 11782, + "offset": 11786, "length": 4, "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11886, + "offset": 11890, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 11914, + "offset": 11918, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "BooleanLiteral", - "offset": 12034, + "offset": 12038, "length": 4, "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12145, + "offset": 12149, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12278, + "offset": 12282, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12368, + "offset": 12372, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12403, + "offset": 12407, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 12476, + "offset": 12480, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/CanvasNative\/Source\/NSCCanvas.swift", "kind": "IntegerLiteral", - "offset": 13044, + "offset": 13048, "length": 1, "value": "0" }, @@ -6542,388 +6542,731 @@ { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 728, + "offset": 774, + "length": 2, + "value": "10" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 856, + "length": 2, + "value": "10" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 1089, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 768, + "offset": 1111, "length": 1, "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 772, + "offset": 1115, "length": 1, "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 1441, - "length": 2, - "value": "-1" + "offset": 1380, + "length": 1, + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1448, - "length": 3, - "value": "0.0" + "kind": "IntegerLiteral", + "offset": 2351, + "length": 1, + "value": "0" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2413, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1456, + "kind": "StringLiteral", + "offset": 2478, "length": 3, - "value": "0.0" + "value": "\"{\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2497, + "length": 7, + "value": "\"event\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2506, + "length": 7, + "value": "\"scale\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2538, + "length": 8, + "value": "\"deltaX\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2576, + "length": 8, + "value": "\"deltaY\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 2642, + "length": 8, + "value": "\"deltaZ\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 1666, - "length": 2, - "value": "-3" + "offset": 2652, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1673, - "length": 3, - "value": "0.0" + "kind": "StringLiteral", + "offset": 2675, + "length": 11, + "value": "\"deltaMode\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "FloatLiteral", - "offset": 1681, - "length": 3, - "value": "0.0" + "kind": "IntegerLiteral", + "offset": 2688, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1871, - "length": 3, - "value": "\"{\"" + "offset": 2711, + "length": 14, + "value": "\"isInProgress\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2782, + "length": 1, + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1890, - "length": 7, - "value": "\"event\"" + "offset": 2802, + "length": 17, + "value": "\"\"pointers\": [\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "IntegerLiteral", + "offset": 2838, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1899, - "length": 19, - "value": "\"mouseMoveCallback\"" + "offset": 2899, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1940, + "offset": 2922, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 1976, + "offset": 3057, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2004, + "offset": 3101, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 3126, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2055, - "length": 15, - "value": "\",\"press\": {\"" + "offset": 3182, + "length": 4, + "value": "\"},\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3230, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3272, + "length": 3, + "value": "\"]\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3299, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3529, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2090, + "offset": 3548, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2099, - "length": 19, - "value": "\"mouseDownCallback\"" + "offset": 3557, + "length": 6, + "value": "\"down\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2144, + "offset": 3585, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2183, + "offset": 3621, + "length": 3, + "value": "\"x\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3649, + "length": 3, + "value": "\"y\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 3662, + "length": 4, + "value": "true" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 3683, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2237, - "length": 17, - "value": "\",\"release\": {\"" + "offset": 3908, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2274, + "offset": 3927, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2283, - "length": 17, - "value": "\"mouseUpCallback\"" + "offset": 3936, + "length": 4, + "value": "\"up\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2326, + "offset": 3962, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2365, + "offset": 3998, "length": 3, - "value": "\"}\"" + "value": "\"x\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 4026, + "length": 3, + "value": "\"y\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 4039, + "length": 4, + "value": "true" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2394, + "offset": 4060, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2603, + "offset": 4279, "length": 3, "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2622, + "offset": 4298, "length": 7, "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2631, - "length": 26, - "value": "\"touchCoordinatesCallback\"" + "offset": 4307, + "length": 8, + "value": "\"cancel\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2679, + "offset": 4337, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2715, + "offset": 4373, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2743, + "offset": 4401, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 4414, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 2770, + "offset": 4434, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "IntegerLiteral", - "offset": 3013, - "length": 1, - "value": "0" + "kind": "StringLiteral", + "offset": 4705, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "IntegerLiteral", - "offset": 3081, - "length": 1, - "value": "1" + "kind": "StringLiteral", + "offset": 4728, + "length": 7, + "value": "\"event\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3100, - "length": 3, - "value": "\"[\"" + "offset": 4737, + "length": 6, + "value": "\"move\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "IntegerLiteral", - "offset": 3121, + "offset": 4789, "length": 1, - "value": "0" + "value": "1" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3208, - "length": 3, - "value": "\"{\"" + "offset": 4813, + "length": 17, + "value": "\"\"pointers\": [\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", - "kind": "StringLiteral", - "offset": 3231, - "length": 7, - "value": "\"event\"" + "kind": "IntegerLiteral", + "offset": 4853, + "length": 1, + "value": "0" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3240, - "length": 26, - "value": "\"touchCoordinatesCallback\"" + "offset": 4922, + "length": 3, + "value": "\"{\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3292, + "offset": 4949, "length": 7, "value": "\"ptrId\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3330, + "offset": 5092, "length": 3, "value": "\"x\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3429, + "offset": 5140, "length": 3, "value": "\"y\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 5165, + "length": 4, + "value": "true" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3559, + "offset": 5229, "length": 4, "value": "\"},\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3607, + "offset": 5285, "length": 3, "value": "\"}\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3649, + "offset": 5339, "length": 3, "value": "\"]\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3808, - "length": 27, + "offset": 5374, + "length": 3, + "value": "\"}\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7591, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7614, + "length": 46, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3817, + "offset": 7623, "length": 1, "value": "\"\": \"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3831, + "offset": 7637, "length": 1, - "value": "\"\",\"" + "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3932, - "length": 23, + "offset": 7650, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7655, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7659, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7758, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7781, + "length": 44, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3941, + "offset": 7790, "length": 1, "value": "\"\": \"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 3953, + "offset": 7802, "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7814, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7819, + "length": 3, "value": "\",\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4056, - "length": 23, + "offset": 7824, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 7927, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7950, + "length": 44, + "value": "\"\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7959, + "length": 1, + "value": "\"\": \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7971, + "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7983, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7988, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 7993, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 8098, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8121, + "length": 44, + "value": "\"\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8130, + "length": 1, + "value": "\"\": \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8142, + "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8154, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8159, + "length": 3, + "value": "\",\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8164, + "length": 1, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "BooleanLiteral", + "offset": 8268, + "length": 5, + "value": "false" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8291, + "length": 44, "value": "\"\"\"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4065, + "offset": 8300, "length": 1, "value": "\"\": \"" }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", - "offset": 4077, + "offset": 8312, "length": 1, + "value": "\" \"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8324, + "length": 2, + "value": "\"\"" + }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8329, + "length": 3, "value": "\",\"" }, + { + "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", + "kind": "StringLiteral", + "offset": 8334, + "length": 1, + "value": "\"\"" + }, { "filePath": "\/Users\/triniwiz\/Documents\/GitHub\/canvas\/packages\/canvas\/src-native\/canvas-ios\/NSCTouchHandler.swift", "kind": "StringLiteral", diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources index f6945a64..27a4770d 100644 --- a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +++ b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources @@ -26,15 +26,15 @@ Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo - s2O8zu7+zSF8xmfAnHoPYVp95KU= + 3Kc4otquL0KPSV5dFXqL2IxOC34= Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo - YH+22m77RxHI9DVQ9meVsiYtGzI= + RHn8aO+9BfgF2nhok70XTkh6yV8= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json - VvVQe/tUEDF8o1DlGexUdU7Z/Us= + gw9C2PHsEzwxqSPCYQqiUPRuxGo= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -50,11 +50,11 @@ Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftmodule - JgDYUxY3r8QyUp4+epqE46jD2CI= + 4stDgW5zGl0sCT6AtIibk5cZuG4= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json - VvVQe/tUEDF8o1DlGexUdU7Z/Us= + gw9C2PHsEzwxqSPCYQqiUPRuxGo= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -70,7 +70,7 @@ Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftmodule - FXDKnlZQQg6p7Nuo8L1q3SgvZ3s= + Vnye8Ktr8zC4WOc7PhaANB9z4Ek= Modules/module.modulemap @@ -115,21 +115,21 @@ hash2 - hxLJmyzZnuDsezkOFCccnJVxHHP1/g2LODHqq0NfqhQ= + c1Z8MNIbhelklIkhG59n31ahdFEVjSW9rF6Kj1XtKT4= Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo hash2 - oefD7WUavKacC3WoLw47AfU1YUyyPLgHkcYBt2G3n1Q= + Ug4eFaEMW/gKLMvWCht7Y6rzE5p21gBiD7ahdYuFwKs= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json hash2 - emlXnrS3XchAMPLTLb9PEWijW0lYJaaAoUEC1wW2eCU= + ZBub4yj+4HOe9+wZz/hu40urzvQAbvP5q7S/peQLoYo= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -157,14 +157,14 @@ hash2 - dMXqXPB6v0xHDpclqQqccSGBGAvvQ328ARjRlPpezuU= + k3DzwzFOeqHIpIHBgLAo2XkLrwVZTd4lAMh/IELRLKg= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json hash2 - emlXnrS3XchAMPLTLb9PEWijW0lYJaaAoUEC1wW2eCU= + ZBub4yj+4HOe9+wZz/hu40urzvQAbvP5q7S/peQLoYo= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -192,7 +192,7 @@ hash2 - 0r6vSyIp26z6HqQgtBr2aHt9ip1oNwJD9z6HnNeHYRI= + DiYhme2U+0pQL+A91zGlJBaDmGtICkHvXN/K2+Cx/jI= Modules/module.modulemap diff --git a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative index 46a712c9..e6fc426a 100644 Binary files a/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative and b/packages/canvas/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative differ diff --git a/packages/canvas/src-native/canvas-ios/CanvasNative.xcodeproj/project.xcworkspace/xcuserdata/triniwiz.xcuserdatad/UserInterfaceState.xcuserstate b/packages/canvas/src-native/canvas-ios/CanvasNative.xcodeproj/project.xcworkspace/xcuserdata/triniwiz.xcuserdatad/UserInterfaceState.xcuserstate index ba236ccf..ebdffa6d 100644 Binary files a/packages/canvas/src-native/canvas-ios/CanvasNative.xcodeproj/project.xcworkspace/xcuserdata/triniwiz.xcuserdatad/UserInterfaceState.xcuserstate and b/packages/canvas/src-native/canvas-ios/CanvasNative.xcodeproj/project.xcworkspace/xcuserdata/triniwiz.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/packages/canvas/src-native/canvas-ios/CanvasNative/Source/NSCCanvas.swift b/packages/canvas/src-native/canvas-ios/CanvasNative/Source/NSCCanvas.swift index e7187c60..ac0c09a3 100644 --- a/packages/canvas/src-native/canvas-ios/CanvasNative/Source/NSCCanvas.swift +++ b/packages/canvas/src-native/canvas-ios/CanvasNative/Source/NSCCanvas.swift @@ -340,7 +340,7 @@ public class NSCCanvas: UIView, GLKViewDelegate { addSubview(glkView) self.isOpaque = false addGestureRecognizer(handler!.gestureRecognizer!) - addGestureRecognizer(handler!.panRecognizer!) + addGestureRecognizer(handler!.pinchRecognizer!) } public override init(frame: CGRect) { @@ -353,7 +353,7 @@ public class NSCCanvas: UIView, GLKViewDelegate { addSubview(glkView) self.isOpaque = false addGestureRecognizer(handler!.gestureRecognizer!) - addGestureRecognizer(handler!.panRecognizer!) + addGestureRecognizer(handler!.pinchRecognizer!) } diff --git a/packages/canvas/src-native/canvas-ios/NSCTouchHandler.swift b/packages/canvas/src-native/canvas-ios/NSCTouchHandler.swift index 11bcebcb..af9c4896 100644 --- a/packages/canvas/src-native/canvas-ios/NSCTouchHandler.swift +++ b/packages/canvas/src-native/canvas-ios/NSCTouchHandler.swift @@ -21,29 +21,32 @@ class NSCTouchHandler: NSObject { self.pinchRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(handle)) } - var pointersBegan: [CGPoint] = [] + var pointers: [CGPoint] = Array(repeating: CGPointZero, count: 10) + var lastPointerPosition: [CGPoint] = Array(repeating: CGPointZero, count: 10) + @objc func handle(_ gestureRecognizer: UIGestureRecognizer) { + + let numberOfTouches = gestureRecognizer.numberOfTouches let action = gestureRecognizer.state - let ptridx = gestureRecognizer.numberOfTouches > 0 ? gestureRecognizer.numberOfTouches - 1 : 0 - let x = gestureRecognizer.location(ofTouch: ptridx, in: gestureRecognizer.view).x - let y = gestureRecognizer.location(ofTouch: ptridx, in: gestureRecognizer.view).y + let ptridx = numberOfTouches > 0 ? numberOfTouches - 1 : 0 let press = (action == .began) let move = press || action == .changed let release = (action == .ended) let cancelled = action == .cancelled || action == .failed - - -// guard let me = gestureRecognizer as? UIPanGestureRecognizer else { -// -// return -// } + + + let location = numberOfTouches <= 1 ? gestureRecognizer.location(in: gestureRecognizer.view) : gestureRecognizer.location(ofTouch: ptridx, in: gestureRecognizer.view) + + let x = location.x + let y = location.y guard let me = gestureRecognizer as? UIPinchGestureRecognizer else { if(press){ + pointers[ptridx] = location onPress(ptridx, x, y, gestureRecognizer) } @@ -58,15 +61,50 @@ class NSCTouchHandler: NSObject { if(cancelled){ onCancel(ptridx, x, y, gestureRecognizer) } + + if(release || cancelled){ + pointers[ptridx] = CGPointZero + } return } + + let deltaX = pinchRecognizer?.view?.transform.tx ?? 0 + let deltaY = pinchRecognizer?.view?.transform.ty ?? 0 + let pointerCount = me.numberOfTouches + var sb = "{" + append("event", "scale", &sb) + + append("deltaX", deltaX, &sb) + append("deltaY", deltaY, &sb) + // todo + append("deltaZ", 0, &sb) + append("deltaMode", 0, &sb) + append("isInProgress", move, &sb) - let count = me.numberOfTouches - for i in 0.. Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo - s2O8zu7+zSF8xmfAnHoPYVp95KU= + 3Kc4otquL0KPSV5dFXqL2IxOC34= Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo - YH+22m77RxHI9DVQ9meVsiYtGzI= + RHn8aO+9BfgF2nhok70XTkh6yV8= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json - VvVQe/tUEDF8o1DlGexUdU7Z/Us= + gw9C2PHsEzwxqSPCYQqiUPRuxGo= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -50,11 +50,11 @@ Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftmodule - JgDYUxY3r8QyUp4+epqE46jD2CI= + 4stDgW5zGl0sCT6AtIibk5cZuG4= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json - VvVQe/tUEDF8o1DlGexUdU7Z/Us= + gw9C2PHsEzwxqSPCYQqiUPRuxGo= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -70,7 +70,7 @@ Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftmodule - FXDKnlZQQg6p7Nuo8L1q3SgvZ3s= + Vnye8Ktr8zC4WOc7PhaANB9z4Ek= Modules/module.modulemap @@ -115,21 +115,21 @@ hash2 - hxLJmyzZnuDsezkOFCccnJVxHHP1/g2LODHqq0NfqhQ= + c1Z8MNIbhelklIkhG59n31ahdFEVjSW9rF6Kj1XtKT4= Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo hash2 - oefD7WUavKacC3WoLw47AfU1YUyyPLgHkcYBt2G3n1Q= + Ug4eFaEMW/gKLMvWCht7Y6rzE5p21gBiD7ahdYuFwKs= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json hash2 - emlXnrS3XchAMPLTLb9PEWijW0lYJaaAoUEC1wW2eCU= + ZBub4yj+4HOe9+wZz/hu40urzvQAbvP5q7S/peQLoYo= Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -157,14 +157,14 @@ hash2 - dMXqXPB6v0xHDpclqQqccSGBGAvvQ328ARjRlPpezuU= + k3DzwzFOeqHIpIHBgLAo2XkLrwVZTd4lAMh/IELRLKg= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json hash2 - emlXnrS3XchAMPLTLb9PEWijW0lYJaaAoUEC1wW2eCU= + ZBub4yj+4HOe9+wZz/hu40urzvQAbvP5q7S/peQLoYo= Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -192,7 +192,7 @@ hash2 - 0r6vSyIp26z6HqQgtBr2aHt9ip1oNwJD9z6HnNeHYRI= + DiYhme2U+0pQL+A91zGlJBaDmGtICkHvXN/K2+Cx/jI= Modules/module.modulemap diff --git a/packages/canvas/src-native/canvas-ios/dist/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative b/packages/canvas/src-native/canvas-ios/dist/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative index 46a712c9..e6fc426a 100644 Binary files a/packages/canvas/src-native/canvas-ios/dist/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative and b/packages/canvas/src-native/canvas-ios/dist/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative differ diff --git a/tools/demo/canvas-three/games/tiny_poly_world.ts b/tools/demo/canvas-three/games/tiny_poly_world.ts new file mode 100644 index 00000000..b91af01d --- /dev/null +++ b/tools/demo/canvas-three/games/tiny_poly_world.ts @@ -0,0 +1,779 @@ +import * as THREE from 'three'; + +var Colors = { + red: 0xf25346, + yellow: 0xedeb27, + white: 0xd8d0d1, + brown: 0x59332e, + pink: 0xf5986e, + brownDark: 0x23190f, + blue: 0x68c3c0, + green: 0x458248, + purple: 0x551a8b, + lightgreen: 0x629265, +}; + +var scene, camera, fieldOfView, aspectRatio, nearPlane, farPlane, HEIGHT, WIDTH, renderer, container, hemisphereLight, petalCore, canvas; + +function createScene(canvas) { + // Get the width and height of the screen + // and use them to setup the aspect ratio + // of the camera and the size of the renderer. + HEIGHT = canvas.height; + WIDTH = canvas.width; + + const context = canvas.getContext('webgl2'); + // Create the scene. + scene = new THREE.Scene(); + + // Add FOV Fog effect to the scene. Same colour as the BG int he stylesheet. + scene.fog = new THREE.Fog(0xf7d9aa, 100, 950); + + // Create the camera + aspectRatio = WIDTH / HEIGHT; + fieldOfView = 60; + nearPlane = 1; + farPlane = 10000; + camera = new THREE.PerspectiveCamera(fieldOfView, aspectRatio, nearPlane, farPlane); + // Position the camera + camera.position.x = 0; + camera.position.y = 150; + camera.position.z = 100; + + // Create the renderer + + renderer = new THREE.WebGLRenderer({ + context, + // Alpha makes the background transparent, antialias is performant heavy + alpha: true, + antialias: true, + }); + renderer.outputColorSpace = THREE.SRGBColorSpace; + //set the size of the renderer to fullscreen + renderer.setSize(WIDTH, HEIGHT); + renderer.setPixelRatio(window.devicePixelRatio); + //enable shadow rendering + renderer.shadowMap.enabled = true; + + // Add the Renderer to the DOM, in the world div. + //container = document.getElementById('world'); + //container.appendChild(renderer.domElement); + + //RESPONSIVE LISTENER + window.addEventListener('resize', handleWindowResize, false); +} + +//RESPONSIVE FUNCTION +function handleWindowResize() { + HEIGHT = canvas.height; + WIDTH = canvas.width; + renderer.setSize(WIDTH, HEIGHT); + camera.aspect = WIDTH / HEIGHT; + camera.updateProjectionMatrix(); +} + +var hemispshereLight, shadowLight; + +function createLights() { + // Gradient coloured light - Sky, Ground, Intensity + hemisphereLight = new THREE.HemisphereLight(0xaaaaaa, 0x000000, 0.9); + // Parallel rays + shadowLight = new THREE.DirectionalLight(0xffffff, 0.9); + + shadowLight.position.set(0, 350, 350); + shadowLight.castShadow = true; + + // define the visible area of the projected shadow + shadowLight.shadow.camera.left = -650; + shadowLight.shadow.camera.right = 650; + shadowLight.shadow.camera.top = 650; + shadowLight.shadow.camera.bottom = -650; + shadowLight.shadow.camera.near = 1; + shadowLight.shadow.camera.far = 1000; + + // Shadow map size + shadowLight.shadow.mapSize.width = 2048; + shadowLight.shadow.mapSize.height = 2048; + + // Add the lights to the scene + scene.add(hemisphereLight); + + scene.add(shadowLight); +} + +var Land = function () { + const geom = new THREE.CylinderGeometry(600, 600, 1700, 40, 10); + + // Create a rotation matrix for the x-axis + const rotationMatrix = new THREE.Matrix4().makeRotationX(-Math.PI / 2); + + // Apply the rotation matrix to the geometry's vertices + geom.applyMatrix4(rotationMatrix); + + // Create a material + const mat = new THREE.MeshPhongMaterial({ + color: 0x90ee90, // Use hexadecimal color values + flatShading: true, + }); + + //create a mesh of the object + this.mesh = new THREE.Mesh(geom, mat); + //receive shadows + this.mesh.receiveShadow = true; +}; + +var Orbit = function () { + var geom = new THREE.Object3D(); + + this.mesh = geom; + //this.mesh.add(sun); +}; + +var Sun = function () { + this.mesh = new THREE.Object3D(); + + var sunGeom = new THREE.SphereGeometry(400, 20, 10); + var sunMat = new THREE.MeshPhongMaterial({ + color: Colors.yellow, + flatShading: true, + }); + var sun = new THREE.Mesh(sunGeom, sunMat); + //sun.applyMatrix(new THREE.Matrix4().makeRotationX(-Math.PI/2)); + sun.castShadow = false; + sun.receiveShadow = false; + this.mesh.add(sun); +}; + +var Cloud = function () { + // Create an empty container for the cloud + this.mesh = new THREE.Object3D(); + // Cube geometry and material + var geom = new THREE.DodecahedronGeometry(20, 0); + var mat = new THREE.MeshPhongMaterial({ + color: Colors.white, + }); + + var nBlocs = 3 + Math.floor(Math.random() * 3); + + for (var i = 0; i < nBlocs; i++) { + //Clone mesh geometry + var m = new THREE.Mesh(geom, mat); + //Randomly position each cube + m.position.x = i * 15; + m.position.y = Math.random() * 10; + m.position.z = Math.random() * 10; + m.rotation.z = Math.random() * Math.PI * 2; + m.rotation.y = Math.random() * Math.PI * 2; + + //Randomly scale the cubes + var s = 0.1 + Math.random() * 0.9; + m.scale.set(s, s, s); + this.mesh.add(m); + } +}; + +var Sky = function () { + this.mesh = new THREE.Object3D(); + + // Number of cloud groups + this.nClouds = 25; + + // Space the consistenly + var stepAngle = (Math.PI * 2) / this.nClouds; + + // Create the Clouds + + for (var i = 0; i < this.nClouds; i++) { + var c = new Cloud(); + + //set rotation and position using trigonometry + var a = stepAngle * i; + // this is the distance between the center of the axis and the cloud itself + var h = 800 + Math.random() * 200; + c.mesh.position.y = Math.sin(a) * h; + c.mesh.position.x = Math.cos(a) * h; + + // rotate the cloud according to its position + c.mesh.rotation.z = a + Math.PI / 2; + + // random depth for the clouds on the z-axis + c.mesh.position.z = -400 - Math.random() * 400; + + // random scale for each cloud + var s = 1 + Math.random() * 2; + c.mesh.scale.set(s, s, s); + + this.mesh.add(c.mesh); + } +}; + +var Tree = function () { + this.mesh = new THREE.Object3D(); + + var matTreeLeaves = new THREE.MeshPhongMaterial({ color: Colors.green, flatShading: true }); + + var geonTreeBase = new THREE.BoxGeometry(10, 20, 10); + var matTreeBase = new THREE.MeshBasicMaterial({ color: Colors.brown }); + var treeBase = new THREE.Mesh(geonTreeBase, matTreeBase); + treeBase.castShadow = true; + treeBase.receiveShadow = true; + this.mesh.add(treeBase); + + var geomTreeLeaves1 = new THREE.CylinderGeometry(1, 12 * 3, 12 * 3, 4); + var treeLeaves1 = new THREE.Mesh(geomTreeLeaves1, matTreeLeaves); + treeLeaves1.castShadow = true; + treeLeaves1.receiveShadow = true; + treeLeaves1.position.y = 20; + this.mesh.add(treeLeaves1); + + var geomTreeLeaves2 = new THREE.CylinderGeometry(1, 9 * 3, 9 * 3, 4); + var treeLeaves2 = new THREE.Mesh(geomTreeLeaves2, matTreeLeaves); + treeLeaves2.castShadow = true; + treeLeaves2.position.y = 40; + treeLeaves2.receiveShadow = true; + this.mesh.add(treeLeaves2); + + var geomTreeLeaves3 = new THREE.CylinderGeometry(1, 6 * 3, 6 * 3, 4); + var treeLeaves3 = new THREE.Mesh(geomTreeLeaves3, matTreeLeaves); + treeLeaves3.castShadow = true; + treeLeaves3.position.y = 55; + treeLeaves3.receiveShadow = true; + this.mesh.add(treeLeaves3); +}; + +var Flower = function () { + this.mesh = new THREE.Object3D(); + + var geomStem = new THREE.BoxGeometry(5, 50, 5, 1, 1, 1); + var matStem = new THREE.MeshPhongMaterial({ color: Colors.green, flatShading: true }); + var stem = new THREE.Mesh(geomStem, matStem); + stem.castShadow = false; + stem.receiveShadow = true; + this.mesh.add(stem); + + var geomPetalCore = new THREE.BoxGeometry(10, 10, 10, 1, 1, 1); + var matPetalCore = new THREE.MeshPhongMaterial({ color: Colors.yellow, flatShading: true }); + petalCore = new THREE.Mesh(geomPetalCore, matPetalCore); + petalCore.castShadow = false; + petalCore.receiveShadow = true; + + var petalColor = petalColors[Math.floor(Math.random() * 3)]; + + const geomPetal = new THREE.BoxGeometry(15, 20, 5, 1, 1, 1); + const matPetal = new THREE.MeshBasicMaterial({ color: petalColor }); + + // Modify vertices by accessing them through the geometry's attributes + geomPetal.attributes.position.array[5] -= 4; // Vertex 5 + geomPetal.attributes.position.array[4] -= 4; // Vertex 4 + geomPetal.attributes.position.array[7] += 4; // Vertex 7 + geomPetal.attributes.position.array[6] += 4; // Vertex 6 + + geomPetal.translate(12.5, 0, 3); + + geomPetal.attributes.position.needsUpdate = true; // Update the geometry after modifying positions + + const petal = new THREE.Mesh(geomPetal, matPetal); + + var petals = []; + for (var i = 0; i < 4; i++) { + petals[i] = new THREE.Mesh(geomPetal, matPetal); + petals[i].rotation.z = (i * Math.PI) / 2; + petals[i].castShadow = true; + petals[i].receiveShadow = true; + } + + petalCore.add(petals[0], petals[1], petals[2], petals[3]); + petalCore.position.y = 25; + petalCore.position.z = 3; + this.mesh.add(petalCore); +}; + +var petalColors = [Colors.red, Colors.yellow, Colors.blue]; + +var Forest = function () { + this.mesh = new THREE.Object3D(); + + // Number of Trees + this.nTrees = 300; + + // Space the consistenly + var stepAngle = (Math.PI * 2) / this.nTrees; + + // Create the Trees + + for (var i = 0; i < this.nTrees; i++) { + var t = new Tree(); + + //set rotation and position using trigonometry + var a = stepAngle * i; + // this is the distance between the center of the axis and the tree itself + var h = 605; + t.mesh.position.y = Math.sin(a) * h; + t.mesh.position.x = Math.cos(a) * h; + + // rotate the tree according to its position + t.mesh.rotation.z = a + (Math.PI / 2) * 3; + + //Andreas Trigo funtime + //t.mesh.rotation.z = Math.atan2(t.mesh.position.y, t.mesh.position.x)-Math.PI/2; + + // random depth for the tree on the z-axis + t.mesh.position.z = 0 - Math.random() * 600; + + // random scale for each tree + var s = 0.3 + Math.random() * 0.75; + t.mesh.scale.set(s, s, s); + + this.mesh.add(t.mesh); + } + + // Number of Trees + this.nFlowers = 350; + + var stepAngle = (Math.PI * 2) / this.nFlowers; + + for (var i = 0; i < this.nFlowers; i++) { + var f = new Flower(); + var a = stepAngle * i; + + var h = 605; + f.mesh.position.y = Math.sin(a) * h; + f.mesh.position.x = Math.cos(a) * h; + + f.mesh.rotation.z = a + (Math.PI / 2) * 3; + + f.mesh.position.z = 0 - Math.random() * 600; + + var s = 0.1 + Math.random() * 0.3; + f.mesh.scale.set(s, s, s); + + this.mesh.add(f.mesh); + } +}; + +var AirPlane = function () { + this.mesh = new THREE.Object3D(); + + // Create the cabin + var geomCockpit = new THREE.BoxGeometry(80, 50, 50, 1, 1, 1); + var matCockpit = new THREE.MeshPhongMaterial({ color: Colors.red, flatShading: true }); + // Access vertices through the geometry's attributes + + geomCockpit.attributes.position.array[1] -= 10; // Vertex 1 + geomCockpit.attributes.position.array[2] += 20; + + geomCockpit.attributes.position.array[4] -= 10; // Vertex 4 + geomCockpit.attributes.position.array[5] -= 20; + + geomCockpit.attributes.position.array[7] += 30; // Vertex 7 + geomCockpit.attributes.position.array[8] += 20; + + geomCockpit.attributes.position.array[10] += 30; // Vertex 10 + geomCockpit.attributes.position.array[11] -= 20; + + geomCockpit.attributes.position.needsUpdate = true; // Update the geometry after modifying positions + + var cockpit = new THREE.Mesh(geomCockpit, matCockpit); + cockpit.castShadow = true; + cockpit.receiveShadow = true; + this.mesh.add(cockpit); + + // Create the engine + var geomEngine = new THREE.BoxGeometry(20, 50, 50, 1, 1, 1); + var matEngine = new THREE.MeshPhongMaterial({ color: Colors.white, flatShading: true }); + var engine = new THREE.Mesh(geomEngine, matEngine); + engine.position.x = 40; + engine.castShadow = true; + engine.receiveShadow = true; + this.mesh.add(engine); + + // Create the tail + var geomTailPlane = new THREE.BoxGeometry(15, 20, 5, 1, 1, 1); + var matTailPlane = new THREE.MeshPhongMaterial({ color: Colors.red, flatShading: true }); + var tailPlane = new THREE.Mesh(geomTailPlane, matTailPlane); + tailPlane.position.set(-35, 25, 0); + tailPlane.castShadow = true; + tailPlane.receiveShadow = true; + this.mesh.add(tailPlane); + + // Create the wing + var geomSideWing = new THREE.BoxGeometry(40, 4, 150, 1, 1, 1); + var matSideWing = new THREE.MeshPhongMaterial({ color: Colors.red, flatShading: true }); + + var sideWingTop = new THREE.Mesh(geomSideWing, matSideWing); + var sideWingBottom = new THREE.Mesh(geomSideWing, matSideWing); + sideWingTop.castShadow = true; + sideWingTop.receiveShadow = true; + sideWingBottom.castShadow = true; + sideWingBottom.receiveShadow = true; + + sideWingTop.position.set(20, 12, 0); + sideWingBottom.position.set(20, -3, 0); + this.mesh.add(sideWingTop); + this.mesh.add(sideWingBottom); + + var geomWindshield = new THREE.BoxGeometry(3, 15, 20, 1, 1, 1); + var matWindshield = new THREE.MeshPhongMaterial({ color: Colors.white, transparent: true, opacity: 0.3, flatShading: true }); + var windshield = new THREE.Mesh(geomWindshield, matWindshield); + windshield.position.set(5, 27, 0); + + windshield.castShadow = true; + windshield.receiveShadow = true; + + this.mesh.add(windshield); + + var geomPropeller = new THREE.BoxGeometry(20, 10, 10, 1, 1, 1); + + geomPropeller.attributes.position.array[1] -= 5; // Vertex 1 + geomPropeller.attributes.position.array[2] += 5; + + geomPropeller.attributes.position.array[4] -= 5; // Vertex 4 + geomPropeller.attributes.position.array[5] -= 5; + + geomPropeller.attributes.position.array[7] += 5; // Vertex 7 + geomPropeller.attributes.position.array[8] += 5; + + geomPropeller.attributes.position.array[10] += 5; // Vertex 10 + geomPropeller.attributes.position.array[11] -= 5; + + geomPropeller.attributes.position.needsUpdate = true; // Update the geometry after modifying positions + + var matPropeller = new THREE.MeshPhongMaterial({ color: Colors.brown, flatShading: true }); + this.propeller = new THREE.Mesh(geomPropeller, matPropeller); + this.propeller.castShadow = true; + this.propeller.receiveShadow = true; + + var geomBlade1 = new THREE.BoxGeometry(1, 100, 10, 1, 1, 1); + var geomBlade2 = new THREE.BoxGeometry(1, 10, 100, 1, 1, 1); + var matBlade = new THREE.MeshPhongMaterial({ color: Colors.brownDark, flatShading: true }); + + var blade1 = new THREE.Mesh(geomBlade1, matBlade); + blade1.position.set(8, 0, 0); + blade1.castShadow = true; + blade1.receiveShadow = true; + + var blade2 = new THREE.Mesh(geomBlade2, matBlade); + blade2.position.set(8, 0, 0); + blade2.castShadow = true; + blade2.receiveShadow = true; + this.propeller.add(blade1, blade2); + this.propeller.position.set(50, 0, 0); + this.mesh.add(this.propeller); + + var wheelProtecGeom = new THREE.BoxGeometry(30, 15, 10, 1, 1, 1); + var wheelProtecMat = new THREE.MeshPhongMaterial({ color: Colors.white, flatShading: true }); + var wheelProtecR = new THREE.Mesh(wheelProtecGeom, wheelProtecMat); + wheelProtecR.position.set(25, -20, 25); + this.mesh.add(wheelProtecR); + + var wheelTireGeom = new THREE.BoxGeometry(24, 24, 4); + var wheelTireMat = new THREE.MeshPhongMaterial({ color: Colors.brownDark, flatShading: true }); + var wheelTireR = new THREE.Mesh(wheelTireGeom, wheelTireMat); + wheelTireR.position.set(25, -28, 25); + + var wheelAxisGeom = new THREE.BoxGeometry(10, 10, 6); + var wheelAxisMat = new THREE.MeshPhongMaterial({ color: Colors.brown, flatShading: true }); + var wheelAxis = new THREE.Mesh(wheelAxisGeom, wheelAxisMat); + wheelTireR.add(wheelAxis); + + this.mesh.add(wheelTireR); + + var wheelProtecL = wheelProtecR.clone(); + wheelProtecL.position.z = -wheelProtecR.position.z; + this.mesh.add(wheelProtecL); + + var wheelTireL = wheelTireR.clone(); + wheelTireL.position.z = -wheelTireR.position.z; + this.mesh.add(wheelTireL); + + var wheelTireB = wheelTireR.clone(); + wheelTireB.scale.set(0.5, 0.5, 0.5); + wheelTireB.position.set(-35, -5, 0); + this.mesh.add(wheelTireB); + + const suspensionGeom = new THREE.BoxGeometry(4, 20, 4); + const suspensionMat = new THREE.MeshPhongMaterial({ color: 0xff0000, flatShading: true }); + + // Create a matrix for translation + const translationMatrix = new THREE.Matrix4().makeTranslation(0, 10, 0); + + // Apply the translation matrix to the geometry's vertices + suspensionGeom.applyMatrix4(translationMatrix); + + const suspension = new THREE.Mesh(suspensionGeom, suspensionMat); + + // Your suspension object is now correctly positioned + + suspension.position.set(-35, -5, 0); + suspension.rotation.z = -0.3; + this.mesh.add(suspension); +}; + +var Fox = function () { + this.mesh = new THREE.Object3D(); + + var redFurMat = new THREE.MeshPhongMaterial({ color: Colors.red, flatShading: true }); + + // Create the Body + var geomBody = new THREE.BoxGeometry(100, 50, 50, 1, 1, 1); + var body = new THREE.Mesh(geomBody, redFurMat); + body.castShadow = true; + body.receiveShadow = true; + this.mesh.add(body); + + // Create the Chest + var geomChest = new THREE.BoxGeometry(50, 60, 70, 1, 1, 1); + var chest = new THREE.Mesh(geomChest, redFurMat); + chest.position.x = 60; + chest.castShadow = true; + chest.receiveShadow = true; + this.mesh.add(chest); + + // Create the Head + var geomHead = new THREE.BoxGeometry(40, 55, 50, 1, 1, 1); + this.head = new THREE.Mesh(geomHead, redFurMat); + this.head.position.set(80, 35, 0); + this.head.castShadow = true; + this.head.receiveShadow = true; + + // Create the Snout + var geomSnout = new THREE.BoxGeometry(40, 30, 30, 1, 1, 1); + var snout = new THREE.Mesh(geomSnout, redFurMat); + + geomSnout.attributes.position.setXYZ(0, geomSnout.attributes.position.getX(0), geomSnout.attributes.position.getY(0) - 5, geomSnout.attributes.position.getZ(0) + 5); + + geomSnout.attributes.position.setXYZ(1, geomSnout.attributes.position.getX(1), geomSnout.attributes.position.getY(1) - 5, geomSnout.attributes.position.getZ(1) - 5); + + geomSnout.attributes.position.setXYZ(2, geomSnout.attributes.position.getX(2), geomSnout.attributes.position.getY(2) + 5, geomSnout.attributes.position.getZ(2) + 5); + + geomSnout.attributes.position.setXYZ(3, geomSnout.attributes.position.getX(3), geomSnout.attributes.position.getY(3) + 5, geomSnout.attributes.position.getZ(3) - 5); + + snout.castShadow = true; + snout.receiveShadow = true; + snout.position.set(30, 0, 0); + this.head.add(snout); + + // Create the Nose + var geomNose = new THREE.BoxGeometry(10, 15, 20, 1, 1, 1); + var matNose = new THREE.MeshPhongMaterial({ color: Colors.brown, flatShading: true }); + var nose = new THREE.Mesh(geomNose, matNose); + nose.position.set(55, 0, 0); + this.head.add(nose); + + // Create the Ears + var geomEar = new THREE.BoxGeometry(10, 40, 30, 1, 1, 1); + var earL = new THREE.Mesh(geomEar, redFurMat); + earL.position.set(-10, 40, -18); + this.head.add(earL); + earL.rotation.x = -Math.PI / 10; + + geomEar.attributes.position.setZ(1, geomEar.attributes.position.getZ(1) + 5); + geomEar.attributes.position.setZ(4, geomEar.attributes.position.getZ(4) + 5); + geomEar.attributes.position.setZ(0, geomEar.attributes.position.getZ(0) - 5); + geomEar.attributes.position.setZ(5, geomEar.attributes.position.getZ(5) - 5); + + // Create the Ear Tips + var geomEarTipL = new THREE.BoxGeometry(10, 10, 20, 1, 1, 1); + var matEarTip = new THREE.MeshPhongMaterial({ color: Colors.white, flatShading: true }); + var earTipL = new THREE.Mesh(geomEarTipL, matEarTip); + earTipL.position.set(0, 25, 0); + earL.add(earTipL); + + var earR = earL.clone(); + earR.position.z = -earL.position.z; + earR.rotation.x = -earL.rotation.x; + this.head.add(earR); + + this.mesh.add(this.head); + + // Create the tail + var geomTail = new THREE.BoxGeometry(80, 40, 40, 2, 1, 1); + + geomTail.attributes.position.setXYZ(4, geomTail.attributes.position.getX(4), geomTail.attributes.position.getY(4) - 10, geomTail.attributes.position.getZ(4) + 10); + + geomTail.attributes.position.setXYZ(5, geomTail.attributes.position.getX(5), geomTail.attributes.position.getY(5) - 10, geomTail.attributes.position.getZ(5) - 10); + + geomTail.attributes.position.setXYZ(6, geomTail.attributes.position.getX(6), geomTail.attributes.position.getY(6) + 10, geomTail.attributes.position.getZ(6) + 10); + + geomTail.attributes.position.setXYZ(7, geomTail.attributes.position.getX(7), geomTail.attributes.position.getY(7) + 10, geomTail.attributes.position.getZ(7) - 10); + + this.tail = new THREE.Mesh(geomTail, redFurMat); + this.tail.castShadow = true; + this.tail.receiveShadow = true; + + // Create the tail Tip + var geomTailTip = new THREE.BoxGeometry(20, 40, 40, 1, 1, 1); + var matTailTip = new THREE.MeshPhongMaterial({ color: Colors.white, flatShading: true }); + var tailTip = new THREE.Mesh(geomTailTip, matTailTip); + tailTip.position.set(80, 0, 0); + tailTip.castShadow = true; + tailTip.receiveShadow = true; + this.tail.add(tailTip); + this.tail.position.set(-40, 10, 0); + geomTail.translate(40, 0, 0); + geomTailTip.translate(10, 0, 0); + this.tail.rotation.z = Math.PI / 1.5; + this.mesh.add(this.tail); + + // Create the Legs + var geomLeg = new THREE.BoxGeometry(20, 60, 20, 1, 1, 1); + this.legFR = new THREE.Mesh(geomLeg, redFurMat); + this.legFR.castShadow = true; + this.legFR.receiveShadow = true; + + // Create the feet + var geomFeet = new THREE.BoxGeometry(20, 20, 20, 1, 1, 1); + var matFeet = new THREE.MeshPhongMaterial({ color: Colors.white, flatShading: true }); + var feet = new THREE.Mesh(geomFeet, matFeet); + feet.position.set(0, 0, 0); + feet.castShadow = true; + feet.receiveShadow = true; + this.legFR.add(feet); + this.legFR.position.set(70, -12, 25); + geomLeg.translate(0, 40, 0); + geomFeet.translate(0, 80, 0); + this.legFR.rotation.z = 16; + this.mesh.add(this.legFR); + + this.legFL = this.legFR.clone(); + this.legFL.position.z = -this.legFR.position.z; + this.legFL.rotation.z = -this.legFR.rotation.z; + this.mesh.add(this.legFL); + + this.legBR = this.legFR.clone(); + this.legBR.position.x = -this.legFR.position.x + 50; + this.legBR.rotation.z = -this.legFR.rotation.z; + this.mesh.add(this.legBR); + + this.legBL = this.legFL.clone(); + this.legBL.position.x = -this.legFL.position.x + 50; + this.legBL.rotation.z = -this.legFL.rotation.z; + this.mesh.add(this.legBL); +}; + +var sky; +var forest; +var land; +var orbit; +var airplane; +var sun; +var fox; + +var mousePos = { x: 0, y: 0 }; +var offSet = -600; + +function createSky() { + sky = new Sky(); + sky.mesh.position.y = offSet; + scene.add(sky.mesh); +} + +function createLand() { + land = new Land(); + land.mesh.position.y = offSet; + scene.add(land.mesh); +} + +function createOrbit() { + orbit = new Orbit(); + orbit.mesh.position.y = offSet; + orbit.mesh.rotation.z = -Math.PI / 6; + scene.add(orbit.mesh); +} + +function createForest() { + forest = new Forest(); + forest.mesh.position.y = offSet; + scene.add(forest.mesh); +} + +function createSun() { + sun = new Sun(); + sun.mesh.scale.set(1, 1, 0.3); + sun.mesh.position.set(0, -30, -850); + scene.add(sun.mesh); +} + +function createPlane() { + airplane = new AirPlane(); + airplane.mesh.scale.set(0.35, 0.35, 0.35); + airplane.mesh.position.set(-40, 110, -250); + // airplane.mesh.rotation.z = Math.PI/15; + scene.add(airplane.mesh); +} + +function createFox() { + fox = new Fox(); + fox.mesh.scale.set(0.35, 0.35, 0.35); + fox.mesh.position.set(-40, 110, -250); + scene.add(fox.mesh); +} + +function updatePlane() { + var targetY = normalize(mousePos.y, -0.75, 0.75, 50, 190); + var targetX = normalize(mousePos.x, -0.75, 0.75, -100, -20); + + // Move the plane at each frame by adding a fraction of the remaining distance + airplane.mesh.position.y += (targetY - airplane.mesh.position.y) * 0.1; + + airplane.mesh.position.x += (targetX - airplane.mesh.position.x) * 0.1; + + // Rotate the plane proportionally to the remaining distance + airplane.mesh.rotation.z = (targetY - airplane.mesh.position.y) * 0.0128; + airplane.mesh.rotation.x = (airplane.mesh.position.y - targetY) * 0.0064; + airplane.mesh.rotation.y = (airplane.mesh.position.x - targetX) * 0.0064; + + airplane.propeller.rotation.x += 0.3; +} + +function normalize(v, vmin, vmax, tmin, tmax) { + var nv = Math.max(Math.min(v, vmax), vmin); + var dv = vmax - vmin; + var pc = (nv - vmin) / dv; + var dt = tmax - tmin; + var tv = tmin + pc * dt; + return tv; +} + +function loop() { + land.mesh.rotation.z += 0.005; + orbit.mesh.rotation.z += 0.001; + sky.mesh.rotation.z += 0.003; + forest.mesh.rotation.z += 0.005; + updatePlane(); + + renderer.render(scene, camera); + requestAnimationFrame(loop); +} + +function handleMouseMove(event) { + var tx = -1 + (event.clientX / WIDTH) * 2; + var ty = 1 - (event.clientY / HEIGHT) * 2; + mousePos = { x: tx, y: ty }; +} + +function handleTouchMove(event) { + var tx = -1 + (event.changedTouches[0].clientX / WIDTH) * 2; + var ty = 1 - (event.changedTouches[0].clientY / HEIGHT) * 2; + mousePos = { x: tx, y: ty }; +} + +export function tiny_poly_world(value) { + canvas = value; + createScene(canvas); + createLights(); + createPlane(); + createOrbit(); + createSun(); + createLand(); + createForest(); + createSky(); + //createFox(); + + //canvas.addEventListener('mousemove', handleMouseMove, false); + canvas.addEventListener('touchmove', handleTouchMove, false); + + loop(); +} + +//window.addEventListener('load', init, false); diff --git a/tools/demo/canvas-three/index.ts b/tools/demo/canvas-three/index.ts index f5fb20da..21cb4bea 100644 --- a/tools/demo/canvas-three/index.ts +++ b/tools/demo/canvas-three/index.ts @@ -34,6 +34,7 @@ import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPa import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js'; import { the_frantic_run_of_the_valorous_rabbit } from './games/the_frantic_run_of_the_valorous_rabbit'; import { ghost_card } from './examples/ghost_card'; +import { tiny_poly_world } from './games/tiny_poly_world'; class IconMesh extends THREE.Mesh { constructor() { @@ -94,7 +95,8 @@ export class DemoSharedCanvasThree extends DemoSharedBase { // }, 10000); //this.threeCube(this.canvas); //this.threeCar(this.canvas); - this.threeKeyframes(this.canvas); + //this.threeKeyframes(this.canvas); + tiny_poly_world(this.canvas); //this.webGLHelpers(this.canvas); //this.fbxLoader(this.canvas); //this.gtlfLoader(this.canvas); diff --git a/tools/demo/canvas/index.ts b/tools/demo/canvas/index.ts index 2d813d35..6fd327d9 100644 --- a/tools/demo/canvas/index.ts +++ b/tools/demo/canvas/index.ts @@ -629,7 +629,7 @@ export class DemoSharedCanvas extends DemoSharedBase { //cubeRotationRotation(this.canvas); //main(this.canvas); //imageFilter(this.canvas); - //interactiveCube(this.canvas); + interactiveCube(this.canvas); //textures(this.canvas); //drawElements(this.canvas) //drawModes(this.canvas,'triangles') @@ -646,7 +646,7 @@ export class DemoSharedCanvas extends DemoSharedBase { //this.multiCanvas(this.canvas); //triangle(this.canvas); //this.zen3dCube(this.canvas); - this.zen3dGeometryLoaderGltf(this.canvas); + //this.zen3dGeometryLoaderGltf(this.canvas); //this.playCanvas(this.canvas); //this.drawRandomFullscreenImage(this.canvas); //issue54(this.canvas); diff --git a/tools/demo/canvas/webgl/interactive-cube.ts b/tools/demo/canvas/webgl/interactive-cube.ts index a96575a7..75ec4a2e 100644 --- a/tools/demo/canvas/webgl/interactive-cube.ts +++ b/tools/demo/canvas/webgl/interactive-cube.ts @@ -1,234 +1,204 @@ let LAF = 0; export function interactiveCube(canvas) { - /*============= Creating a canvas ======================*/ - var gl = canvas.getContext('webgl2') as WebGLRenderingContext; - - const width = gl.drawingBufferWidth; - const height = gl.drawingBufferHeight; - /*========== Defining and storing the geometry ==========*/ - - var vertices = [ - -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, - -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, - -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, - 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, - -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, - -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1, - ]; - - var colors = [ - 5, 3, 7, 5, 3, 7, 5, 3, 7, 5, 3, 7, - 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, - 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, - 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, - 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, - 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0 - ]; - - var indices = [ - 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, - 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, - 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23 - ]; - - // Create and store data into vertex buffer - var vertex_buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); - - // Create and store data into color buffer - var color_buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW); - - // Create and store data into index buffer - var index_buffer = gl.createBuffer(); - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW); - - /*=================== SHADERS =================== */ - - var vertCode = 'attribute vec3 position;' + - 'uniform mat4 Pmatrix;' + - 'uniform mat4 Vmatrix;' + - 'uniform mat4 Mmatrix;' + - 'attribute vec3 color;' +//the color of the point - 'varying vec3 vColor;' + - 'void main(void) { ' +//pre-built function - 'gl_Position = Pmatrix*Vmatrix*Mmatrix*vec4(position, 1.);' + - 'vColor = color;' + - '}'; - - var fragCode = 'precision mediump float;' + - 'varying vec3 vColor;' + - 'void main(void) {' + - 'gl_FragColor = vec4(vColor, 1.);' + - '}'; - - var vertShader = gl.createShader(gl.VERTEX_SHADER); - gl.shaderSource(vertShader, vertCode); - gl.compileShader(vertShader); - - var fragShader = gl.createShader(gl.FRAGMENT_SHADER); - gl.shaderSource(fragShader, fragCode); - gl.compileShader(fragShader); - - var shaderprogram = gl.createProgram(); - gl.attachShader(shaderprogram, vertShader); - gl.attachShader(shaderprogram, fragShader); - gl.linkProgram(shaderprogram); - - /*======== Associating attributes to vertex shader =====*/ - var _Pmatrix = gl.getUniformLocation(shaderprogram, "Pmatrix"); - var _Vmatrix = gl.getUniformLocation(shaderprogram, "Vmatrix"); - var _Mmatrix = gl.getUniformLocation(shaderprogram, "Mmatrix"); - - gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer); - var _position = gl.getAttribLocation(shaderprogram, "position"); - gl.vertexAttribPointer(_position, 3, gl.FLOAT, false, 0, 0); - gl.enableVertexAttribArray(_position); - - gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer); - var _color = gl.getAttribLocation(shaderprogram, "color"); - gl.vertexAttribPointer(_color, 3, gl.FLOAT, false, 0, 0); - gl.enableVertexAttribArray(_color); - gl.useProgram(shaderprogram); - - /*==================== MATRIX ====================== */ - - function get_projection(angle, a, zMin, zMax) { - var ang = Math.tan((angle * .5) * Math.PI / 180);//angle*.5 - return [ - 0.5 / ang, 0, 0, 0, - 0, 0.5 * a / ang, 0, 0, - 0, 0, -(zMax + zMin) / (zMax - zMin), -1, - 0, 0, (-2 * zMax * zMin) / (zMax - zMin), 0 - ]; - } - - var proj_matrix = get_projection(40, width / height, 1, 100); - var mo_matrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; - var view_matrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; - - view_matrix[14] = view_matrix[14] - 6; - - /*================= Mouse events ======================*/ - - var AMORTIZATION = 0.95; - var drag = false; - var old_x, old_y; - var dX = 0, dY = 0; - - var mouseDown = function (e) { - drag = true; - old_x = e.pageX, old_y = e.pageY; - e.preventDefault(); - return false; - }; - - var mouseUp = function (e) { - drag = false; - }; - - var mouseMove = function (e) { - if (!drag) return false; - dX = (e.pageX - old_x) * 2 * Math.PI / width, - dY = (e.pageY - old_y) * 2 * Math.PI / height; - THETA += dX; - PHI += dY; - old_x = e.pageX, old_y = e.pageY; - e.preventDefault(); - }; - - canvas.addEventListener("touchstart", mouseDown, false); - canvas.addEventListener("touchend", mouseUp, false); - canvas.addEventListener("touchcancel", mouseUp, false); - canvas.addEventListener("touchmove", mouseMove, false); - - /*=========================rotation================*/ - - function rotateX(m, angle) { - var c = Math.cos(angle); - var s = Math.sin(angle); - var mv1 = m[1], mv5 = m[5], mv9 = m[9]; - - m[1] = m[1] * c - m[2] * s; - m[5] = m[5] * c - m[6] * s; - m[9] = m[9] * c - m[10] * s; - - m[2] = m[2] * c + mv1 * s; - m[6] = m[6] * c + mv5 * s; - m[10] = m[10] * c + mv9 * s; - } - - function rotateY(m, angle) { - var c = Math.cos(angle); - var s = Math.sin(angle); - var mv0 = m[0], mv4 = m[4], mv8 = m[8]; - - m[0] = c * m[0] + s * m[2]; - m[4] = c * m[4] + s * m[6]; - m[8] = c * m[8] + s * m[10]; - - m[2] = c * m[2] - s * mv0; - m[6] = c * m[6] - s * mv4; - m[10] = c * m[10] - s * mv8; - } - - /*=================== Drawing =================== */ - - var THETA = 0, - PHI = 0; - var time_old = 0; - - var animate = function (time) { - var dt = time - time_old; - - if (!drag) { - dX *= AMORTIZATION, dY *= AMORTIZATION; - THETA += dX, PHI += dY; - } - - //set model matrix to I4 - - mo_matrix[0] = 1, mo_matrix[1] = 0, mo_matrix[2] = 0, - mo_matrix[3] = 0, - - mo_matrix[4] = 0, mo_matrix[5] = 1, mo_matrix[6] = 0, - mo_matrix[7] = 0, - - mo_matrix[8] = 0, mo_matrix[9] = 0, mo_matrix[10] = 1, - mo_matrix[11] = 0, - - mo_matrix[12] = 0, mo_matrix[13] = 0, mo_matrix[14] = 0, - mo_matrix[15] = 1; - - rotateY(mo_matrix, THETA); - rotateX(mo_matrix, PHI); - - time_old = time; - gl.enable(gl.DEPTH_TEST); - gl.depthMask(true); - //gl.depthFunc(gl.LEQUAL); - - gl.clearColor(0.5, 0.5, 0.5, 0.9); - gl.clearDepth(1.0); - gl.viewport(0.0, 0.0, width, height); - gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); - - gl.uniformMatrix4fv(_Pmatrix, false, proj_matrix); - gl.uniformMatrix4fv(_Vmatrix, false, view_matrix); - gl.uniformMatrix4fv(_Mmatrix, false, mo_matrix); - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buffer); - gl.drawElements(gl.TRIANGLES, indices.length, gl.UNSIGNED_SHORT, 0); - LAF = requestAnimationFrame(animate); - } - animate(0); + /*============= Creating a canvas ======================*/ + var gl = canvas.getContext('webgl2') as WebGLRenderingContext; + + const width = canvas.width * window.devicePixelRatio; + const height = canvas.height * window.devicePixelRatio; + /*========== Defining and storing the geometry ==========*/ + + var vertices = [-1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1]; + + var colors = [5, 3, 7, 5, 3, 7, 5, 3, 7, 5, 3, 7, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; + + var indices = [0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23]; + + // Create and store data into vertex buffer + var vertex_buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); + + // Create and store data into color buffer + var color_buffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW); + + // Create and store data into index buffer + var index_buffer = gl.createBuffer(); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW); + + /*=================== SHADERS =================== */ + + var vertCode = + 'attribute vec3 position;' + + 'uniform mat4 Pmatrix;' + + 'uniform mat4 Vmatrix;' + + 'uniform mat4 Mmatrix;' + + 'attribute vec3 color;' + //the color of the point + 'varying vec3 vColor;' + + 'void main(void) { ' + //pre-built function + 'gl_Position = Pmatrix*Vmatrix*Mmatrix*vec4(position, 1.);' + + 'vColor = color;' + + '}'; + + var fragCode = 'precision mediump float;' + 'varying vec3 vColor;' + 'void main(void) {' + 'gl_FragColor = vec4(vColor, 1.);' + '}'; + + var vertShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertShader, vertCode); + gl.compileShader(vertShader); + + var fragShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragShader, fragCode); + gl.compileShader(fragShader); + + var shaderprogram = gl.createProgram(); + gl.attachShader(shaderprogram, vertShader); + gl.attachShader(shaderprogram, fragShader); + gl.linkProgram(shaderprogram); + + /*======== Associating attributes to vertex shader =====*/ + var _Pmatrix = gl.getUniformLocation(shaderprogram, 'Pmatrix'); + var _Vmatrix = gl.getUniformLocation(shaderprogram, 'Vmatrix'); + var _Mmatrix = gl.getUniformLocation(shaderprogram, 'Mmatrix'); + + gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer); + var _position = gl.getAttribLocation(shaderprogram, 'position'); + gl.vertexAttribPointer(_position, 3, gl.FLOAT, false, 0, 0); + gl.enableVertexAttribArray(_position); + + gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer); + var _color = gl.getAttribLocation(shaderprogram, 'color'); + gl.vertexAttribPointer(_color, 3, gl.FLOAT, false, 0, 0); + gl.enableVertexAttribArray(_color); + gl.useProgram(shaderprogram); + + /*==================== MATRIX ====================== */ + + function get_projection(angle, a, zMin, zMax) { + var ang = Math.tan((angle * 0.5 * Math.PI) / 180); //angle*.5 + return [0.5 / ang, 0, 0, 0, 0, (0.5 * a) / ang, 0, 0, 0, 0, -(zMax + zMin) / (zMax - zMin), -1, 0, 0, (-2 * zMax * zMin) / (zMax - zMin), 0]; + } + + var proj_matrix = get_projection(40, width / height, 1, 100); + var mo_matrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; + var view_matrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; + + view_matrix[14] = view_matrix[14] - 6; + + /*================= Mouse events ======================*/ + + var AMORTIZATION = 0.95; + var drag = false; + var old_x, old_y; + var dX = 0, + dY = 0; + + var mouseDown = function (event) { + drag = true; + const e = event.changedTouches[0]; + (old_x = e.pageX), (old_y = e.pageY); + e.preventDefault(); + return false; + }; + + var mouseUp = function (e) { + drag = false; + }; + + var mouseMove = function (event) { + if (!drag) return false; + const e = event.changedTouches[0]; + (dX = ((e.pageX - old_x) * 2 * Math.PI) / width), (dY = ((e.pageY - old_y) * 2 * Math.PI) / height); + THETA += dX; + PHI += dY; + (old_x = e.pageX), (old_y = e.pageY); + e.preventDefault(); + }; + + canvas.addEventListener('touchstart', mouseDown, false); + canvas.addEventListener('touchend', mouseUp, false); + canvas.addEventListener('touchcancel', mouseUp, false); + canvas.addEventListener('touchmove', mouseMove, false); + + /*=========================rotation================*/ + + function rotateX(m, angle) { + var c = Math.cos(angle); + var s = Math.sin(angle); + var mv1 = m[1], + mv5 = m[5], + mv9 = m[9]; + + m[1] = m[1] * c - m[2] * s; + m[5] = m[5] * c - m[6] * s; + m[9] = m[9] * c - m[10] * s; + + m[2] = m[2] * c + mv1 * s; + m[6] = m[6] * c + mv5 * s; + m[10] = m[10] * c + mv9 * s; + } + + function rotateY(m, angle) { + var c = Math.cos(angle); + var s = Math.sin(angle); + var mv0 = m[0], + mv4 = m[4], + mv8 = m[8]; + + m[0] = c * m[0] + s * m[2]; + m[4] = c * m[4] + s * m[6]; + m[8] = c * m[8] + s * m[10]; + + m[2] = c * m[2] - s * mv0; + m[6] = c * m[6] - s * mv4; + m[10] = c * m[10] - s * mv8; + } + + /*=================== Drawing =================== */ + + var THETA = 0, + PHI = 0; + var time_old = 0; + + var animate = function (time) { + var dt = time - time_old; + + if (!drag) { + (dX *= AMORTIZATION), (dY *= AMORTIZATION); + (THETA += dX), (PHI += dY); + } + + //set model matrix to I4 + + (mo_matrix[0] = 1), (mo_matrix[1] = 0), (mo_matrix[2] = 0), (mo_matrix[3] = 0), (mo_matrix[4] = 0), (mo_matrix[5] = 1), (mo_matrix[6] = 0), (mo_matrix[7] = 0), (mo_matrix[8] = 0), (mo_matrix[9] = 0), (mo_matrix[10] = 1), (mo_matrix[11] = 0), (mo_matrix[12] = 0), (mo_matrix[13] = 0), (mo_matrix[14] = 0), (mo_matrix[15] = 1); + + rotateY(mo_matrix, THETA); + rotateX(mo_matrix, PHI); + + time_old = time; + gl.enable(gl.DEPTH_TEST); + gl.depthMask(true); + //gl.depthFunc(gl.LEQUAL); + + gl.clearColor(0.5, 0.5, 0.5, 0.9); + gl.clearDepth(1.0); + gl.viewport(0.0, 0.0, width, height); + gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); + + gl.uniformMatrix4fv(_Pmatrix, false, proj_matrix); + gl.uniformMatrix4fv(_Vmatrix, false, view_matrix); + gl.uniformMatrix4fv(_Mmatrix, false, mo_matrix); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buffer); + gl.drawElements(gl.TRIANGLES, indices.length, gl.UNSIGNED_SHORT, 0); + LAF = requestAnimationFrame(animate); + }; + animate(0); } export function cancelInteractiveCube() { - cancelAnimationFrame(LAF); - LAF = 0; + cancelAnimationFrame(LAF); + LAF = 0; }