Patent ID: 8325181
Filing Date: 2012-12-04
Classification: G06F

Abstract:
1. A computer-implemented method of manipulating a three-dimensional object displayed in a multi-touch display device, the method comprising: accessing a three-dimensional object-space data set from a computer memory storage device, the three-dimensional object-space data set representing a three-dimensional object in object-space and specifying points on a surface of the three dimensional object in three dimensions in object-space; accessing an initial object transformation vector that specifies at least a location and a rotational orientation of the three-dimensional object in world-space; determining, using at least one computer processor, a three-dimensional world-space data set by applying the initial object transformation vector to the three-dimensional object-space data set, the three-dimensional world-space data set representing the three dimensional object in world-space and specifying points on the surface of the three dimensional object in three dimensions in world-space; accessing, from the computer memory storage device, data representing an image plane in world-space; determining a two-dimensional screen-space data set corresponding to a three-dimensional view of the three-dimensional object by projecting the three-dimensional world-space data set onto the image plane based on the data representing the image plane, the two-dimensional screen-space data set specifying points on the surface of the three dimensional object as viewed on the image plane in two dimensions in screen-space; rendering, on the multi-touch display device, the three-dimensional view of the three-dimensional object based on the two-dimensional screen-space data set; detecting touching by one or more input mechanisms of a first touch point on the multi-touch display device, the first touch point being located at a first initial screen-space location; matching the first touch point to a first contact point on the surface of the three-dimensional object, the first contact point being a point on the surface of the three dimensional object in object-space that, when transformed into world-space using the initial object transformation vector and then projected onto the image plane for rendering, is displayed by the multi-touch display device at the first initial screen-space location of the first touch point; tracking, based on movement of the one or more input mechanisms while the one or more input mechanisms remain touching the multi-touch display device, movement of the first touch point from the first initial screen-space location to a first final screen-space location; accessing an object-space constraint point, the object-space constraint point being a point on the surface of the three-dimensional object in object-space; determining a world-space constraint point by transforming the object-space constraint point using the initial object transformation vector, the world-space constraint point being located at a first world-space location; determining a new object transformation vector that, when applied to the three-dimensional object-space data set, results in a new three-dimensional world-space data set that when projected onto the image plane results in a new two-dimensional screen-space data set corresponding to a new view of the three dimensional object, the new three-dimensional world-space data set satisfying the constraint that the object-space constraint point, when transformed into world space using the new transformation vector, is positioned substantially at the first world-space location and the new two dimensional screen-space data set satisfying the constraint that the first contact point, when transformed into world-space using the new object transformation vector and then projected onto the image plane for rendering, is displayed substantially at the first final screen-space location; and rendering, on the multi-touch display device, the new three-dimensional view of the three-dimensional object based on the new two-dimensional screen-space data set, the new three dimensional view being a view of the three-dimensional object wherein each contact point remains displayed by the multi-touch display device substantially underneath its corresponding touch point.