IP Library Granted Patent US 9,569,079
Granted Patent B2
US 9,569,079 · App. 14/338,746 · Granted Feb 14, 2017

Input aggregation for a multi-touch device

Inventors: Doug Kramer (Bothell, WA); Kevin Kennedy (Kirkland, WA); Maxim Mazeev (Redmond, WA); Sundaram Ramani (Redmond, WA); Robert Levy (Springfield, VA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F3/04845G06F3/0412G06F3/04883G06F2203/04808
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,569,079
App. No.
14/338,746
Granted
Feb 14, 2017
Kind
B2
Abstract

The aggregation of multiple inputs in a touch-sensitive input device is disclosed. For example, one disclosed embodiment comprises receiving multiple inputs related to a virtual object, aggregating the inputs into an aggregated output, and providing the aggregated output to an application that controls the virtual object.

Claims (55)

1. A computing system, comprising:

a processor; and

memory comprising stored instructions that are executable by the processor to output to a display device a virtual object that is controlled by a control;

receive from a touch sensor a first touch input related to the virtual object;

receive via the touch sensor a second touch input related to the virtual object;

determine if the first touch input and the second touch input are relevant to a manipulation processor configured to aggregate multiple touch inputs and provide aggregated output to the control;

if the first touch input and the second touch input are not determined to be relevant to the manipulation processor, not forward the first touch input and the second touch input to the manipulation processor; and

in response to at least the first touch input and the second touch input being determined to be relevant to the manipulation processor:

forward the first touch input and the second touch input from the control to the manipulation processor;

aggregate via the manipulation processor the first touch input and the second touch input into an aggregated output;

provide the aggregated output to the control; and

vary a display of the virtual object based upon the aggregated output.

2. The computing system of claim 1 , wherein the instructions executable to provide the aggregated output are executable to provide information related to one or more of a position, a translation, a rotation and a scaling of the virtual object.

3. The computing system of claim 2 , wherein the instructions executable to provide the information related to a position are executable to provide an average location of the first touch input and the second touch input.

4. The computing system of claim 2 , wherein the instructions executable to provide the information related to a translation are executable to provide information regarding a translation of an average location of the first touch input and the second touch input.

5. The computing system of claim 2 , wherein the instructions executable to provide the information related to a rotation are executable to provide information related to a degree of rotation about an average location of the first touch input and the second touch input relative to a reference direction.

6. The computing system of claim 1 , wherein the instructions executable to aggregate the first touch input and the second touch input into an aggregated output are executable to aggregate temporally non-overlapping touch inputs into an aggregated output.

7. A computing system, comprising:

a processor; and

memory comprising stored instructions that are executable by the processor to aggregate inputs from a multi-touch input device, the inputs being related to a virtual object, and the instructions being executable to

detect a first touch input from a first manipulator;

pass the first touch input to an application;

detect a second touch input from a second manipulator;

pass the second touch input to the application;

determine at the application if the first touch input and the second touch input are relevant to a manipulation processor;

if the first touch input and the second touch input are not determined to be relevant to the manipulation processor, not forward the first touch input and the second touch input to the manipulation processor;

if the first touch input and the second touch input are relevant to the manipulation processor:

pass the first touch input from the application to the manipulation processor;

pass the second touch input from the application to the manipulation processor;

aggregate the first touch and second touch inputs into an aggregated output comprising information related to one or more of a position, a translation, a rotation and a scaling of the virtual object; and

pass additional inputs from the first manipulator and the second manipulator directly to the manipulation processor.

8. The computing system of claim 7 , wherein the information related to a position comprises an average location of the first touch input and the second touch input.

9. The computing system of claim 7 , wherein the information related to a translation comprises a translation of an average location of the first touch input and the second touch input.

10. The computing system of claim 7 , wherein the information related to a rotation comprises a degree of rotation about an average location of the first touch input and the second touch input relative to a reference direction.

11. The computing system of claim 7 , wherein the information related to a scaling is a scaling of the first touch input and the second touch input in relation to an average location.

12. The computing system of claim 7 , wherein the information further comprises information regarding one or more of a wheel input, a virtual object zoom, a tap, and a touch-and-hold.

13. A computing system, comprising:

a touch-sensitive display comprising a touch sensing mechanism configured to detect multiple touch inputs related to a virtual object displayed on the display;

a processor; and

memory comprising computer-readable instructions executable by the processor to

output to the touch-sensitive display device a virtual object that is controlled by a control;

receive via the touch-sensitive display a first touch input related to the virtual object;

receive via the touch-sensitive display a second touch input related to the virtual object;

determine if the first touch input and the second touch input are relevant to a manipulation processor configured to aggregate multiple touch inputs and provide aggregated output to the control;

if the first touch input and the second touch input are not determined to be relevant to the manipulation processor, not forward the first touch input and the second touch input to the manipulation processor;

in response to at least the first touch input and the second touch input being determined to be relevant to the manipulation processor:

send the first touch input and the second touch input from the control to the manipulation processor;

aggregate via the manipulation processor the first touch input and the second touch input into an aggregated output;

provide the aggregated output to the control; and

vary a display of the virtual object on the touch-sensitive display based upon the aggregated output.

14. The computing system of claim 13 , wherein the instructions executable to provide the aggregated output are executable to provide information related to one or more of a position, a translation, a rotation and a scaling of the virtual object.

15. The computing system of claim 14 , wherein the instructions executable to provide the information related to a position are executable to provide an average location of the first touch input and the second touch input.

16. The computing system of claim 14 , wherein the instructions executable to provide the information related to a translation are executable to provide information regarding a translation of an average location of the first touch input and the second touch input.

17. The computing system of claim 14 , wherein the instructions executable to provide the information related to a rotation are executable to provide information related to a degree of rotation about an average location of the first touch input and the second touch input relative to a reference direction.

18. The computing system of claim 13 , wherein the instructions executable to aggregate the first touch input and the second touch input into an aggregated output are executable to aggregate temporally non-overlapping touch inputs into an aggregated output.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: KRAMER, DOUG; KENNEDY, KEVIN; MAZEEV, MAXIM; RAMANI, SUNDARAM; LEVY, ROBERT
To: MICROSOFT CORPORATION
Reel/Frame 033373/0892 →
Continuity (2)
Continuation 12038774 · Feb 27, 2008
Related Publication 20140333560A1 · Nov 13, 2014