Multi-touch object inertia simulation
First Claim
1. A method performed by a computing device, the computing device comprising processing hardware, storage hardware, and an input device, the input device configured to detect multiple concurrent input points, the method comprising:
- executing an operating system, the operating system controlling execution of an application by the processing hardware, the application comprising a graphic object, a manipulation processor, and an inertia simulator;
receiving, from the operating system, inputs, the inputs comprising two-dimensional location information corresponding to respective input points detected by the input device and corresponding to input inputted by physical contact with the input device;
in accordance with logic of the application that links the manipulation processor with the inputs, passing the inputs from the application to the manipulation processor until the inputs are determined to have terminated;
receiving, by the application, manipulation notifications generated by the manipulation processor, each manipulation notification comprising a respective geometric transform derived by the manipulation processor interpreting the two-dimensional location information of the inputs;
based on a signal sent from the manipulation processor, the signal sent based on the manipulation processor determining from the inputs that the stroke has terminated, initializing the inertia simulator with initialization information that is based on motion information provided by the manipulation processor;
applying, by the application, the geometric transforms of the manipulation notifications to the graphic object displayed by the computing device, wherein the application of the geometric transforms results in display of corresponding graphical transformation of the graphic object on the display, wherein, before the inputs terminate, the graphical transformations correspond to the inputs; and
after the initializing, displaying the graphic object according to inertial movements computed by the inertia simulator based on the initialization information.
2 Assignments
0 Petitions
Accused Products
Abstract
The inertia system provides a common platform and application-programming interface (API) for applications to extend the input received from various multi-touch hardware devices to simulate real-world behavior of application objects. To move naturally, application objects should exhibit physical characteristics such as elasticity and deceleration. When a user lifts all contacts from an object, the inertia system provides additional manipulation events to the application so that the application can handle the events as if the user was still moving the object with touch. The inertia system generates the events based on a simulation of the behavior of the objects. If the user moves an object into another object, the inertia system simulates the boundary characteristics of the objects. Thus, the inertia system provides more realistic movement for application objects manipulated using multi-touch hardware and the API provides a consistent feel to manipulations across applications.
166 Citations
20 Claims
-
1. A method performed by a computing device, the computing device comprising processing hardware, storage hardware, and an input device, the input device configured to detect multiple concurrent input points, the method comprising:
-
executing an operating system, the operating system controlling execution of an application by the processing hardware, the application comprising a graphic object, a manipulation processor, and an inertia simulator; receiving, from the operating system, inputs, the inputs comprising two-dimensional location information corresponding to respective input points detected by the input device and corresponding to input inputted by physical contact with the input device; in accordance with logic of the application that links the manipulation processor with the inputs, passing the inputs from the application to the manipulation processor until the inputs are determined to have terminated; receiving, by the application, manipulation notifications generated by the manipulation processor, each manipulation notification comprising a respective geometric transform derived by the manipulation processor interpreting the two-dimensional location information of the inputs; based on a signal sent from the manipulation processor, the signal sent based on the manipulation processor determining from the inputs that the stroke has terminated, initializing the inertia simulator with initialization information that is based on motion information provided by the manipulation processor; applying, by the application, the geometric transforms of the manipulation notifications to the graphic object displayed by the computing device, wherein the application of the geometric transforms results in display of corresponding graphical transformation of the graphic object on the display, wherein, before the inputs terminate, the graphical transformations correspond to the inputs; and after the initializing, displaying the graphic object according to inertial movements computed by the inertia simulator based on the initialization information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device comprising:
-
a contact-sensitive surface; a display; processing hardware; storage hardware storing instructions executable by the processing hardware of the computing device, the instructions configured to cause the processing hardware to perform a process, the process comprising; providing a first module and a second module for an application executing on the computing device, the first module and the second module invoked through one or more APIs that are accessible to applications executing on the computing device; and computing, by the first and second modules, affine transform events and manipulating, by the application, a graphic object displayed by the display according to the affine transform events, wherein some of the affine transform events are computed by the first module receiving and tracking locations of an input point on the contact-sensitive surface and wherein other of the affine transform events are computed by the second module simulating inertial affine transforms for the graphic object, each affine transform event comprising a translation and/or rotation and/or scale transform, wherein the locations are provided by the contact-sensitive surface sensing the input point. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computing device comprising:
-
a contact-sensitive surface; a display; processing hardware; storage hardware storing instructions executable by the processing hardware of the computing device, the instructions configured to cause the processing hardware to perform a process, the process comprising; providing a first module and a second module for an application executing on the computing device, the first module and the second module invoked through one or more APIs that are accessible to applications executing on the computing device; and computing, for the application, affine transform events and manipulating, by the application, a graphic object displayed by the display according to the affine transform events, wherein some of the affine transform events are computed by the first module receiving and tracking locations of an input point on the contact-sensitive surface and wherein other of the affine transform events are computed by the second module simulating inertial affine transforms for the graphic object, each affine transform event comprising a translation and/or rotation and/or scale transform, wherein the locations are provided by the contact-sensitive surface sensing the input point. - View Dependent Claims (18, 19, 20)
-
Specification