Methods, apparatus and data structures for providing a user interface, which exploits spatial memory in three-dimensions, to objects and in which object occlusion is avoided
First Claim
Patent Images
1. A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of:
- a) generating a surface, to be rendered on the video display device;
b) determining a location of each of the objects on the surface;
c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device;
d) accepting inputs from the user input device;
e) determining a cursor location based on the accepted inputs;
f) generating the cursor at the determined cursor location, to be rendered on the video display device;
g) if the cursor is located on one of the objects, defining that object as an active object;
h) if the user input provides a move input and if an active object exists, theni) updating a location of the active object, andii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and
i) if the updated location of the active object is within a predetermined distance of another object, theni) defining the other object as a pushed object, andii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
2 Assignments
0 Petitions
Accused Products
Abstract
A graphical user interface in which object thumbnails are rendered on a simulated three-dimensional surface which (i) exploits spatial memory and (ii) allows more objects to be rendered on a given screen. The objects may be moved, continuously, on the surface with a two-dimensional input device.
196 Citations
19 Claims
-
1. A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of:
-
a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, and ii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A man-machine interface method for permitting a user to act on objects, for use with a machine having a video display device and a user input device, the man-machine interface method comprising steps of:
-
a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, ii) storing the location of the pushed object as a pre-push location, and iii) after storing the pre-push location, updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A system which permits a user to interact with objects, the system comprising:
-
a) an input facility for accepting user inputs; b) a storage facility containing i) location and state information for each of the objects, ii) a visual representation of each of the objects, iii) a cursor location, and iv) a surface; c) a processing unit which i) accepts user inputs from the input facility, ii) updates (a) the location and state information for each of the objects contained in the storage facility, and (b) the cursor location contained in the storage facility, based on the accepted user inputs, and iii) generates video outputs based on A) the location and state information for each of the objects, B) the visual representation of each of the objects, C) the cursor location, and D) the surface, contained in the storage facility; and d) a video display unit for rendering the video outputs generated by the processing unit, wherein the state information for each of the objects contained in the storage facility includes an indication of whether or not the object is active, wherein the processing unit determines that an object is active if a cursor is on an object based on the cursor location and the location of the object, wherein, if an object is active and the input facility accepts a move input, then i) the processing unit updates the state and location of the object, ii) the processing unit generates a video output based on the updated location of the object, and iii) the video display device renders the video output generated by the processing unit, and wherein, if an object is active and the input facility accepts a move input, then the processing unit further determines whether the updated location of the object is within a predetermined distance of a location of another object, and if the processor determines that the updated location of the object is within a predetermined distance of another object, the processor updates the location of the other object to avoid total occlusion of either the active object or the other object.
-
-
15. A system which permits a user to interact with objects, the system comprising:
-
a) an input facility for accepting user inputs; b) a storage facility containing i) location and state information for each of the objects, ii) a visual representation of each of the objects, iii) a cursor location, and iv) a surface; c) a processing unit which i) accepts user inputs from the input facility, ii) updates (a) the location and state information for each of the objects contained in the storage facility, and (b) the cursor location contained in the storage facility, based on the accepted user inputs, and iii) generates video outputs based on A) the location and state information for each of the objects, B) the visual representation of each of the objects, C) the cursor location, and D) the surface, contained in the storage facility; and d) a video display unit for rendering the video outputs generated by the processing unit, wherein the state information for each of the objects contained in the storage facility includes an indication of whether or not the object is active, wherein the processing unit determines that an object is active if a cursor is on an object based on the cursor location and the location of the object, wherein, if an object is active and the input facility accepts a move input, then i) the processing unit updates the state and location of the object, ii) the processing unit generates a video output based on the updated location of the object, and iii) the video display device renders the video output generated by the processing unit, and wherein, if an object is active and the input facility accepts a move input, then the processing unit further determines whether the updated location of the object is within a predetermined distance of a location of another object, and if the processor determines that the updated location of the object is within a predetermined distance of another object, the processor i) defines the other object as a pushed object, ii) stores, in the storage facility, the location of the pushed object as a pre-push location, and iii) updates a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object. - View Dependent Claims (16)
-
-
17. A machine readable medium containing data and machine executable instructions which, when executed by a machine having a video display device and a user input device, performs steps comprising:
-
a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, and ii) updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object.
-
-
18. A machine readable medium containing data and machine executable instructions which, when executed by a machine having a video display device and a user input device, performs steps comprising:
-
a) generating a surface, to be rendered on the video display device; b) determining a location of each of the objects on the surface; c) generating visual representations of the objects, on the surface, at the determined locations, to be rendered on the video display device; d) accepting inputs from the user input device; e) determining a cursor location based on the accepted inputs; f) generating the cursor at the determined cursor location, to be rendered on the video display device; g) if the cursor is located on one of the objects, defining that object as an active object; h) if the user input provides a move input and if an active object exists, then i) updating a location of the active object, and ii) generating the visual representation of the active object at its updated location, to be rendered on the video display device; and i) if the updated location of the active object is within a predetermined distance of another object, then i) defining the other object as a pushed object, ii) storing the location of the pushed object as a pre-push location, and iii) after storing the pre-push location, updating a location of the other object to maintain a predetermined distance between it and the active object to prevent total occlusion of the visual representations of either object. - View Dependent Claims (19)
-
Specification