Multi-touch manipulation of application objects
First Claim
1. A method of interpreting low-level touch inputs into corresponding manipulation events, the method performed on a computing device having a touch-sensitive input surface and a display, the method comprising:
- receiving low-level touch inputs that correspond to touches of the touch-sensitive input surface, the low-level touch inputs comprising locations of contacts with the touch-sensitive input surface, the low-level touch inputs received by applications executing on the computing device, the low-level touch inputs comprising two-dimensional input points corresponding to touches of the touch-sensitive input surface;
sending the received low-level touch inputs to a manipulation system by use of a manipulation API (application programming interface), the manipulation system interpreting the received low-level touch inputs into corresponding manipulation events, wherein the manipulation system is invocable by arbitrary applications on the computing device via the manipulation API, the low-level touch inputs sent by the applications invoking the API;
receiving, at the applications, the manipulation events, the manipulation events comprising geometric transforms produced by the manipulation system according to the low-level inputs; and
handling, by the applications, the received manipulation events.
1 Assignment
0 Petitions
Accused Products
Abstract
The manipulation system described herein provides a common platform and application-programming interface (API) for applications to communicate with various multi-touch hardware devices, and facilitates the interpretation of multi-touch input as one or more manipulations. Manipulations map more directly to user intentions than do individual touch inputs and add support for basic transformation of objects using multiple touch contacts. An application can use manipulations to support rotating, resizing, and translating multiple objects at the same time. The manipulation system outputs two-dimensional (2D) affine transforms that contain rotation, scale, and translation information. Thus, using the manipulation system the application author can focus more on building touch-capable applications and let the manipulation system handle the underlying transformations and communication with the multi-touch hardware.
26 Citations
20 Claims
-
1. A method of interpreting low-level touch inputs into corresponding manipulation events, the method performed on a computing device having a touch-sensitive input surface and a display, the method comprising:
-
receiving low-level touch inputs that correspond to touches of the touch-sensitive input surface, the low-level touch inputs comprising locations of contacts with the touch-sensitive input surface, the low-level touch inputs received by applications executing on the computing device, the low-level touch inputs comprising two-dimensional input points corresponding to touches of the touch-sensitive input surface; sending the received low-level touch inputs to a manipulation system by use of a manipulation API (application programming interface), the manipulation system interpreting the received low-level touch inputs into corresponding manipulation events, wherein the manipulation system is invocable by arbitrary applications on the computing device via the manipulation API, the low-level touch inputs sent by the applications invoking the API; receiving, at the applications, the manipulation events, the manipulation events comprising geometric transforms produced by the manipulation system according to the low-level inputs; and handling, by the applications, the received manipulation events. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A device for handling touch input from multi-touch hardware, the device configures such that when it is operating it comprises:
-
a plurality of modules that each receive low-level inputs for respective applications on the computer device, the low-level inputs originating from a contact-sensitive input device, each module translating portions of the low-level inputs to manipulations that are then received by the respective applications, the manipulations comprising geometric transforms, the low-level touch inputs comprising two-dimensional inputs; and wherein the low-level inputs, which correspond to user interactions, are received by the modules and the applications receive corresponding manipulations translated by the modules that the applications use to display graphic objects, the low-level inputs having been produced responsive to a user contacting the contact-sensitive input device to interact with the applications. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer-readable storage device storing information that when processed causes a computing device to perform a process, the process comprising:
-
receiving inputs, each input having been inputted by a user and each input comprising a two-dimensional location and having a corresponding occurrence time, the inputs having been inputted by the user using first and second physical contacts contacting an input device of the computing device, the inputs comprising first inputs inputted by the first physical contact and second inputs inputted by the second physical contact; handling the inputs at an application executing on the computing device by passing the inputs to a manipulation processing system executing on the computing device; receiving the inputs by the manipulation processing system, the manipulation processing system determining from the inputs which of the inputs were inputted with the first physical contact and which of the inputs were inputted with the second physical contact, wherein the manipulation processing system is available to be invoked by arbitrary applications executing on the computing device that have inputs to be processed. - View Dependent Claims (17, 18, 19, 20)
-
Specification