setEvent(
		event,
		pageX = 0,
		pageY = 0,
		clientX = 0,
		clientY = 0,
		pointerId = 1,
	) {
		// the original event object
		this.event = event;

		this.pageX = pageX;
		this.pageY = pageY;
		this.clientX = clientX;
		this.clientY = clientY;

		// translate to local coordinates
		globalToLocal(this.pageX, this.pageY, tmpVec);
		this.gameScreenX = this.x = tmpVec.x;
		this.gameScreenY = this.y = tmpVec.y;

		// true if not originally a pointer event
		this.isNormalized =
			typeof globalThis.PointerEvent !== "undefined" &&
			!(event instanceof globalThis.PointerEvent);

		this.locked = locked;
		this.movementX = event.movementX || 0;
		this.movementY = event.movementY || 0;

		if (event.type === "wheel") {
			this.deltaMode = event.deltaMode || 0;
			this.deltaX = event.deltaX || 0;
			this.deltaY = event.deltaY || 0;
			this.deltaZ = event.deltaZ || 0;
		} else {
			this.deltaMode = 0;
			this.deltaX = 0;
			this.deltaY = 0;
			this.deltaZ = 0;
		}

		this.pointerId = pointerId;

		this.isPrimary =
			typeof event.isPrimary !== "undefined" ? event.isPrimary : true;

		// in case of touch events, button is not defined
		this.button = event.button || 0;

		this.type = event.type;

		// get the current screen to game world offset
		if (typeof game.viewport !== "undefined") {
			game.viewport.localToWorld(this.gameScreenX, this.gameScreenY, tmpVec);
		}

		/* Initialize the two coordinate space properties. */
		this.gameWorldX = tmpVec.x;
		this.gameWorldY = tmpVec.y;

		// get the pointer size
		if (this.isNormalized === false) {
			// native PointerEvent
			this.width = event.width || 1;
			this.height = event.height || 1;
		} else if (typeof event.radiusX === "number") {
			// TouchEvent
			this.width = event.radiusX * 2 || 1;
			this.height = event.radiusY * 2 || 1;
		} else {
			this.width = this.height = 1;
		}
	}
initialize the Pointer object using the given Event Object
@private
@param {Event} event - the original Event object
@param {number} [pageX=0] - the horizontal coordinate at which the event occurred, relative to the left edge of the entire document
@param {number} [pageY=0] - the vertical coordinate at which the event occurred, relative to the left edge of the entire document
@param {number} [clientX=0] - the horizontal coordinate within the application's client area at which the event occurred
@param {number} [clientY=0] - the vertical coordinate within the application's client area at which the event occurred
@param {number} [pointerId=1] - the Pointer, Touch or Mouse event Id (1)