PRESSURE-SENSITIVE LAYERING OF DISPLAYED OBJECTS
First and second objects are displayed on a pressure-sensitive touch-screen display device. An intersection is detected between the objects. Contact by one or more input mechanisms is detected in a region that corresponds to the first displayed object. Pressure applied by at least one input mechanisms is sensed. The depth of the first displayed object is adjusted as a function of the sensed pressure. The depth of the displayed objects are determined at their detected intersection. The determined depths of the displayed objects are compared. Based on a result of comparing the determined depths, data is stored indicating that one of the displayed objects is overlapping the other. In addition, the displayed objects are displayed such that the overlapping displayed object is displayed closer to a foreground of the pressure-sensitive touch-screen display device than the other displayed object.
Latest Perceptive Pixel Inc. Patents:
- Event Registration and Dispatch System and Method for Multi-Point Controls
- Organizational tools on a multi-touch display device
- Event Registration and Dispatch System and Method for Multi-Point Controls
- Input classification for multi-touch systems
- Organizational tools on a multi-touch display device
This application is a continuation of U.S. patent application Ser. No. 12/422,974, filed on Apr. 13, 2009, and titled “PRESSURE-SENSITIVE LAYERING OF DISPLAYED OBJECTS” which claims priority to U.S. Provisional Patent Application Ser. No. 61/044,109 entitled “Extending 2D Object Arrangement with Pressure-Sensitive Layering Cues” filed Apr. 11, 2008, which are incorporated herein by reference in their entirety.
TECHNICAL FIELDThis disclosure relates to pressure-sensitive layering of objects displayed on a display device, especially a display device configured to support multi-touch or multi-point controls.
BACKGROUNDRotate-Scale-Translate (RST) transform controls provide four degrees of freedom for performing a transformation on a two-dimensional displayed object. A variety of techniques for freely manipulating the position of displayed objects in two-dimensions have been developed for multi-point devices, but techniques for performing layering operations on displayed objects remain largely undeveloped for multi-point devices.
SUMMARYIn one general aspect, two or more objects are displayed on a pressure-sensitive touch-screen display device. User input is received through user interaction with the pressure-sensitive touch-screen display device, and a transformation is performed on at least one of a first one of the two or more displayed objects and a second one of the two or more displayed objects as a function of the received user input. An intersection is detected between the first displayed object and the second displayed object. Contact with the pressure-sensitive touch-screen display device by one or more input mechanisms is detected in a region of the pressure-sensitive touch-screen display device that corresponds to the first displayed object. In addition, pressure applied to the pressure-sensitive touch-screen display device by at least one of the input mechanisms is sensed, and the depth of the first displayed object is adjusted relative to a display plane as a function of the sensed pressure applied to the pressure-sensitive display device. The depth of the first displayed object is determined at its detected intersection with the second displayed object, and the depth of the second displayed object is determined at its detected intersection with the first displayed object. The determined depths of the first and second displayed objects at their detected intersection then are compared. Based on a result of comparing the determined depths of the first and second displayed objects at their detected intersection, data is stored indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects. In addition, the first and second displayed objects are displayed on the pressure-sensitive touch-screen display device in accordance with the stored data such that the overlapping displayed object is displayed closer to a foreground of the pressure-sensitive touch-screen display device than the other displayed object.
Implementations may include one or more of the following features. For example, a tilt plane may be calculated for the first displayed object as a function of the sensed pressure applied to the pressure-sensitive display device. In addition, a tilt may be applied to the first displayed object as a function of the calculated tilt plane for the first displayed object. In such implementations, the depth of the first displayed object may be determined to be higher than the depth of the second displayed object at its detected intersection with the second displayed object based on the tilt applied to the first displayed object.
In some implementations, a tilt may be applied to the first displayed object such that, at its intersection with the second displayed object, the first displayed object is raised above the display plane of the pressure-sensitive touch-screen display device. In such implementations, the depth of the first displayed object may be determined to be higher than the depth of the second displayed object at the detected intersection between the first displayed object and the second displayed object and data may be stored indicating that the first displayed object is overlapping the second displayed object.
Alternatively, a tilt may be applied to the first displayed object such that, at its intersection with the second displayed object, the first displayed object is depressed below the display plane of the pressure-sensitive touch-screen display device. In such implementations, the depth of the first displayed object may be determined to be lower than the depth of the second displayed object at the detected intersection between the first displayed object and the second displayed object and data may be stored indicating that the second displayed object is overlapping the first displayed object.
Additionally or alternatively, contact may be detected with the pressure-sensitive touch-screen display device by one or more additional input mechanisms in a region of the pressure-sensitive touch-screen display device that corresponds to the second displayed object. The pressure applied to the pressure-sensitive touch-screen display device by at least one of the additional input mechanisms may be sensed, and a tilt plane may be calculated for the second displayed object as a function of the sensed pressure. A tilt may be applied to the second displayed object as a function of the calculated tilt plane for the second displayed object. In such implementations, a depth of the second displayed object at its detected intersection with the first displayed object may be determined based on the tilt applied to the second displayed object.
In some implementations, data reflecting a global ordering of objects displayed by the pressure-sensitive touch-screen display device may be maintained. If the determined depths of the first and second displayed objects at their detected intersection are the same or are inconsistent, the maintained global ordering of objects may be accessed, and one of the first and second displayed objects may be determined to be overlapping the other of the first and second displayed objects based on the accessed global ordering of objects. If the determined depths of the first and second displayed objects at their detected intersection are determined to be inconsistent, a visual or audio alert may be generated.
An overlap list may be maintained for the first displayed object for recording other displayed objects that are overlapped by the first displayed object. Similarly, an underlap list may be maintained for the second displayed object for recording other displayed objects that are underlapped by the second displayed object. In such implementations, if the first displayed object is determined to be overlapping the second displayed object, the overlap list for the first displayed object may be updated to reflect that the first displayed object is overlapping the second displayed object, and the underlap list for the second displayed object may be updated to reflect that the second displayed object is underlapping the first displayed object. In implementations in which data reflecting a global ordering of objects displayed by the pressure-sensitive touch-screen display device is maintained, the data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display device may be updated based on the overlap list that is associated with the first displayed object and the underlap list that is associated with the second displayed object.
A third object may be displayed on the pressure-sensitive touch-screen display device, and a new intersection between the first displayed object and the third displayed object may be detected. In response to detecting the intersection between the first displayed object and the third displayed object, an overlap list for the first displayed object may be accessed, and it may be determined that the first displayed object already overlaps the third displayed object based on the accessed overlap list for the first displayed object. Thereafter, the first and third displayed objects may be displayed on the pressure-sensitive touch-screen display device such that the first displayed object is overlapping the third displayed object at their new intersection as a consequence of having determined that the first displayed object already overlaps the third displayed object.
The first and second displayed objects may be displayed on the pressure-sensitive touch-screen display device such that the first displayed object is overlapping the second displayed object. An indication of a two-dimensional position of the second displayed object may be stored as a return position for the second displayed object and a first translation may be performed on the second displayed object as a function of received user input. As a consequence of the first translation performed on the second displayed object, it may be detected that the first displayed object and the second displayed object no longer are intersecting. A second translation then may be performed on the second displayed object as a function of received user input. A new intersection between the first displayed object and the second displayed object may be detected as a consequence of the second translation performed on the second displayed object. Pressure applied to the pressure-sensitive touch-screen display device by at least one input mechanisms detected to be contacting the pressure-sensitive touch-screen display device in the region of the pressure-sensitive touch-screen display device that corresponds to the second displayed object may be sensed, and the depth of the second displayed object relative to the display plane may be adjusted as a function of the sensed pressure applied to the pressure-sensitive display device. The depth of the first displayed object at its new detected intersection with the second displayed object may be determined. In addition, the depth of the second displayed object at its new detected intersection with the first displayed object may be determined. The determined depths of the first and second displayed objects at their new detected intersection then may be compared, and the depth of the second displayed object may be determined to be higher than the depth of the first displayed object at their detected new intersection. Data indicating that the second displayed object is overlapping the first displayed object the may be stored. In addition, it may be determined that the second displayed object is within a threshold distance of the return position for the second displayed object as a consequence of the second translation performed on the second displayed object. While the second displayed object remains separated from the return position for the second displayed object by less than the threshold distance, it may be detected that user interaction with the pressure-sensitive touch-screen display device has ceased. As a consequence of detecting that the user input has ceased while the second displayed object remains separated from the return position for the second displayed object by less than the threshold distance, the second displayed object may be returned to the return position for the second displayed object and the first and second displayed objects may be displayed such that the second displayed object is overlapping the first displayed object.
In some implementations, an intersection between the first and second objects may be detected by detecting an intersection between an edge of the first displayed object and an edge of the second displayed object. In such implementations, the depth of the first displayed object may be determined by determining the depth of the edge of the first displayed object and the depth of the second displayed object may be determined by determining the depth of the edge of the second displayed object. Furthermore, the depth of the edge of the first displayed object may be compared to the depth of the second displayed object.
Additionally or alternatively, the depth of the first displayed object may be determined by determining the depth of a portion of the first displayed object adjacent to the edge of the first displayed object and the depth of the second displayed object may be determined by determining the depth of a portion of the second displayed object adjacent to the edge of the second displayed object. In such implementations, the depth of the portion of the first displayed object adjacent to the edge of the first displayed object may be compared to the depth of the portion of the second displayed object adjacent to the edge of the second displayed object.
The various aspects, implementations, and features disclosed may be implemented using, for example, one or more of a method, an apparatus, a system, tool, or processing device for performing a method, a program or other set of instructions, an apparatus that includes a program or a set of instructions, and a computer program stored on a tangible, computer-readable storage medium. The tangible, computer-readable storage medium may include, for example, instructions that, when executed, cause a computer to perform acts specified by the instructions.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and the drawings, and from the claims.
FIGS. 2B(a) and 2B(b) are examples of images captured by an imaging sensor of the multi-touch display device of
A multi-touch display device is configured to detect contact with the surface of the multi-touch display device by one or more fingers (or other input mechanisms, hereinafter) and to interpret such contact as input to a computing system. Among other operations, the multi-touch display device is configured to enable users to directly manipulate displayed objects by contacting the multi-touch display device with one or more fingers in locations that correspond to a target object. For example, when the multi-touch display device detects that a displayed object has been contacted by two or more fingers, the multi-touch display device tracks movements of the two or more fingers while they remain in contact with the multi-touch display device and rotates, scales, and/or translates the displayed object in two dimensions as a function of the tracked movements of the fingers such that the points on the displayed object originally contacted by the fingers remain substantially underneath the contacting fingers as they move about the multi-touch display device.
Beyond merely detecting points of contact, the multi-touch display device also is configured to detect the pressure applied by a finger (or other input mechanism) at each point of contact on the surface of the multi-touch display device. Detecting the pressure applied by a finger (or other input mechanism) at each point of contact on the multi-touch display device enables the multi-touch display device to provide a pressure-sensitive tilt control that enables users to visibly tilt displayed objects relative to the plane on which the displayed objects are displayed by contacting displayed objects with varying amounts of pressure. For example, in response to detecting that a user is applying a relatively heavy pressure to one corner of a displayed object, the multi-touch display device may visibly tilt the displayed object such that the depressed corner of the displayed object is pushed below the plane of the display while the opposite corner of the displayed object is raised above the plane of the display.
The multi-touch display device implements a two-and-one-half (2½) dimensional rendering style that enables a layered, two-dimensional composition of displayed objects. In addition, the multi-touch display device provides a pressure-sensitive layering control that enables users to manipulate the layering of displayed objects by, for example, arranging displayed objects above or below one another in an under/overlapping fashion. In order to facilitate layering operations, the multi-touch display device incorporates the pressure-sensitive tilt control as a component of this pressure-sensitive layering control. For example, as the multi-touch display device performs changes to the shape or location of the displayed objects (perhaps under user control), the multi-touch display device monitors the boundaries of the displayed objects to identify new intersections between displayed objects, which potentially trigger a new pair-wise sorting operation. If the multi-touch display device detects a new intersection between two displayed objects as a consequence of changes to the shape or location of one or both of the displayed objects, the multi-touch display device determines whether either of the two objects currently is tilted relative to the plane of the display as a result of activation of the pressure-sensitive tilt control. If so, the multi-touch display device determines the relative depths of the two displayed objects in the intersecting region and then layers the two objects as a function of the relative depths of the two displayed objects in the intersecting region.
In this manner, the multi-touch display device enables a user to arrange a first object beneath a second object by, for example, tilting the first object off of the plane of the display device such that a side of the first object is depressed below the plan of the display by contacting the first object with appropriate in appropriate locations. Similarly, the multi-touch display device enables a user to arrange the first object above the second object by, for example, tilting the first object off of the plane of the display device such that a side of the first object is raised off of the plane of the display by contacting the first object with appropriate amounts of pressure in appropriate locations.
As illustrated in
In
In addition to detecting the contact made by fingers 108 and 110 with displayed object 102, the multi-touch display device 100 also detects the pressure applied by fingers 108 and 110 at their respective contact points and controls the tilt of displayed object 102 relative to the plane of the display as a function of the pressure applied by fingers 108 and 110. As illustrated in
As the multi-touch display device 100 translates displayed object 102 to the right as a function of the tracked movement of fingers 108 and 110, the multi-touch display device 100 detects that the right-side edge of displayed object 102 is approaching the left-side edge of displayed object 104. As a result, the multi-touch display device 100 detects a potential new intersection between displayed objects 102 and 104 and compares the relative depths of displayed objects 102 and 104 in the intersecting region in order to determine how to layer displayed objects 102 and 104. Due to the fact that the right-side edge of displayed object 102 is raised above the plane of the display, the multi-touch display device 100 determines that the depth of the left-side edge of displayed object 104 is below the depth of the right-side edge of 102(a) object 102. Consequently, the multi-touch display device 100 determines that displayed object 102 should be layered above displayed object 104 such that displayed object 102 overlaps displayed object 104. Thus, as the multi-touch display device 100 continues to translate displayed object 102 to the right, the multi-touch display device 100 displays displayed object 102 above displayed object 104 such that it appears that the user is dragging displayed object 102 over displayed object 104.
Referring to
Referring to
In sum, then, as illustrated in
Like the pressure-sensitive tilt control, the pressure-sensitive layering control provided by the multi-touch display device 100 also functions as a direct manipulation metaphor that enables a user to manipulate the layering of displayed objects without requiring a separate graphical user interface control component or other interface. To facilitate layering operations, secondary visual properties of displayed objects may be modified to provide a user with visual cues regarding the relative depths of objects rather than providing a separate graphical user interface control component or other interface for controlling layering operations.
Pressure-Sensitive Multi Point Display DeviceVarious different multi-touch display device configurations are capable of sensing pressure applied at contact points. For example, various pressure-sensitive multi-touch display device configurations are described in Han, J. Y. 2005, “Low-cost Multi-touch Sensing Through Frustrated Total Internal Reflection,” Proceedings of the 18th Annual ACM Symposium on User Interface Software and Technology (Seattle, Wash., USA, Oct. 23-26, 2005), UIST '05, ACM, New York, N.Y., 115-118, and commonly-owned co-pending U.S. patent application Ser. No. 11/833,908 (published as U.S. Patent Application Publication No. 2008/0179507) and Ser. No. 12/185,782 (published as U.S. Patent Application Publication No. 2008/0284925), each of which is incorporated herein by reference in its entirety.
The pressure-sensitive multi-touch display device 200 also includes a light-guide 206 (e.g., a sheet of acrylic) and a light source 208 (e.g., an array of light-emitting diodes (LEDs)) for injecting light (e.g., infrared (IR) radiation) into the light guide 206. Light emitted from the light source 208 undergoes total internal reflection (TIR) within the light guide 206, thus causing the emitted light to remain trapped within the light guide 206. When an appropriate object comes into contact with the light guide 206, TIR is frustrated causing some of the light within the light guide 206 to escape. This phenomenon is aptly named frustrated total internal reflection (FTIR).
The display surface 204 of the pressure-sensitive multi-touch display device 200 is composed of a deformable material that frustrates TIR in the light guide 206 when the display surface 204 contacts the light guide 206. Therefore, a small air gap 210 is maintained between the display surface 204 and the light guide 206 to prevent the display surface 204 from unintentionally contacting the light guide 206 and causing FTIR to occur.
When a finger 212 (or other input mechanism) contacts the display surface 204, the display surface 204 is deformed, causing the display surface 204 to contact the light guide 206. The contact between the display surface 204 and the light guide results in FTIR, and a portion of the light that escapes from the light guide 206 as a consequence of the resultant FTIR is directed back into the multi-touch display device 200. An imaging sensor 213 (e.g., a camera) captures images of the light that escapes from the light guide 206 as a result of FTIR such that points of contact on the multi-touch display device 200 appear as discriminable spots of light in images captured by the imaging sensor 213.
Images captured by imaging sensor 213 are processed by computing system 214 to identify points on the multi-touch display device 200 that have been contacted by a finger (or other input mechanism) by resolving spots of light in the captured images to corresponding points on the display surface 204. Computing system 214 may include one or more processors as well as one or more memory storage units. The one or more memory storage units may store instructions that, when executed by the one or more processors, cause the one or more processors to perform operations described throughout this disclosure.
When multiple fingers make contact with the display surface 204 simultaneously, FTIR occurs at each contact point. Consequently, light escapes from the light guide 206 at each contact point. The result is that multiple spots of light appear in images captured by the imaging sensor 213. The computing system 214 processes these images, discriminates the spots of light, and identifies the multiple points of contact by resolving the discriminated spots of light in the images to corresponding points on the display surface 204.
The computing system 214 generally treats detected points of contact on the display surface 204 as input and controls images displayed by the projector 202 according to such detected input.
In addition to detecting points of contact on the display surface 204, the multi-touch display device 200 also is capable of sensing the pressure applied by a finger (or other input mechanism) at each point of contact. In some implementations, when a relatively light amount of pressure is applied at a contact point, the region of the light guide 206 from which light escapes is relatively small. In contrast, when a relatively heavy amount of pressure is applied at a contact point, the region of the light guide 206 from which light escapes is relatively large. The result is that contact points where relatively light pressure is applied appear as relatively small spots of light in images captured by the imaging sensor 213, while contact points where relatively heavy pressure is applied appear as relatively large spots of light in images captured by the imaging sensor 213. In such implementations, the relationship between the amount of pressure applied at a contact point and the size of the resultant spot of light in an image captured by the imaging sensor 213 may be mapped, thereby enabling the computing system 214 to determine the amount of pressure applied at a contact point by calculating the size of the spot of light corresponding to the contact point in a captured image.
As illustrated in FIG. 2B(a), the five spots of light 252, 254, 256, 258, and 260 are of substantially the same size. Because the size of the area from which light escapes from the light guide 206 at a point of contact on the multi-touch display device 200 is a function of the amount of pressure applied at the contact point by a finger (or other input mechanism), it can be determined from the five spots of light 252, 254, 256, 258, and 260 captured in image 250 that the five digits of the user's right hand are all contacting the multi-touch display device 200 with substantially the same amount of pressure.
Referring to FIG. 2B(b), image 270 also includes five spots of light 272, 274, 276, 278, and 280. As with the spots of light 252, 254, 256, 258, and 260 captured in image 250, the spots of light 272, 274, 276, 278, and 280 captured in image 270 correspond to five points of contact on the multi-touch display device 200 made, for example, by the five digits of a user's right hand. In contrast to image 250 of FIG. 2B(a), however, the five spots of light 272, 274, 276, 278, and 280 captured in image 270 do not all have substantially the same size. The different sizes of the five spots of light 272, 274, 276, 278, and 280 may be attributed to the fact that the user is applying unequal amounts of pressure at the contact points on the multi-touch display device 200 with the five digits of the user's right hand. In particular, the user may be applying the greatest amount of pressure with the user's thumb and index finger (corresponding to spots of light 280 and 278 respectively) while applying slightly less pressure with the user's middle finger (corresponding to spot of light 276) and even less pressure with the user's ring and pinky fingers (corresponding to spots of light 274 and 272) respectively.
In some implementations, the intensity of light that escapes from the light guide and that is received by the imaging sensor may vary as a function of the amount of pressure applied at a contact point. In such implementations, contact points where relatively light pressure is applied appear as relatively faint spots of light in images captured by the imaging sensor, while contact points where relatively heavy pressure is applied appear as relatively bright spots of light in images captured by the imaging sensor. In such implementations, the relationship between the amount of pressure applied at a contact point and the intensity of the resultant spot of light in an image captured by the imaging sensor may be mapped (in addition to or as an alternative to mapping the size of the resultant spot of light), thereby enabling the computing system to determine the amount of pressure applied at a contact point by calculating the intensity and/or the size of the spot of light corresponding to the contact point in a captured image.
Pressure-Sensitive Tilt ControlThe ability of a pressure-sensitive multi-touch display device to sense the amount of pressure applied at contact points on the surface of the multi-touch display device can be utilized to provide a pressure-sensitive tilt control for tilting displayed objects off of the plane of the display.
The multi-touch display device 300 is configured to sense the pressure applied to the multi-touch display device at contact points by fingers. When one or more fingers contact the multi-touch display device 300 in positions corresponding to a displayed object, the multi-touch display device 300 senses the pressure applied at each contact point in a position corresponding to the displayed object and interprets the sensed pressure at each contact point as a depth relative to the display surface. In some implementations, the multi-touch display device 300 maps the zero-depth of the display surface to a non-zero threshold amount of pressure. In such implementations, the multi-touch display device 300 interprets detected pressure that is less than the non-zero threshold as corresponding to a depth that is above the display surface. In this manner, the multi-touch display device 300 enables a user to lift a portion of an object above the display surface (and/or another object) by contacting the displayed object with a relatively light amount of pressure. Similarly, the multi-touch display device 300 interprets detected pressure that is greater than the non-zero threshold as corresponding to a depth that his below the display surface. After the multi-touch display device 300 has determined the depth relative to the display surface for each contact point that is in a position corresponding to the displayed object, the multi-touch display device 300 solves for a plane (e.g., a “best-fit” plane) that approximately intersects the contact points at their determined depths. The multi-touch display device 300 then displays the displayed object on the calculated plane.
In FIG. 3A(b), a finger 304 is applying a relatively light amount of pressure to the multi-touch display device 300 in a region corresponding to the left side of displayed object 302. The multi-touch display device 300 has sensed that the pressure applied by the finger 304 to the multi-touch display device 300 is relatively light (e.g., less than a threshold amount) and, in response, tilted displayed object 302 off of the plane of the display such that the left side of displayed object 302 is raised slightly above the plane of the display while the right side of displayed object 304 is depressed slightly below the plane of the display.
Referring to FIG. 3A(c), the finger 304 is applying a relatively heavy amount of pressure to the multi-touch display device 300 in a region corresponding to the left side of displayed object 304. In response to detecting that the finger 304 is applying a relatively heavy amount of pressure to the left side of displayed object 304, the multi-touch display device 300 has visibly tilted displayed object 304 off of the plane of the display such that the left side of displayed object 304 is depressed slightly below the plane of the display while the right side of displayed object 302 is raised slightly above the plane of the display surface.
Finally, referring to FIG. 3A(d), three fingers 304, 306, and 308 are contacting the multi-touch display device 300 in positions corresponding to displayed object 302 with varying amounts of pressure. In response, the multi-touch display device 300 has interpreted the pressure applied by each of fingers 304, 306, and 308 as a depth relative to the display surface, solved for a plane that attempts to fit each of the contact points to its determined depth, and visibly tilted displayed object 302 such that it lies on the solved for plane.
Various different techniques may be employed by a pressure-sensitive multi-point display device to provide a pressure-sensitive tilt control such as those described above in connection with
The process begins when one or more input mechanisms (e.g., fingers) are detected as engaging a displayed object (322). When one or more input mechanisms are detected as engaging a displayed object, the pressure-sensitive multi-touch display device detects the pressure applied by the input mechanisms at each contact point (324).
Based on the detected pressure applied by the input mechanisms at each contact point, the pressure-sensitive multi-touch display device then calculates a tilt plane for the displayed object (326). In some implementations, the pressure-sensitive multi-touch display device defines a set of weak constraints around a unit circle centered at the center of the displayed object. As a result, the pressure-sensitive multi-touch display device may be able to calculate a tilt plane that is well defined for less than three input points. Furthermore, these constraints also may have the added effect of creating a soft “pivot point” at the center of the displayed object. In some implementations, the radius for these constraints may be defined to be approximately 90% smaller than that of the maximum inscribed circle for the convex hull of the displayed object. In such implementations, pressure applied by an input mechanism near the center of the displayed object generally causes the displayed object to be raised up or pushed down evenly, while pressure applied by an input mechanism closer to the boundary of the displayed object generally results in a tilt in the direction of the contact point.
After calculating the tilt plane for the displayed object, the multi-touch display device applies the calculated plane to the displayed object including applying various visual cues to the displayed object such that the displayed object appears to be lying along the calculated plane. The process illustrated in the flow chart 320 of
A pressure-sensitive multi-point display device that provides a pressure-sensitive tilt control may provide a variety of visual cues to indicate the relative tilt of a displayed object to a user. For example, a pressure-sensitive multi-point display device may apply a slight out-of-plane rotation that correlates to the tilt value calculated by the multi-touch display device and that alters the visible outline of the displayed object to the displayed object.
Additionally or alternatively, the multi-touch display device may use a lighting model that provides subtle shading effects on a displayed object to reflect a tilt applied to the displayed object.
FIG. 3C(a) illustrates shading effects applied to displayed object 340 to reflect the tilt applied to the displayed object 340 based on the pressure applied to the displayed object 340 at contact point 342. FIG. 3C(b) illustrates shading effects applied to displayed object 340 to reflect the tilt applied to the displayed object 340 based on the pressure applied at contact points 342 and 344. FIG. 3C(c) illustrates shading effects applied to displayed object 340 to reflect the tilt applied to the displayed object 340 based on the pressure applied at contact points 342 and 346. FIG. 3C(d) illustrates the shading effects applied to displayed object 340 to reflect the tilt applied to the displayed object 340 based on the pressure applied at contact points 342 and 346 when the pressure applied at contact point 346 is greater than the pressure applied at contact point 346 as illustrated in FIG. 3C(c). Comparing FIG. 3C(c) to FIG. 3C(d), the lower right corner of object 340 in FIG. 3C(d) is shaded more darkly than the lower right corner of object 340 in FIG. 3C(c) to reflect that the lower right corner of object 340 is depressed deeper into the display in FIG. 3C(d) than in FIG. 3C(c).
A pressure-sensitive multi-point display device also may apply hardware-based depth attenuation techniques to reflect a tilt applied to a displayed object in addition to or as an alternative to the other visual cues described above. For example, a pressure-sensitive multi-point display device may apply hardware-based depth attenuation techniques to darken portions of a displayed object as it is depressed deeper into the surface.
Additionally or alternatively, a pressure-sensitive multi-point display device may employ a drop shadow as a visual clue to reflect a tilt applied to a displayed object. For example, a multi-point display device may render a drop shadow around portions of a displayed object that are calculated as being raised above the plane of the display. As the portion of a displayed object is lifted higher above the plane of the display, the multi-point display device may increase the size and penumbral width of the drop shadow to reflect the increased tilt applied to the displayed object.
A pressure-sensitive multi-point display device that provides a pressure-sensitive tilt control, such as described above, may compose the pressure-sensitive tilt control with other controls for two-dimensional transformation (e.g., RST, RT, ST, T). Due to the fact that these two-dimensional transformation controls generally operate using position alone, sensed pressure values may be used exclusively for tilt calculation, enabling the pressure-sensitive tilt control and the two-dimensional transformation controls to remain relatively orthogonal.
Pressure-Sensitive Layering OperationsThe order in which a multi-point display device renders displayed objects is defined by a global ordering index. Displayed objects are rendered from back to front with lower-ordered objects being displayed at virtual layers that are lower than higher-ordered objects. As a result, the multi-point display device is capable of displaying objects in an under/overlapping fashion. For example, when an object displayed at a higher virtual layer than another displayed object overlaps a portion of the other displayed object, the multi-point display device renders the two displayed objects such that the overlapping portion of the higher-layer object occludes the overlapped portion of the other object.
The order in which the multi-touch display device 400 renders displayed objects 402, 404, 406, 408, 410, 412, and 414 is defined by a global ordering index maintained by the multi-touch display device 400. The multi-touch display device 400 may store the global ordering index in a table, a database, or any other suitable data structure. Table 1 is an example of a table in which a global ordering index is stored defining the order in which the multi-touch display device 400 rendered displayed objects 402, 404, 406, 408, 410, 412, and 414.
As illustrated in
The multi-touch display device 400 provides two-dimensional RST controls that enable a user to freely rotate, scale, and/or translate any of displayed objects 402, 404, 406, 408, 410, 412, and 414 about the two-dimensional canvas. Furthermore, and as described in greater detail below, the multi-touch display device 400 also provides a layering control that enables a user to manipulate the layering of displayed objects. For example, as illustrated in
In some implementations, in order to facilitate layering operations, a multi-touch display device maintains a pair of lists for each displayed object, one list that records all other objects that the displayed object overlaps and one list for all other objects that the displayed object underlaps. The multi-touch display device may store such overlap and underlap lists in a table, a database, or any other suitable data structure. For example, Tables 2-8 illustrate examples of overlap and underlap lists maintained by multi-touch display device for the purpose of recording the under/overlap relationships of displayed objects 402, 404, 406, 408, 410, 412, and 414 as displayed on
As is evident from Tables 2-8, the overlap list for any given displayed object includes any other displayed object that the displayed object overlaps, not just the overlapped object most directly below the displayed object. For example, as reflected in Table 7, both objects 408 and 414 are included in the overlap list of displayed object 412 notwithstanding that displayed object 412 overlaps displayed object 408 more directly than displayed object 414. Similarly, the underlap list for any given displayed object includes any other displayed object that the displayed object underlaps, not just the overlapping object most directly above the displayed object.
When the layering of displayed objects is modified, the multi-touch display device 400 updates the underlap and overlap lists for each impacted object to reflect the new under/overlap relationships between the impacted objects. For example, as a result of bringing displayed object 410 forward from its position in
Furthermore, and as will be described in greater detail below, after the underlap and overlap lists for each impacted object have been updated, the multi-touch display device 400 rebuilds the global ordering index to appropriately reflect the new under/overlap relationships between the impacted displayed objects based on the updated underlap and overlap lists for the displayed objects. For example, Table 11 illustrates an updated global ordering index defining a new order for rendering displayed objects 402, 404, 406, 408, 410, 412, and 414 so as to reflect the new under/overlap relationship between displayed objects 402, 404, 406, 408, 410, 412, and 414.
It should be noted that rebuilding the global ordering index for displayed objects after a layering operation has been performed to change the under/overlap relationship between two objects may not always be as simple as merely swapping the ordering indices for the two displayed objects. In fact, simply swapping the ordering indices for the two displayed objects may result in other under/overlap relationships between displayed objects being disrespected, which may be an undesirable result.
For example, considering the global ordering index defined in Table 1 for displaying objects 402, 404, 406, 408, 410, 412, and 414 as illustrated in
In particular, simply swapping the global ordering indices for displayed objects 406 and 410 would result in the multi-touch display device 400 rendering displayed objects 402, 404, 406, 408, 410, 412, and 414 as illustrated in
For layering operations in which the local layering of displayed objects is more important than the global ordering of displayed objects, the pressure-sensitive tilt control described above can be coupled with the techniques for layering displayed objects also described above to create a powerful pressure-sensitive layering control for layering objects on a pressure-sensitive multi-point display device. The semantic of an edge or corner of a displayed object being visibly tilted into or out of the screen provided by the pressure-sensitive tilt control elegantly conveys the intended orientation of a displayed object as it is moved relative to neighboring displayed objects. If two elements are nearly intersecting, a user can judge their relative depth to one another based on their respective tilt angles. Thus the user is able to infer which of the two elements will be placed on top of the other when the two displayed objects are brought into intersecting positions.
The process begins when the pressure-sensitive multi-touch display device detects a potential new visible intersection between two displayed objects (502). In some implementations, the multi-touch display device may detect a potential new visible intersection between two displayed objects by detecting that the two-dimensional boundaries of the two displayed objects visually have abutted one another and/or that the two-dimensional boundaries of the two displayed objects have intersected each other by more than a threshold distance or area. Alternatively, in other implementations, the multi-touch display device may detect a potential new visible intersection between two displayed objects by detecting that the two-dimensional boundaries of the two displayed objects have come within a threshold distance of one another but have not yet actually interested one another.
In response to detecting the potential new intersection between the two displayed objects, the multi-touch display device determines whether a pre-existing under/overlap relationship exists between the two objects (504). For example, any symmetric intersection test may be used to determine whether an under/overlap relationship already exists for the two objects. In some implementations, the multi-touch display device determines whether an under/overlap relationship already exists between the two displayed objects based on analyzing the underlap and/or overlap lists maintained for the two displayed objects. If one of the displayed objects can be reached via a strict downward or upward search of the underlap or overlap lists of the other displayed object, then a pair-wise under/overlap relationship already is defined for the two objects. Therefore, the multi-touch display device applies the pre-existing under/overlap relationship to the two objects, and the process returns to operation 502 where it awaits a detection of another potential new intersection between two displayed objects. Determining whether an under/overlap relationship already exists between the two displayed objects before taking other actions may prevent cycles from appearing in the graph. In addition, it also may prevent depth comparisons that conflict with the current order.
A determination that an under/overlap relationship already exists between two objects for which a potential new intersection has been detected may be based on a direct under/overlap relationship between the two objects or an indirect under/overlap relationship between the two objects.
Referring to FIG. 5B(a), a direct under/overlap relationship exists between displayed objects 542 and 544. Namely, displayed object 542 directly overlaps displayed object 544 because a portion of displayed object 542 is positioned directly above displayed object 544. In addition to reflecting this direct under/overlap relationship visually, multi-touch display device 540 also records this under/overlap relationship by listing displayed object 544 in displayed object 542's overlap list and by listing displayed object 544 in displayed object 542's underlap list.
As multi-touch display device 540 increases the scale of displayed object 544 under user control as illustrated in FIG. 5B(b), the multi-touch display device 540 detects a potential new intersection 546 between displayed objects 542 and 544. In response to detecting the potential new intersection 546, the multi-touch display device 540 determines whether an under/overlap relationship already exists for displayed objects 542 and 544. Due to the fact that displayed object 542 already has been defined as overlapping displayed object 544, the multi-touch display device 540 applies the pre-existing under/overlap relationship between displayed objects 542 and 544 at the potential new intersection 546 between displayed objects 542 and 544. Thus, as illustrated in FIG. 5B(c), as the multi-touch display device 540 continues to increase the scale of displayed object 544 under user control, the multi-touch display device 540 maintains the pre-existing under/overlap relationship between displayed objects 542 and 544.
Referring now to FIG. 5C(a), multi-touch display device 540 is displaying objects 548, 550, 552, and 554. Because no portion of either displayed object is positioned directly above or below the other displayed object, a direct under/overlap relationship does not exist between displayed objects 548 and 554. However, an indirect under/overlap relationship exists between displayed objects 548 and 554 by virtue of their under/overlap relationships with displayed objects 550 and 552.
In particular, displayed object 548 directly overlaps displayed object 550. As a result, displayed object 550 is listed in displayed object 548's overlap list and displayed object 548 is listed in displayed object 550's underlap list. Meanwhile, displayed object 550 directly overlaps displayed object 552. Therefore, displayed object 552 is listed in displayed object 550's overlap list while displayed object 550 is listed in displayed object 552's underlap list. Similarly, displayed object 552 directly overlaps displayed object 554. Consequently, displayed object 554 is listed in displayed object 552's overlap list and displayed object 552 is listed in displayed object 554's underlap list.
Due to the under/overlap relationships between displayed objects 548, 550, 552, and 554, displayed object 554 can be reached by performing a strictly downward search of displayed object 548's overlap list while displayed object 548 can be reached by performing a strictly upward search of displayed object's 554 underlap list. As such, displayed objects 548 and 554 may be said to have an indirect under/overlap relationship.
As multi-touch display device 540 rotates displayed object 554 toward displayed object 548 under user control as illustrated in FIG. 5C(b), the multi-touch display device 540 detects a potential new intersection 556 between displayed objects 548 and 554. In response to detecting the potential new intersection 556, the multi-touch display device 540 determines whether an under/overlap relationship already exists for displayed objects 548 and 554. Due to the fact that an indirect under/overlap relationship already exists between displayed objects 548 and 554, the multi-touch display device 540 applies the pre-existing under/overlap relationship between displayed objects 548 and 554 at the potential new intersection 556 between displayed objects 548 and 554. Thus, as illustrated in FIG. 5C(c), as the multi-touch display device 540 continues to rotate displayed object 554 toward displayed object 548 under user control, the multi-touch display device 540 maintains the pre-existing under/overlap relationship between displayed objects 548 and 554.
Referring again to
If the multi-touch display device determines that neither displayed object currently is being tilted under the control of the pressure sensitive tilt control, the multi-touch display device compares the global ordering indices of the two intersecting objects (510) and defines an under/overlap relationship for the two objects based on the global ordering indices for the two objects (510). In particular, the multi-touch display device defines the displayed object having the higher ordering index as the overlapping object and the displayed object having the lower ordering index as the underlapping object.
After the multi-touch display device has defined the under/overlap relationship between the two displayed objects, the under/overlap relationship is applied to the two displayed objects (514), the appropriate overlap and underlap lists for the two objects are updated to reflect the applied under/overlap relationship between the two displayed objects (516), and the global ordering index is rebuilt (if appropriate) based on the underlap and overlap lists for the displayed objects (518).
Various different techniques can be employed to rebuild the global ordering index. In some implementations, the exact global ordering of displayed objects is not critical, so long as a valid partial ordering is respected within individual clusters of under/overlapping displayed objects. As will be appreciated, disjoint clusters of under/overlapping displayed objects can be identified by analyzing the pair-wise under/overlap information stored for each displayed object in its overlap and underlap lists. As such, after the underlap and overlap lists have been updated for objects involved in a layering operation, all of the disjoint clusters of under/overlapping displayed objects can be identified by analyzing the pair-wise under/overlap information stored for each displayed object in its underlap and overlap lists. Then, a full ordering for each cluster can be determined using the partial ordering defined via the underlap and/or overlap lists. The construction of the underlap and/or overlap lists produces a directed acyclic graph (DAG). Such a graph can be used to generate a full sort using a standard depth-first-search traversal of underlap and/or overlap relations. Based on the determined local orderings for each cluster of under/overlapping displayed objects, the displayed objects are rearranged within the global ordering index such that the local ordering within each disjoint cluster is respected. Furthermore, in some implementations, to the extent that it is possible, the global ordering index is rearranged so as to preserve relative ordering between disjoint clusters. It will be appreciated that a valid solution for the global ordering of all of the displayed objects may not necessarily be unique, but that any valid solution that respects the local ordering of the displayed objects within each disjoint cluster should be visually indistinguishable from any other valid solution.
After rebuilding the global ordering index (518), the process returns to operation 502 where it awaits detection of another potential new intersection between displayed objects.
As multi-touch display device 540 translates displayed object 558 toward displayed object 560 under user control as illustrated in FIG. 5D(b), the multi-touch display device 540 detects a potential new intersection 562 between displayed objects 558 and 560. In response to detecting the potential new intersection 562, the multi-touch display device 540 determines whether an under/overlap relationship already exists for displayed objects 558 and 560. Because there is no previously-existing under/overlap relationship between displayed objects 558 and 560, the multi-touch display device 540 then determines whether either of displayed objects 558 and 560 currently is being tilted under operation of the pressure-sensitive tilt control. Although the multi-touch display device 540 currently is translating displayed object 558 under user control, neither displayed object 558 or 560 currently is being tilted under operation of the pressure-sensitive tilt control.
Consequently, the multi-touch display device 540 determines that neither displayed object 558 or 560 currently is being tilted under operation of the pressure-sensitive tilt control. Because neither displayed object 558 or 560 currently is being tilted under operation of the pressure-sensitive tilt control, the multi-touch display device 540 compares the global ordering indices of displayed objects 558 and 560 in order to determine how to layer displayed objects 558 and 560. Because displayed object 558 has a higher global ordering index than displayed object 560, the multi-touch display device 540 defines displayed object 558 as the overlapping object and displayed object 560 as the underlapping objects.
Thus, as illustrated in FIG. 5D(c), as the multi-touch display device 540 continues to translate displayed object 558 toward displayed object 560 under user control, the multi-touch display device 558 displays objects 558 and 560 such that displayed object 558 overlaps displayed object 560. The visual effect is that displayed object 558 appears to be being pulled across displayed object 560.
Returning again to
If the relative depths of the two objects are consistent in each of the intersecting regions, the multi-touch display device defines the new under/overlap relationship for the two objects based on the relative depths of the two displayed objects in the intersecting regions.
As illustrated in FIG. 5E(a), the multi-touch display device 540 is displaying objects 564 and 566, and no under/overlap relationship exists between displayed objects 564 and 566. Proceeding to FIG. 5E(b), the multi-touch display device 540 is translating displayed object 564 towards displayed object 566 under user control. In addition, as a function of the pressure being applied to the displayed object 564, the multi-touch display device 540 also is visibly tilting displayed object 564 under the operation of the pressure-sensitive tilt control such that the right-side edge of displayed object 564 is being visibly raised above the plane of the display. To provide a visual cue to the user that the multi-touch display device 540 is visibly tilting displayed object 564 such that the right side of displayed object 564 is raised above the plane of the display, the multi-touch display device applies drop shadow 568 to displayed object 564.
As the multi-touch display device 540 translates tilted displayed object 564 toward displayed object 566 under user control as illustrated in FIG. 5E(b), the multi-touch display device 540 detects a potential new intersection 570 between displayed objects 564 and 566. Because there is no pre-existing under/overlap relationship between displayed objects 564 and 566 and because displayed object 564 currently is being tilted under control of the pressure-sensitive tilt control, the multi-touch display device 540 compares the relative depths of displayed objects 564 and 566 at their intersection 570 to determine how to layer the two displayed objects 564 and 566. Due to the fact that the multi-touch display device 540 is tilting displayed object 564 such that its right side is raised off of the plane of the display, the multi-touch display device determines that the depth of displayed object 564 is higher than the depth of displayed object 566 at their intersection 570. Therefore, the multi-touch display device 540 defines displayed object 564 as the overlapping object and displayed object 566 as the underlapping object.
Thus, as illustrated in FIG. 5E(c), as the multi-touch display device 540 continues to translate displayed object 564 toward displayed object 566 under user control, the multi-touch display device 540 displays objects 564 and 566 such that displayed object 564 overlaps displayed object 566. The visual effect is that displayed object 564 appears to be being pulled across displayed object 566. The user may find this interaction intuitive as it seems to resemble the motion of dragging one piece of paper over another piece of paper.
Referring now to FIG. 5F(a), the multi-touch display device 540 is displaying objects 564 and 566, and no under/overlap relationship exists between displayed objects 564 and 566. Proceeding to FIG. 5F(b), the multi-touch display device 540 is translating displayed object 564 towards displayed object 566 under user control. In addition, as a function of the pressure being applied to the displayed object 564, the multi-touch display device 540 also is visibly tilting displayed object 564 under the operation of the pressure-sensitive tilt control such that the right edge of displayed object 564 is being visibly tilted below the plane of the display.
As the multi-touch display device 540 translates tilted displayed object 564 toward displayed object 566 under user control as illustrated in FIG. 5F(b), the multi-touch display device 540 detects a potential new intersection 572 between displayed objects 564 and 566. Because there is no pre-existing under/overlap relationship between displayed objects 564 and 566 and because displayed object 564 currently is being tilted under control of the pressure-sensitive tilt control, the multi-touch display device 540 compares the relative depths of displayed objects 564 and 566 at their intersection 572 to determine how to layer the two displayed objects 564 and 566. Due to the fact that the multi-touch display device 540 is tilting displayed object 564 such that its right side is pressed below the plane of the display, the multi-touch display device 540 determines that the depth of displayed object 564 is lower than the depth of displayed object 566 at their intersection 572. Therefore, the multi-touch display device 540 defines displayed object 566 as the overlapping object and displayed object 564 as the underlapping object.
Thus, as illustrated in FIG. 5F(c), as the multi-touch display device 540 continues to translate displayed object 564 toward displayed object 566 under user control, the multi-touch display device 540 displays objects 564 and 566 such that displayed object 566 overlaps displayed object 564. The visual effect is that displayed object 564 appears to be being pulled beneath displayed object 566. As with the interaction illustrated in
Referring now to FIG. 5G(a), the multi-touch display device 540 is displaying objects 564 and 566, and no under/overlap relationship exists between displayed objects 564 and 566. Proceeding to FIG. 5G(b), the multi-touch display device 540 is translating displayed object 564 towards displayed object 566 under user control. In addition, as a function of the pressure being applied to the displayed object 564, the multi-touch display device 540 also is visibly tilting displayed object 564 under the operation of the pressure-sensitive tilt control such that the right edge of displayed object 564 is being visibly tilted below the plane of the display. At the same time, the multi-touch display device 540 also is visibly tilting displayed object 566 as a function of the pressure being applied to displayed object 566 such that the left edge of displayed object 566 is being raised above the plane of the display.
As the multi-touch display device 540 translates tilted displayed object 564 toward displayed object 566 under user control as illustrated in FIG. 5G(b), the multi-touch display device 540 detects a potential new intersection 576 between displayed objects 564 and 566. Because there is no pre-existing under/overlap relationship between displayed objects 564 and 566 and because displayed objects 564 and 566 both currently are being tilted under control of the pressure-sensitive tilt control, the multi-touch display device 540 compares the relative depths of displayed objects 564 and 566 at their intersection 576 to determine how to layer the two displayed objects 564 and 566. Due to the fact that the multi-touch display device 540 is tilting displayed object 564 such that its right side is depressed below the plane of the display while also tilting displayed object 566 such that its left side is raised above the plane of the display, the multi-touch display device 540 determines that the depth of displayed object 564 is lower than the depth of displayed object 566 at their intersection 576. Therefore, the multi-touch display device 540 defines displayed object 566 as the overlapping object and displayed object 564 as the underlapping object.
Thus, as illustrated in FIG. 5G(c), as the multi-touch display device 540 continues to translate displayed object 564 toward displayed object 566 under user control, the multi-touch display device 540 displays objects 564 and 566 such that displayed object 566 overlaps displayed object 564. The visual effect is that displayed object 564 appears to be being pulled beneath displayed object 566. As with the interactions illustrated in
Returning again to
After the multi-touch display device has defined the under/overlap relationship between the two displayed objects, the under/overlap relationship is applied to the two displayed objects (514), the appropriate overlap and underlap lists for the two objects are updated to reflect the applied under/overlap relationship between the two displayed objects (516), and the global ordering index is updated (if appropriate) based on the underlap and overlap lists for the displayed objects (518). Thereafter, the process returns to operation 502 where it awaits detection of another potential new intersection between displayed objects.
Proceeding to FIG. 5H(b), the multi-touch display device 540 is translating displayed object 578 towards displayed object 580 under user control. In addition, as a function of the pressure being applied to the displayed object 578, the multi-touch display device 540 also is visibly tilting displayed object 578 under the operation of the pressure-sensitive tilt control such that the upper edge of displayed object 578 is being visibly tilted above the plane of the display and the bottom edge of displayed object 578 is depressed below the plane of the display. At the same time, the multi-touch display device 540 also is visibly tilting displayed object 580 as a function of the pressure being applied to displayed object 580 such that the bottom edge of displayed object 580 is being raised above the plane of the display and the top edge of displayed object 580 is depressed below the plane of the display.
As the multi-touch display device 540 translates tilted displayed object 578 toward tilted displayed object 580 under user control as illustrated in FIG. 5H(b), the multi-touch display device 540 detects a potential new intersection 586 between displayed objects 578 and 580. Because there is no pre-existing under/overlap relationship between displayed objects 578 and 580 and because displayed objects 578 and 580 both currently are being tilted under control of the pressure-sensitive tilt control, the multi-touch display device 540 compares the relative depths of displayed objects 578 and 580 at their intersection 586 to determine how to layer the two displayed objects 578 and 580.
Due to the fact that the multi-touch display device 540 is tilting displayed object 578 such that its top side is raised off of the plane of the display and its bottom side is depressed below the plane of the display while concurrently tilting displayed object 580 such that its bottom side is raised off of the plane of the display and its top side is depressed below the plane of the display, the multi-touch display device 540 determines that the depths of displayed objects 578 and 580 are not consistent in their intersecting region 586. In particular, displayed objects 578 and 580 are tilted such that, in the upper portion of their intersection 586, displayed object 578 is at a lower depth than displayed object 580 and, in the lower portion of their intersection 586, displayed object 580 is at a lower depth than displayed object 578. Due to this inconsistency of the depths of displayed objects 578 and 580 in the region of their intersection 586, the multi-touch display device 540 compares the global ordering indices of displayed objects 578 and 580 in order to determine how to layer displayed objects 578 and 580. Because displayed object 578 has a higher global ordering index than displayed object 580, the multi-touch display device 540 defines displayed object 578 as the overlapping object and displayed object 580 as the underlapping objects.
Thus, as illustrated in FIG. 5H(c), as the multi-touch display device 540 continues to translate displayed object 578 toward displayed object 580 under user control, the multi-touch display device 540 displays objects 578 and 580 such that displayed object 578 overlaps displayed object 580. In addition, in order to alert the user to the potential that the layering operation performed by the multi-touch display device may not have been the layering operation that the user intended, the multi-touch display device 540 may provide some sort of feedback (e.g., visual feedback, audio feedback, audiovisual feedback, etc.) to the user.
As illustrated in
Similarly, referring to FIG. 6A(b), the pressure-sensitive layering control enables a user to layer displayed object 602 over displayed object 604 by first engaging the left side of displayed object 602 with a relatively heavy amount of pressure so as to depress the left side of displayed object 602 below the plane of the display consequently raising the right side of displayed object 602 above the plane of the display and then push displayed object 602 over displayed object 604.
FIG. 6A(c) illustrates a third manipulation enabled by the pressure-sensitive layering control to layer displayed object 602 over displayed object 604. As illustrated in FIG. 6A(c), the pressure-sensitive layering control enables a user to layer displayed object 602 over displayed object 604 by first engaging the left side of displayed object 604 with a relatively heavy amount of pressure so as to depress the left side of displayed object 604 below the plane of the display and then dragging displayed object 602 over displayed object 604.
Similarly, referring to FIG. 6B(b), the pressure-sensitive layering control enables a user to layer displayed object 602 below displayed object 604 by first engaging the left side of displayed object 602 with a relatively light amount of pressure so as to raise the left side of displayed object 602 above the plane of the display consequently depressing the right side of displayed object 602 below the plane of the display and then push the depressed side of displayed object 602 below displayed object 604.
FIG. 6B(c) illustrates a third manipulation enabled by the pressure-sensitive layering control to layer displayed object 602 below displayed object 604. As illustrated in FIG. 6B(c), the pressure-sensitive layering control enables a user to layer displayed object 602 below displayed object 604 by first engaging the left side of displayed object 604 with a relatively light amount of pressure so as to raise the left side of displayed object 604 above the plane of the display and then dragging displayed object 602 beneath the raised side of displayed object 604.
Depending on the two-dimensional positioning of displayed objects, it may be possible for a user to utilize the pressure-sensitive layering control to layer a displayed object relative to two other displayed objects at substantially the same time.
As illustrated in
Proceeding to
As the multi-touch display device 700 translates tilted displayed object 702 toward displayed objects 704 and 706 under user control as illustrated in
Thus, as illustrated in
As illustrated in
As described so far, the pressure-sensitive layering control makes decisions about how to layer two displayed objects relative to each other in response to detecting a potential new intersection between the two displayed objects. This aspect of the pressure-sensitive layering control may prove problematic when two displayed objects already are arranged in an under/overlapping fashion, and the user desires to reorder the layering of the two displayed objects without otherwise modifying the two-dimensional positioning of the two displayed objects. In particular, in order to reorder the layering of the two objects using the pressure-sensitive tilt control, the user may have to modify the two-dimensional positioning of one or both of the two objects to create a potential new intersection between the two displayed objects in order to achieve the desired reordering of the layering of the two displayed objects. The problem that may arise is that after the user has modified the two-dimensional positioning of the two displayed objects and achieved the desired reordering of the layering of the two displayed objects, the user may not remember the precise two-dimensional positioning of the two objects. Thus, although the user has achieved the desired reordering of the layering of the two displayed objects, doing so potentially comes at the cost of having changed the two-dimensional positioning of the two displayed objects.
Various techniques may be employed to mitigate this potential drawback of the pressure-sensitive layering tool. For example, when a displayed object originally at rest is engaged by a finger (or other input mechanism) and brought under user control, the multi-touch display device may store an indication of the two-dimensional position occupied by the displayed object before the displayed object came under user control until such time as the displayed object is relinquished from user control and returned to rest. Then, as the displayed object is translated about the display, if the multi-touch display device detects that the displayed object has been translated back to a two-dimensional position that is within a threshold displacement of the original two-dimensional position of the displayed object just prior to being released from user control, the multi-touch display device may infer that the user intended for the displayed object to be returned to its original two-dimensional position prior to being brought under control. As a result, when the user relinquishes control of the displayed object, the multi-touch display device may automatically return the displayed object to its original two-dimensional position notwithstanding that the displayed object is not positioned precisely at its original two-dimensional position.
As illustrated in
As illustrated in the progression of
As the multi-touch display device 800 translates displayed object 802 back toward displayed object 804 under user control as illustrated in
As the multi-touch display device 800 translates tilted displayed object 802 toward displayed object 804 under user control as illustrated in
Thus, as illustrated in
In order to facilitate the repositioning of displayed object 802 in its original two-dimensional position before being brought under control by the user, the multi-touch display device 800 monitors the two-dimensional position of displayed object 802, and, when the multi-touch display device 800 detects that displayed object 802 has been returned to within a threshold displacement of its original two-dimensional position, the multi-touch display device 800 renders a visual cue indicating the original two-dimensional position of displayed object 802. Thus, as illustrated in
The dashed outline 808 not only indicates to the user the original two-dimensional position of displayed object 802, but the dashed outline 808 also serves as a visual cue to the user that if the user relinquishes control of displayed object 802 while the multi-touch display device 800 is displaying the dashed outline 808 (i.e., while the displayed object 802 is within a threshold displacement of its original two-dimensional position), the multi-touch display device 800 automatically will return displayed object 802 to its original two-dimensional position without requiring the user to precisely position displayed object 802 in its original two-dimensional position.
Thus, as illustrated in
In some implementations, the multi-touch display device 800 may require that a displayed object (e.g., displayed object 802) be displaced from its original two-dimensional position by some threshold distance before displaying a visual cue (e.g., dashed outline 808) indicating the displayed object's original two-dimensional position and/or before automatically returning the displayed object to its original two-dimensional position upon the user relinquishing control of the displayed object. Otherwise, fine-tuned manipulations of the two-dimensional position of the displayed object may be difficult or impossible to achieve.
As described and illustrated throughout, the pressure-sensitive layering control can be utilized by a user to perform layering operations on displayed objects while concurrently performing other multi-point RST transformations on the same displayed objects. Moreover, the pressure-sensitive layering control and the multi-point RST orientation controls are capable of being activated from similar hand positions, thereby enabling a user to switch from one control to the next without the cognitive load of having to change the pose of his/her hand or rearranging of his/her fingers on a displayed object. The result may be to encourage the use of natural bimanual manipulation behaviors and staging patterns that occur in real-world arrangement tasks.
Techniques for Revealing Occluded ContentThe object to object layering operations described above were described and illustrated in the context of displayed objects having boundaries that are visible and/or accessible. However, as scenes displayed on a multi-point display device grow more and more complex, not all of the objects displayed on the multi-point display may have visible and/or accessible boundaries. That is to say, objects displayed on a multi-point display device may be partially or fully occluded by other displayed objects. Nevertheless, a user still may be interested in viewing and/or reordering the layering of objects that are partially or fully occluded by other displayed objects. Therefore, techniques are disclosed for revealing occluded content on a multi-point display device. As described more fully below, these techniques can be coupled with the pressure-sensitive tilt and layering controls described above.
As will be demonstrated in the following description, object folding and peeling provide simple metaphors for searching through and revealing occluded content. Furthermore, such folding and peeling metaphors are consistent with the pressure-sensitive layering metaphor described above. A pressure-sensitive object folding/peeling control provided by a multi-touch display device may enable a user to fold back or peel away an edge of an occluding object to reveal other objects below the occluding object by contacting an empty region of the screen with a finger (or other input mechanism) with a sufficient amount of pressure to depress “below” the occluding object and then dragging the user's finger across a boundary of the occluding object. When the user's finger (or other input mechanism) intersects the boundary of the occluding object while maintaining sufficient pressure to depress “below” the occluding object, the multi-touch display device folds/peels back the boundary of the occluding object as a function of the path traced by the user's finger (or other input mechanism).
The process 900 begins when the multi-touch display device detects an input mechanism contacting the multi-touch display device in an empty region of the screen (902). In response to detecting the input mechanism contacting the empty region of the screen, the multi-touch display device tracks the movement of the input mechanism while it remains in contact with the screen (904).
In response to detecting that the input mechanism is intersecting the boundary of a displayed object (906), the multi-touch display device determines whether the pressure applied by the input mechanism at the contact point intersecting the boundary of the displayed object exceeds a threshold pressure value. If the multi-touch display device determines that the pressure applied by the input mechanism at the contact point intersecting the boundary of the displayed object exceeds the threshold pressure value (908), the multi-touch display device folds/peels back a portion of the displayed object as a function of subsequent movements by the input mechanism (910). For example, as the input mechanism moves about the multi-touch display device, the multi-touch display device calculates and applies a fold operation to the displayed object that results in a portion of the displayed object being folded back on top of itself such that the contact point on the boundary of the displayed object remains located substantially beneath the input mechanism. In some implementations, the multi-touch display device may provide one or more visual cues to emphasize that the portion of the displayed object has been folded/peeled back. For example, the multi-touch display device may apply different shading to the folded/peeled back portion of the multi-touch display device than the multi-touch display device applies to the remaining portion of the displayed object.
Through this pressure sensitive object folding/peeling control, the multi-touch display device provides a user with the ability to view and/or access content that otherwise may be occluded and inaccessible to the user.
In some implementations, the threshold pressure value required to be applied in order to trigger the folding/peeling back of a portion of a displayed object may be the same for all displayed objects. In alternative implementations, the threshold pressure value may be dependent upon the displayed object. For example, the multi-touch display device may require a user to apply more pressure to trigger the folding/peeling back of portions of some objects than the multi-touch display device requires to trigger the folding/peeling back of other objects. In fact, in some implementations, the amount of pressure that the multi-touch display device requires to trigger the folding/peeling back of a portion of a particular displayed object may be a function of the global ordering index of the displayed object and/or a virtual layer at which the displayed object is displayed. In such implementations, the multi-touch display device may require a user to apply a relatively heavy amount of pressure to trigger the folding/peeling back of displayed objects having relatively low global ordering indices and/or displayed objects that are displayed at relative low virtual layers, while requiring a relatively light amount of pressure to trigger the folding/peeling back of displayed objects having relatively high global ordering indices and/or displayed objects that are displayed at relatively high virtual layers.
As the multi-touch display device 920 continually calculates and applies the appropriate folding/peeling operations to displayed object 922, the multi-touch display device continually updates the scene displayed on the multi-touch display device to reflect the folding/peeling operations applied to displayed object 922. As part of the process of updating the displayed scene, the multi-touch display device identifies content (e.g., other displayed objects, empty space, etc.) that previously was occluded by the folded/peeled back portion of displayed object 922 and updates the display such that such content that previously was occluded by the folded/peeled back portion of displayed object 922 is revealed. For example, as a result of the multi-touch display device 920 folding/peeling back the upper left corner of displayed object 922, the multi-touch display device 920 reveals a larger portion of displayed object 924, thereby making a larger portion of displayed object 924 visible and accessible to the user. In some implementations, the multi-touch display device 920 may treat displayed object 922 as being folded/peeled back completely on top of itself such that the unfolded portion of object 922 and the folded portion of object 922 both lie on the same plane.
Returning to
The pressure-sensitive object folding/peeling control described above can be coupled with the pressure-sensitive layering control described above to enable a user to perform layering operations involving displayed objects that otherwise might be occluded and/or inaccessible to the user.
As illustrated in
As illustrated in
By folding/peeling back the upper left corner of displayed object 1000, the multi-touch display device 1000 makes a larger portion of the left boundary of displayed object 1006 visible and accessible to the user, which may enable the user to more easily perform a layering operation between displayed objects 1002 and 1006 because, for example, the user has a view of a larger portion of any potential intersection between the right-side boundary of displayed object 1002 and the left-side boundary of displayed object 1006.
As illustrated in
As will be appreciated, the layering operations performed by the multi-touch display device 1000 on displayed objects 1002 and 1006 and displayed objects 1002 and 1004 were performed in accordance with the pressure-sensitive layering control described above. In particular, upon detecting a new potential intersection between the right-side edge of displayed object 1002 and the left-side edge of displayed object 1006, the multi-touch display device 1000 compared the relative depths of the right-side edge of displayed object 1002 and the left-side edge of displayed object 1006, and, as a consequence on the pressure applied to displayed object 1002 by fingers 1012 and 1014, determined that the right-side edge of displayed object 1002 was at a higher depth than the left-side edge of displayed object 1006. Accordingly, the multi-touch display device layered displayed objects 1002 and 1006 such that displayed object 1002 is overlapping displayed object 1006.
Similarly, upon detecting a new potential intersection between the right-side edge of displayed object 1002 and the fold along the left side of displayed object 1004, the multi-touch display device 1000 compared the relative depths of the right-side edge of displayed object 1002 and the fold along the left side of displayed object 1004, and, as a consequence on the pressure applied to displayed object 1002 by fingers 1012 and 1014 and the pressure applied to displayed object 1004 by finger 1010, determined that the right-side edge of displayed object 1002 was at a lower depth than the fold along the left side of displayed object 1004. Accordingly, the multi-touch display device 1000 layered displayed objects 1002 and 1004 such that displayed object 1004 is overlapping displayed object 1002.
As illustrated in
Further folding/peeling back the upper left corner of displayed object 1004 to reveal a portion of displayed object 1008 may enable the user to more easily perform a layering operation between displayed objects 1002 and 1008 because the user now has a view of any potential new intersection between the right-side boundary of displayed object 1002 and the left-side boundary of displayed object 1008. Had the multi-touch display device 1000 not further folded/peeled back the upper left corner of displayed object 1004, displayed object 1008 would have remained fully occluded by displayed object 1004 and the user would have had no view of a potential new intersection between the right-side boundary of displayed object 1002 and the left-side boundary of displayed object 1008.
As illustrated in
As will be appreciated, the layering operation performed by the multi-touch display device 1000 on displayed objects 1002 and 1008 was performed in accordance with the pressure-sensitive layering control described above. In particular, upon detecting a potential new intersection between the right-side edge of displayed object 1002 and the left-side edge of displayed object 1008, the multi-touch display device 1000 compared the relative depths of the right-side edge of displayed object 1002 and the left-side edge of displayed object 1008, and, as a consequence on the pressure applied to displayed object 1002 by fingers 1012 and 1014, determined that the right-side edge of displayed object 1002 was at a lower depth than the left-side edge of displayed object 1008. Accordingly, the multi-touch display device 1000 layered displayed objects 1002 and 1008 such that displayed object 1008 is overlapping displayed object 1002.
As illustrated in
As described above in connection with
Furthermore, as also discussed above, in some implementations, when a multi-touch display device folds/peels back a portion of a displayed object under control of a pressure-sensitive folding/peeling control, the multi-touch display device treats the displayed object as having been folded/peeled back completely on top of itself such that the unfolded portion and the folded portion of the displayed object both lie in the same plane. Thus, when the multi-touch display device performs layering operations on the folded object that involve the folded portion of the folded object, the multi-touch display device calculates the relative depth of the folded portion of the folded object based on the plane on which both the folded portion and the unfolded portion of the displayed object lie.
By defining the boundary of a folded object to include the fold of the folded object instead of treating the boundary of the folded object as the original boundary of the folded object and by treating the folded object as being folded back completely on top of itself such that the folded and unfolded portions of the displayed object both lie on the same plane, a multi-touch display device can perform pressure-sensitive layering operations that involve a folded object by applying the same techniques described above, keeping in mind that potential intersections with the displayed object are defined by the boundary of the displayed object that includes the fold, not the original boundary of the displayed object before the object was folded.
As illustrated in
When finger 1106 relinquishes control of displayed object 1104, the multi-touch display device unfurls the upper left corner of displayed object 1104. Because no previous under/overlap relationship existed between displayed objects 1102 and 1104, when the multi-touch display device 1100 unfurls the upper left corner of displayed object 1104, it displays objects 1102 and 1104 such that displayed object 1104 is overlapping displayed object 1102 a. In this manner, the pressure-sensitive folding/peeling control also operates as a layering control.
In some implementations, as the multi-touch display device 1100 is unfurling a folded/peeled back portion of a displayed object, the multi-touch display device 1100 treats the folded/peeled back portion of the displayed object as being raised above the plane of the display as the folded/peeled back portion of the displayed object is unfurled. Therefore, in situations such as that illustrated in
Referring now to
In response to detecting the potential new intersection 1110 between displayed objects 1102 and 1104 and because no previous under/overlap relationship exists between displayed objects 1102 and 1104, the multi-touch display device 1100 compares the relative depths of displayed objects 1102 and 1104 at their intersection 1110 to determine how to layer displayed objects 1102 and 1104. Based on the pressure being applied to displayed object 1102 by finger 1108, the multi-touch display device 1100 determines that the depth of displayed object 1102 is lower than the depth of displayed object 1104 at their intersection 1110. Therefore, the multi-touch display device 1100 defines displayed object 1104 as the overlapping object and displayed object 1102 as the underlapping object.
Thus, as the multi-touch display device 1100 continues to translate displayed object 1102 to the right under control of finger 1108, the multi-touch display device 1100 displays objects 1102 and 1104 such that displayed object 1104 overlaps displayed object 1102. Thereafter, when finger 1106 relinquishes control of displayed object 1104 and the multi-touch display device 1100 unfurls the upper left corner of displayed object 1104 in response, the multi-touch display device 1100 unfurls the upper left corner of displayed object 1104 such that it overlaps displayed object 1102 because the multi-touch display device 1100 defined displayed object 1104 as overlapping displayed object 1102.
Referring now to
In response to detecting the potential new intersection 1112 between displayed objects 1102 and 1104 and because no previous under/overlap relationship exists between displayed objects 1102 and 1104, the multi-touch display device 1100 compares the relative depths of displayed objects 1102 and 1104 at their intersection 1112 to determine how to layer displayed objects 1102 and 1104. Based on the pressure being applied to displayed object 1102 by finger 1108, the multi-touch display device 1100 determines that the depth of displayed object 1102 is higher than the depth of displayed object 1104 at their intersection 1112. Therefore, the multi-touch display device 1100 defines displayed object 1102 as the overlapping object and displayed object 1104 as the underlapping object.
Thus, as the multi-touch display device 1100 continues to translate displayed object 1102 to the right under control of finger 1108, the multi-touch display device 1100 displays objects 1102 and 1104 such that displayed object 1102 overlaps displayed object 1104. Thereafter, when finger 1106 relinquishes control of displayed object 1104, and the multi-touch display device 1100 unfurls the upper left corner of displayed object 1104 in response, the multi-touch display device 1100 unfurls the upper left corner of displayed object 1104 such that it underlaps displayed object 1102 because the multi-touch display device 1100 defined displayed object 1104 as underlapping displayed object 1102.
Referring now to
In response to activation of the object folding/peeling control by finger 1106, the multi-touch display device 1100 folds/peels back the lower right corner of displayed object 1116. While the lower right corner of displayed object 1116 remains folded/peeled back and in response to user control of displayed object 1120 by fingers 1108 and 1122, the multi-touch display device 1100 also rotates displayed object 1120 in a clockwise direction such that the lower end of displayed object 1120 occupies a region of the screen that would have been occupied by the lower right corner of displayed object 1116 if the multi-touch display device 1110 had not folded/peeled back the lower right corner of displayed object 1116.
Thereafter, when finger 1106 relinquishes control of displayed object 1116 and the multi-touch display device 1100 unfurls the lower right corner of displayed object 1116 in response, the multi-touch display device 1100 unfurls the lower right corner of displayed object 1116 such that it underlaps displayed object 1120. This is because, as described above, an under/overlap relationship already exists between displayed objects 1116 and 1120 and the multi-touch display device 1100 preserves that pre-existing under/overlap relationship when unfurling the lower right corner of displayed object 1116.
Referring now to
In response to detecting the potential new intersection 1128 between displayed objects 1124 and 1126 and because no previous under/overlap relationship existed between displayed objects 1124 and 1126, the multi-touch display device 1100 compares the relative depths of displayed objects 1124 and 1126 at their intersection 1128 to determine how to layer displayed objects 1124 and 1126. Based on the pressure being applied to displayed object 1124 by finger 1108, the multi-touch display device 1100 determines that the depth of displayed object 1124 is higher than the depth of displayed object 1126 at their intersection 1128. Therefore, the multi-touch display device 1100 defines displayed object 1124 as the overlapping object and displayed object 1126 as the underlapping object.
Thus, as the multi-touch display device 1100 continues to translate displayed object 1124 downward under control of finger 1108, the multi-touch display device 1100 displays objects 1124 and 1126 such that displayed object 1124 overlaps displayed object 1126. Thereafter, when finger 1106 relinquishes control of displayed object 1126, and the multi-touch display device 1100 unfurls the top of displayed object 1126 in response, the multi-touch display device 1100 unfurls the top of displayed object 1126 such that there no longer is any under/overlapping relationship between displayed objects 1124 and 1126.
The described systems, methods, and techniques may be implemented in digital electronic circuitry, computer hardware, firmware, software, or in combinations of these elements. Apparatuses embodying these techniques may include appropriate input and output devices, a computer processor, and a tangible computer-readable storage medium on which a computer program or other computer-readable instructions are stored for execution by one or more processing devices (e.g., a programmable processor).
A process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output. The techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language.
Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for storing computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and Compact Disc Read-Only Memory (CD-ROM). Any of the foregoing may be supplemented by, or incorporated in, specially-designed application-specific integrated circuits (ASICs).
Pressure-sensitive multi-point display devices encompass a wide variety of display devices and associated systems and components. Some pressure-sensitive multi-point display devices require physical contact with a surface of the multi-point display device in order to receive input. For example, such a pressure-sensitive multi-point display device may receive input by detecting contact with a surface of the multi-point display device by a finger, a stylus, some other mechanical, electro-mechanical, or magnetic input mechanism and/or any combination of multiple such input mechanisms at the same time. Furthermore, some such pressure-sensitive multi-point display devices may be configured such that the surface that receives input may appear to be the same surface on which the pressure-sensitive multi-point display device displays objects (whether or not the surface that receives input actually is the same surface as the surface on which the pressure-sensitive multi-point display device displays objects). Alternatively, other such pressure-sensitive multi-point display devices may receive input on a surface that clearly is remote and distinct from the surface on which the pressure-sensitive multi-point display device displays objects. One example of such a pressure-sensitive multi-point display system is a pressure-sensitive multi-point input capable standalone tablet that provides input to a remote and distinct display.
Other pressure-sensitive multi-point display devices do not require physical contact with the surface of the pressure-sensitive multi-point display device in order to receive input. For example, such pressure-sensitive multi-point display devices may receive input by detecting the presence of a finger, a stylus, some other mechanical, electro-mechanical, or magnetic input mechanism and/or any combination of multiple such input mechanisms in the vicinity of the surface of the pressure-sensitive multi-point display device even when such input mechanisms are not actually in physical contact with the surface of the pressure-sensitive multi-point display device. Such pressure-sensitive multi-point display devices may map the distance of the input mechanism from the surface of the pressure-sensitive multi-point display device to the pressure being applied by the input mechanism to the pressure-sensitive multi-point display device. The various different operations and transformations disclosed herein may be implemented by any such pressure-sensitive multi-point devices.
Furthermore, the various different operations and transformations disclosed herein may be implemented by any other type of pressure-sensitive multi-point computing system configured to receive multiple inputs at the same time, including, for example, systems configured to receive concurrent input from multiple pointing devices (e.g., multiple computer mice) and/or concurrent input from one or more pointing devices and another input device (e.g., a keyboard). Moreover, some of the various different operations and transformations disclosed herein are not limited to implementation on a pressure-sensitive multi-point device and thus may be implemented on a pressure-sensitive single-point device.
Various modifications may be made. For example, useful results still may be achieved if steps of the disclosed techniques are performed in a different order. Similarly, useful results also may be achieved by combining various operations of the various disclosed techniques in a different manner and/or if components of the disclosed systems are combined in a different manner and/or replaced or supplemented by other components.
The systems and techniques for implementing a pressure-sensitive tilt control, a pressure-sensitive layering control, and a pressure-sensitive folding/peeling control are described above generally in the context of a system that senses pressure applied to a contact surface. Nevertheless, the pressure-sensitive tilt control, the pressure-sensitive layering control, and the pressure-sensitive folding/peeling control can be implemented on devices that sense proxies for pressure rather than the actual pressure applied to the contact surface. For example, in some implementations, the duration of time during which contact is made with an object on a touch-screen display device may be used as a proxy for applied pressure. In such implementations, the touch-screen display device may equate a relatively long duration of contact made with a displayed object with a relatively high amount of applied pressure and a relatively short duration of contact with a relative low amount of applied pressure.
Furthermore, the pressure-sensitive tilt control, the pressure-sensitive layering control, and the pressure-sensitive folding/peeling control can be implemented on devices that consider the size of a contact point to be a proxy for pressure applied to the contact surface. In such implementations, the device may equate relatively large contact points with relatively high amounts of applied pressure while equating relatively small contacts points with relatively low amounts of applied pressure.
Additionally or alternatively, the pressure-sensitive tilt control, the pressure-sensitive layering control, and the pressure-sensitive folding/peeling control can be implemented using input from such input mechanisms as computer keyboards and/or computer mice. For instance, the pressure-sensitive layering control, and the pressure-sensitive folding/peeling control can be implemented using input from a computer keyboard by defining different keystrokes and/or different durations of holding down a key as corresponding to varying amounts of pressure. In such implementations, a device may detect the amount of pressure being applied to a displayed object based on received keystrokes. Similarly, the pressure-sensitive layering control, and the pressure-sensitive folding/peeling control can be implemented using input from one or more computer mice by defining different mouse buttons (or sequences of mouse clicks) and/or different durations of holding down a mouse button as corresponding to varying amounts of pressure. In such implementations, a device may detect the amount of pressure being applied to a displayed object based on receive button clicks.
Moreover, in some implementations, a device may determine the amount of pressure applied to a displayed object based on the strength of a received input signal. In such implementations, the device may interpret relatively strong input signals as corresponding to relatively high pressure while interpreting relatively weak input signals as corresponding to relatively low pressure.
The systems and techniques for implementing a pressure-sensitive layering control described above generally were described in combination with a pressure-sensitive tilt control. Nevertheless, a pressure-sensitive layering control just as easily can be combined with a pressure-sensitive planar depth control. In such implementations, instead of tilting a displayed object relative to the display plane as a function of the pressure applied to the displayed object by one or more fingers or other input mechanisms, a multi-point display device may average the pressure applied by fingers or other input mechanisms over the entire displayed object to determine a singular planar depth value for the displayed object.
Furthermore, although the pressure-sensitive tilt and layering controls have been described chiefly in the context of two-dimensional objects and the layering of two-dimensional objects, both the pressure-sensitive tilt control and the pressure-sensitive layering controls also can be used to control three-dimensional displayed objects and to manipulate the relative depths of three-dimensional displayed objects.
Moreover, in some implementations, multi-point display devices may apply other deformation methods in addition to or as an alternative to the tilt deformation methods described above. For example, multi-point display devices may apply non-linear bending methods to displayed objects and/or multi-touch display devices may provide for sub-regions of an object to be tilted or lifted differently than other sub-regions. Additionally or alternatively, multi-point display devices may provide for permanently and/or semi-permanently curled or folded boundaries instead of requiring user control to maintain a curled or folded boundary. For example, after a user has activated a pressure-sensitive object folding/peeling control provided by a multi-point display device to fold/peel back a portion of a displayed object, the multi-point display device may maintain the fold in the displayed object even after the user relinquishes control of the displayed object. Thereafter, the user may cause the multi-point display device to unfurl the folded/peeled back portion of the displayed object by again taking control of the displayed object. For instance, the pressure-sensitive object folding/peeling control may enable the user to unfurl the folded/peeled back portion of the displayed object by first applying a sufficient amount of pressure (e.g., at least a defined threshold amount of pressure) with a finger (or other input mechanism) to depress beneath the folded/peeled back portion of the displayed object and then dragging his/her finger (or other input mechanism) across the folded/peeled back portion of the displayed object in a motion that is substantially opposite from the motion used to inspire the fold in the displayed object in the first place.
The pressure-sensitive layering control may make layering decisions between two displayed objects based on the relative depths of the intersecting edges/boundaries of the two displayed objects. Additionally or alternatively, layering decisions may be made based on the relative depths of other portions of the displayed objects that are in the vicinity of the region of the intersection between the two displayed objects but that are not necessarily on the edges/boundaries of the displayed objects.
It should also be noted that, in some implementations, the object folding/peeling control may be operable without requiring the user to apply more than a threshold amount of pressure in order to fold/peel back a boundary of a displayed object. In such implementations, the object folding/peeling control still may be coupled with the pressure-sensitive layering control to perform layering operations as described above.
In some implementations, the layering models described above may be extended to two and one-half dimensional representations such as planar maps to allow for complex overlap effects such as, for example, self-overlap, or circular overlap patterns. Similarly, the layering models described above also may be extend by inserting prior overlap relationships as lower priority constraints on layering operations or by allowing users to “freeze” layering relationships for groups of displayed objects regardless of overlap state.
Additionally or alternatively, in some implementations, visual clues rendered to facilitate pressure-sensitive tilt and/or layering operations may be augmented (or replaced) with audio cues. For example, when under/overlap relationships begin and end, a multi-point display device may generate “push” and/or “slip” audio cues.
Finally, the techniques and systems described above for implementing a pressure-sensitive layering control may be applied to perform layering operations on any type of displayed object including, for example, generic polygons, free-form shapes, photographs or other image files, videos, documents, and/or active application windows.
Claims
1. In a pressure-sensitive touch-screen display, a method for dragging a displayed object relative to another displayed object, the method comprising:
- displaying two or more objects on the pressure-sensitive touch-screen display;
- receiving a user input via one or more user interactions with the pressure-sensitive touch-screen display;
- sensing a pressure applied to the pressure-sensitive touch-screen display in a display region that corresponds to a first displayed object;
- adjusting one or more of a shape and a location of the first displayed object based on the sensed pressure while tracking movement of an input mechanism while the input mechanism remains in contact with the first displayed object;
- based on tracking movement of the input mechanism during the adjusting of the first displayed object, detecting an intersection between the first displayed object and a second displayed object;
- determining a depth of the first displayed object at the intersection between the first displayed object and the second displayed object as a function of the sensed pressure;
- determining a depth of the second displayed object at the detected intersection with the first displayed object;
- comparing the depth of the first displayed object with a depth of the second displayed object at their detected intersections;
- storing data based on the comparison that indicates that one of the first displayed object and the second displayed object is overlapping the other of the first displayed object and the second displayed object; and
- displaying based on the stored data the first displayed object and the second displayed object such that overlapping objects are displayed closer to a foreground of the display than the other objects.
2. The method of claim 1, further comprising:
- adjusting a depth of the first displayed object relative to a display plane as a function of the sensed pressure applied to the pressure-sensitive display, wherein adjusting the depth includes: calculating a tilt plane for the first displayed object as a function of the sensed pressure applied to the pressure-sensitive touch-screen display by the input mechanism that contacts the display in a region that corresponds to the first displayed object, and applying a tilt to the first displayed object as a function of the calculated tilt plane for the first displayed object; and determining the depth of the first displayed object at its intersection with the second displayed object based on the tilt applied to the first displayed object.
3. The method of claim 2, further comprising:
- receiving an additional user input via one or more user interactions with the pressure-sensitive touch-screen display in a region that corresponds to the second displayed object;
- sensing a pressure applied to the pressure-sensitive touch-screen display via the additional user input in the region that corresponds to the second displayed object;
- calculating a tilt plane for the second displayed object as a function of the sensed pressure applied to the pressure-sensitive display by the additional user input in the region that corresponds to the second displayed object;
- applying a tilt to the second displayed object as a function of the calculated tilt plane for the second displayed object; and
- determining a depth of the second displayed object at its detected intersection with the first displayed object based on the tilt applied to the second displayed object.
4. The method of claim 1, wherein:
- detecting an intersection between the first displayed object and second displayed object includes detecting an intersection between an edge of the first displayed object and an edge of the second displayed object;
- determining a depth of the first displayed object at its detected intersection with the second displayed object includes determining the depth of a portion of the first displayed object adjacent to the edge of the first displayed object;
- determining a depth of the second displayed object at its detected intersection with the first displayed object includes determining the depth of a portion of the second displayed object adjacent to the edge of the second displayed object; and
- comparing the determined depths of the first and second displayed objects at their detected intersection includes comparing the depth of the portion of the first displayed object adjacent to the edge of the first displayed object to the portion of the second displayed object adjacent to the edge of the second displayed object.
5. The method of claim 1, further comprising maintaining data reflecting a global ordering of objects displayed by the pressure-sensitive touch-screen display, wherein:
- comparing the determined depths of the first and second displayed objects at their detected intersection includes determining that the determined depths of the first and second displayed objects at their detected intersection are the same; and
- storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects includes: accessing the maintained global ordering of objects in response to determining that the determined depths of the first and second displayed objects at their detected intersection are the same, determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on the accessed global ordering of objects, storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, after storing the data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, updating the maintained data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display, and
- causing the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display based on the updated data reflecting the global ordering of objects.
6. The method of claim 1, further comprising maintaining data reflecting a global ordering of objects displayed by the pressure-sensitive touch-screen display, wherein:
- comparing the determined depths of the first and second displayed objects at their detected intersection includes: determining that, in a first region of the intersection between the first and second displayed objects, the depth of the first displayed object is higher than the depth of the second displayed object, and determining that, in a second region of the intersection between the first and second displayed objects, the depth of the first displayed object is lower than the depth of the second displayed object; and
- storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects includes: accessing the maintained global ordering of objects in response to determining that, in a first region of the intersection between the first and second displayed objects, the depth of the first displayed object is higher than the depth of the second displayed object and that, in a second region of the intersection between the first and second displayed objects, the depth of the first displayed object is lower than the depth of the second displayed object, determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on the accessed global ordering of objects, storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, after storing the data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, updating the maintained data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display, and causing the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display based on the updated data reflecting the global ordering of objects.
7. The method of claim 1 further comprising:
- maintaining an overlap list that is associated with the first displayed object for recording other displayed objects that are overlapped by the first displayed object; and
- maintaining an underlap list that is associated with the second displayed object for recording other displayed objects that are underlapped by the second displayed object, wherein: comparing the determined depths of the first and second displayed objects at their detected intersection includes determining that the depth of the first displayed object is higher than the depth of the second displayed object at the detected intersection between the first displayed object and the second displayed object; storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects includes: updating the overlap list that is associated with the first displayed object to reflect that the first displayed object is overlapping the second displayed object, and updating the underlap list that is associated with the second displayed object to reflect that the second displayed object is underlapping the first displayed object, after storing the data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, updating the maintained data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display based on the updated overlap list that is associated with the first displayed object and the updated underlap list that is associated with the second displayed object, and causing the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display based on the updated data reflecting the global ordering of objects.
8. The method of claim 1 further comprising:
- displaying a third object on the pressure-sensitive touch-screen display;
- detecting a new intersection between the first displayed object and the third displayed object;
- in response to detecting an intersection between the first displayed object and the third displayed object: accessing the overlap list that is associated with the first displayed object, and determining that the first displayed object already overlaps the third displayed object based on the accessed overlap list that is associated with the first displayed object;
- causing the first and third displayed objects to be displayed on the pressure-sensitive touch-screen display such that the first displayed object is overlapping the third displayed object at their new intersection as a consequence of having determined that the first displayed object already overlaps the third displayed object.
9. The method of claim 1, further comprising:
- detecting that the input mechanism no longer is contacting the pressure-sensitive touch-screen display; and
- preserving the display based on the stored data such that overlapping objects are displayed closer to the foreground of the display than the other objects.
10. A pressure-sensitive touch-screen display device configured to provide a pressure-sensitive control for dragging a displayed object with respect to another displayed object on the pressure-sensitive touch-screen display device, the pressure-sensitive touch-screen display device comprising:
- a display for displaying output images;
- an input surface for receiving user interaction with the pressure-sensitive touch-screen display device;
- a processor; and
- a memory storage device storing instructions that, when executed by the processor, cause the processor to: display two or more objects on the pressure-sensitive touch-screen display device; detect contact with the input surface by one or more input mechanisms in a region of the input surface that corresponds to a first displayed object; sense a pressure applied to the input surface by the one or more input mechanisms; quantify the sensed pressure applied to the input surface by the one or more input mechanisms detected to be contacting the input surface in the region of the input surface that corresponds to the first displayed object; interpret user interaction received by the input surface based on the quantified pressure; perform a transformation by adjusting one or more of a shape and a location based on the sensed pressure of the first displayed object of the two or more displayed objects relative to a second displayed object of the two or more displayed objects as a function of the interpreted user interaction with the input surface; tracking movement of the interpreted user interaction while the one or more input mechanisms remain in contact with the pressure-sensitive touch-screen display device; based on tracking movement of the one or more input mechanisms during the transformation, detecting an intersection between the first displayed object and a second displayed object; determine a depth of the first displayed object at its detected intersection with the second displayed object; determine a depth of the second displayed object at its detected intersection with the first displayed object; compare the determined depths of the first and second displayed objects at their detected intersection; based on a result of comparing the determined depths of the first and second displayed objects at their detected intersection, store data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects; and cause the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display device in accordance with the stored data such that the overlapping displayed object is displayed closer to a foreground of the pressure-sensitive touch-screen display device than the other displayed object.
11. The pressure-sensitive touch-screen display device of claim 10, wherein the memory storage device further stores instructions that, when executed by the processor, cause the processor to:
- adjust a depth of the first displayed object relative to a display plane as a function of the sensed pressure applied to the pressure-sensitive display device, wherein adjusting the depth includes: calculating a tilt plane for the first displayed object as a function of the sensed pressure applied to the pressure-sensitive display device by the one or more input mechanisms that contacts the pressure-sensitive touch-screen display device in a region that corresponds to the first displayed object, and applying a tilt to the first displayed object as a function of the calculated tilt plane for the first displayed object; and determining the depth of the first displayed object at its intersection with the second displayed object based on the tilt applied to the first displayed object.
12. The pressure-sensitive touch-screen display device of claim 11, wherein the memory storage device further stores instructions that, when executed by the processor, cause the processor to:
- sense a pressure applied to the pressure-sensitive touch-screen display device via an additional one or more user interactions in a region that corresponds to the second displayed object;
- calculate a tilt plane for the second displayed object as a function of the sensed pressure applied to the pressure-sensitive touch-screen display device by the additional one or more user interactions in the region that corresponds to the second displayed object;
- apply a tilt to the second displayed object as a function of the calculated tilt plane for the second displayed object; and
- determine a depth of the second displayed object at its detected intersection with the first displayed object based on the tilt applied to the second displayed object.
13. The pressure-sensitive touch-screen display device of claim 10, wherein the memory storage device further stores instructions that, when executed by the processor, cause the processor to:
- detect an intersection between the first displayed object and second displayed object by detecting the intersection between an edge of the first displayed object and an edge of the second displayed object;
- determine a depth of the first displayed object at its detected intersection with the second displayed object by determining the depth of a portion of the first displayed object adjacent to the edge of the first displayed object;
- determine a depth of the second displayed object at its detected intersection with the first displayed object by determining the depth of a portion of the second displayed object adjacent to the edge of the second displayed object; and
- compare the determined depths of the first and second displayed objects at their detected intersection by comparing the depth of the portion of the first displayed object adjacent to the edge of the first displayed object to the portion of the second displayed object adjacent to the edge of the second displayed object.
14. The pressure-sensitive touch-screen display device of claim 10, wherein the memory storage device further stores instructions for maintaining data reflecting a global ordering of objects displayed by the pressure-sensitive touch-screen display device, that, when executed by the processor, cause the processor to:
- compare the determined depths of the first and second displayed objects at their detected intersection by determining that the determined depths of the first and second displayed objects at their detected intersection are the same; and
- store data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, wherein storing data further includes: accessing the maintained global ordering of objects in response to determining that the determined depths of the first and second displayed objects at their detected intersection are the same, determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on the accessed global ordering of objects, storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, and after storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects: updating the maintained data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display device based on the updated list, and causing the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display device in accordance with the stored data.
15. The pressure-sensitive touch-screen display device of claim 10, wherein the memory storage device further stores instructions for maintaining data reflecting a global ordering of objects displayed by the pressure-sensitive touch-screen display device, that, when executed by the processor, cause the processor to:
- compare the determined depths of the first and second displayed objects at their detected intersection, wherein the comparison includes: determining that, in a first region of the intersection between the first and second displayed objects, the depth of the first displayed object is higher than the depth of the second displayed object, and determining that, in a second region of the intersection between the first and second displayed objects, the depth of the first displayed object is lower than the depth of the second displayed object; and
- store data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, wherein: accessing the maintained global ordering of objects in response to determining that, in a first region of the intersection between the first and second displayed objects, the depth of the first displayed object is higher than the depth of the second displayed object and that, in a second region of the intersection between the first and second displayed objects, the depth of the first displayed object is lower than the depth of the second displayed object, determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on the accessed global ordering of objects, storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects based on determining that one of the first and second displayed objects is overlapping the other of the first and second displayed objects, and after storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects: updating the maintained data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display device based on the updated list, and causing the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display device in accordance with the stored data.
16. The pressure-sensitive touch-screen display device of claim 10, wherein the memory storage device further stores instructions that, when executed by the processor, cause the processor to:
- maintain an overlap list that is associated with the first displayed object for recording other displayed objects that are overlapped by the first displayed object; and
- maintain an underlap list that is associated with the second displayed object for recording other displayed objects that are underlapped by the second displayed object, wherein: comparing the determined depths of the first and second displayed objects at their detected intersection includes determining that the depth of the first displayed object is higher than the depth of the second displayed object at the detected intersection between the first displayed object and the second displayed object; storing data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects includes: updating the overlap list that is associated with the first displayed object to reflect that the first displayed object is overlapping the second displayed object, and updating the underlap list that is associated with the second displayed object to reflect that the second displayed object is underlapping the first displayed object, and after storing the data indicating that one of the first and second displayed objects is overlapping the other of the first and second displayed objects: updating the maintained data reflecting the global ordering of objects displayed by the pressure-sensitive touch-screen display device based on the updated overlap list that is associated with the first displayed object and the updated underlap list that is associated with the second displayed object, and causing the first and second displayed objects to be displayed on the pressure-sensitive touch-screen display device in accordance with the stored data.
17. The pressure-sensitive touch-screen display device of claim 10, wherein the memory storage devices further stores instructions that, when executed by the processor, cause the processor to:
- display a third object on the pressure-sensitive touch-screen display device;
- detect a new intersection between the first displayed object and the third displayed object;
- in response to detecting an intersection between the first displayed object and the third displayed object: access the overlap list that is associated with the first displayed object, and determine that the first displayed object already overlaps the third displayed object based on the accessed overlap list that is associated with the first displayed object;
- cause the first and third displayed objects to be displayed on the pressure-sensitive touch-screen display device such that the first displayed object is overlapping the third displayed object at their new intersection as a consequence of having determined that the first displayed object already overlaps the third displayed object.
18. A non-volatile computer-readable storage memory having stored thereon instructions that, when executed, cause a computer to:
- display two or more objects on a pressure-sensitive touch-screen display device;
- receive user input through one or more input mechanisms with the pressure-sensitive touch-screen display device;
- sense a pressure applied to the pressure-sensitive touch-screen display device in a display region that corresponds to a first object of the two or more objects;
- adjust one or more of a shape and a location of the first object based on the sensed pressure via a motion of dragging, wherein the motion of dragging is applied to the first object and includes tracking movement of the one or more input mechanisms during the motion of dragging;
- based on tracking movement of the one or more input mechanisms during the motion of dragging applied to the first object, detect an intersection between the first object and a second object of the two or more objects;
- determine a depth of the first object at the intersection as a function of the sensed pressure;
- determine a depth of the second object at its detected intersection with the first object;
- compare the depth of the first object with a depth of the second object at their detected intersection;
- store data based on the comparison that indicates that one of the first object and the second object is overlapping the other of the first object and the second object; and
- display based on the stored data the first object and the second object such that the overlapping object is displayed closer to a foreground of the display than the other object.
19. The non-volatile computer-readable storage memory of claim 18, further having stored thereon instructions that, when executed, cause a computer to:
- adjust a depth of the first object relative to a display plane as a function of the sensed pressure applied to the pressure-sensitive touch-screen display device, wherein adjusting the depth includes: calculating a tilt plane for the first object as a function of the sensed pressure applied to the pressure-sensitive touch-screen display device by the one or more input mechanisms that contacts the pressure-sensitive touch-screen display device in a region that corresponds to the first object, and applying a tilt to the first object as a function of the calculated tilt plane for the first object; and determine the depth of the first object at its intersection with the second object based on the tilt applied to the first object.
20. The non-volatile computer-readable storage memory of claim 19, further having stored thereon instructions that, when executed, cause a computer to:
- display a third object on the pressure-sensitive touch-screen display device;
- detect a new intersection between the first object and the third object;
- in response to detecting an intersection between the first object and the third object: access the overlap list that is associated with the first object, and determine that the first object already overlaps the third object based on the accessed overlap list that is associated with the first object;
- cause the first and third objects to be displayed on the pressure-sensitive touch-screen display device such that the first object is overlapping the third object at their new intersection as a consequence of having determined that the first object already overlaps the third object.
Type: Application
Filed: Jan 28, 2014
Publication Date: Jul 24, 2014
Applicant: Perceptive Pixel Inc. (Redmond, WA)
Inventor: Philip L. Davidson (New York, NY)
Application Number: 14/166,757
International Classification: G06F 3/0486 (20060101); G06F 3/0484 (20060101); G06F 3/0488 (20060101);