Patent ID: 6433775
Filing Date: 2002-08-13
Classification: G06F

Abstract:
A method for controlling a pointer comprising:(a) controlling a pointer in an object oriented graphical environment by: (i) developing a list of objects pertaining to graphical regions in a specified area of a display, wherein developing a list of objects pertaining to graphical regions in a specified area of a display includes at least one of: adding an object; deleting an object; and modifying an object; (ii) determining geometry for all of said objects which are pertinent to a location of said pointer on said display; (iii) determining if said pointer location is within said geometry of at least one of said objects; and (iv) modifying a movement on said display based upon properties of said pertinent objects, wherein said properties of said objects include a geometry, wherein said object geometry includes a bounding box, wherein determining if said pointer location is within said geometry of said object includes determining if said pointer location is within said bounding box; (v) wherein said list of said objects is ordered; (vi) wherein determining for all of said objects which are pertinent to a location of said pointer on said display includes repeating for each one of said objects determining if said one object is pertinent to said pointer location by determining if said pointer location is within said geometry of said object until one of said object is determined to be pertinent; (vii) wherein determining for all of said objects which are pertinent to a location of said pointer on said display includes placing said objects pertinent to said pointer location into an ordered list; (viii) wherein modifying said movement on said display based upon properties of said pertinent objects includes modifying said movement based upon an ordering within said ordered list of said pertinent objects; (ix) wherein modifying said movement on said display is based upon at most a predetermined number of said pertinent objects using said ordering within said ordered list of said pertinent objects; (x) wherein said properties of said objects include at least one induced motion rule; (xi) wherein modifying said movement on said display based upon said pertinent objects involves applying said induced motion rules of said pertinent objects; (b) controlling the pointer in an operating system having an event queue by: (i) examining said event queue for original pointer events generated by a pointing device; (ii) removing said original pointer events from said event queue; (iii) generating new pointer events based upon said original pointer events; (iv) maintaining a graphical object list composed of graphical objects, wherein generating new pointer events based upon said original pointer events also is based upon said graphical object list; (v) inserting said new pointer events into said event queue; (vi) maintaining a second event queue; (vii) inserting said original pointer events into said second event queue upon removing said original pointer events from said event queue; and (viii) removing said original pointer event from said second event queue upon generating new pointer event based upon said original pointer events; (ix) wherein generating new pointer events based upon said original pointer events uses at least two of said original pointer events in said second event queue; (x) wherein generating new pointer events based upon said original pointer events includes calculating an incremental velocity using at least two of said original pointer events in said second event queue; (xi) wherein generating new pointer events based upon said original pointer events includes maintaining a third event queue; inserting said incremental velocity into one velocity event; and inserting said velocity event into said third event queue; (xii) wherein each of said graphical objects in said graphical object list includes a geometry; (xiii) wherein generating new pointer events based upon said original pointer events also is based upon said geometry of said graphical objects of said graphical object list; (c) controlling said pointer on a display by: (i) manipulating a pointing device to move a pointer on a display; (ii) observing the behavior of the motion of said pointer on said display relative to one or more objects on said display; and (iii) modifying said manipulation of said pointing device upon observed behavior to continue the movement of said pointer; (d) interfacing said pointing device and a display device with respect to a virtual region of virtual locations by: (i) maintaining at least one virtual sub-region with at least one virtual location and at least one induced motion rule; (ii) associating said pointing device with a virtual location of said virtual region; (iii) forming a list of said sub-regions containing said virtual location of said pointing device; and (iv) modifying said virtual location of said pointing device by applying said induced motion rules of said list of said sub-regions containing said virtual location of said pointing device; (v) wherein said locations include a vector of at least two dimensions.