Interactive input systems that allow users to inject input (e.g. digital ink, mouse events etc.) into an application program using an active pointer (e.g. a pointer that emits light, sound or other signal), a passive pointer (e.g. a finger, cylinder or other suitable object) or other suitable input device such as for example, a mouse or trackball, are known. These interactive input systems include but are not limited to: touch systems comprising touch panels employing analog resistive or machine vision technology to register pointer input such as those disclosed in U.S. Pat. Nos. 5,448,263; 6,141,000; 6,337,681; 6,747,636; 6,803,906; 7,232,986; 7,236,162; and 7,274,356 assigned to SMART Technologies ULC of Calgary, Alberta, Canada, assignee of the subject application, the contents of which are incorporated by reference; touch systems comprising touch panels employing electromagnetic, capacitive, acoustic or other technologies to register pointer input; tablet personal computers (PCs); laptop PCs; personal digital assistants (PDAs); and other similar devices.
Multi-touch interactive input systems that receive and process input from multiple pointers using machine vision are also known. One such type of multi-touch interactive input system exploits the well-known optical phenomenon of frustrated total internal reflection (FTIR). According to the general principles of FTIR, the total internal reflection (TIR) of light traveling through an optical waveguide is frustrated when an object such as a pointer touches the waveguide surface, due to a change in the index of refraction of the waveguide, causing some light to escape from the touch point. In a multi-touch interactive input system, the machine vision system captures images including the point(s) of escaped light, and processes the images to identify the position of the pointers on the waveguide surface based on the point(s) of escaped light for use as input to application programs.
The application programs are often configured to receive the processed touch point data, and to interpret the touch point data as Contact Down, Contact Move, or Contact Up events. In systems where application programs are configured to enable a user to produce freeform ink writing or drawing on a background or canvas, it is often the case that an annotation object is created for each Contact Down-Contact Up cycle. For example, an annotation object representing a freeform letter ‘L’ would be created upon completion of a Contact Down event at a particular position, a series of Contact Move events together traversing the shape of the ‘L’, and a Contact Up event at the end. It will be understood that the application programs and annotation objects themselves do not have to be aware that what is drawn in freeform actually represents any particular letter, shape, number etc.
For annotations in particular, it can be useful for an application program to automatically group separate annotation objects into a particular whole. For example, where a user is freeform printing letters of a word, with each letter being represented by a respective annotation object, it is often useful to for the user to be able to easily select the entire word so that it can be manipulated as a word rather than only as discrete letters. While methods are known in which a user can enter a “Selection” mode and manually select various keyboard-typed characters or graphic objects such as icons by manually sweep a pointer across a plurality of graphic objects in order to temporarily group them using a selection box, methods for successfully automating grouping of annotations in particularly useful ways are underdeveloped.
U.S. Pat. No. 6,320,597 to leperen discloses a method for editing objects representing writing on an electronic writeboard. During the method, an object representing writing is created on the electronic writeboard, and it is determined if the created object overlies an existing object by at least a threshold amount. The created and existing objects are automatically merged to create a new object if the created object overlies the existing object by at least a threshold amount. While the patent teaches a very useful method and system, it does not contemplate time lapsed between creation of a writing object. As such, created and existing objects may be merged regardless as to how long after the existing object the created object was created. Furthermore, this patent does not contemplate editing of objects in a multi-user interactive input system.
U.S. Pat. No. 5,889,523 to Wilcox et al. discloses a method and apparatus for dynamically grouping a plurality of graphic objects for graphical editing. Graphic objects in a graphical editing system are grouped using hierarchical agglomerative clustering to form a cluster tree. The cluster tree is based on different types of distances, such as time distance and spatial distance, where the different types of distances are combined into a single distance metric. The system permits a user, via a user interface control element, to traverse the cluster tree thereby to cluster a selected graphic object with others dynamically in various ways according to the user's needs. While this approach provides great flexibility for enabling the user to dynamically work with various graphic objects, it is processing intensive and unnecessarily complex. This is primarily because the approach necessitates preserving a high number of potential clustering options for a user, and establishes no particular clusters based on what a user is likely to want or need. Furthermore, this patent does not contemplate clustering of objects in a multi-user interactive input system.
U.S. Pat. No. 5,784,061 to Moran et al. discloses a method and apparatus for representing a group of graphic objects so as to maximize usage of a display area on a computer controlled graphics display system. A means is provided for “collapsing” a group of graphic objects so that the group is represented by a container icon. In order to group graphic objects, a user performs a gesture using an input device on the system at a position close to the graphic objects intended to be grouped.
U.S. Pat. No. 5,471,578 to Moran et al. discloses a graphical editing system which allows a user to manually modify a selection gesture without having to redraw the entire gesture. The system defines a selection with an enclosure that is treated as a graphical object that can be manually contorted in a style consistent with the specific application.
While the above-described prior art systems and methods provide various approaches for grouping annotations and provide varying degrees of automation and complexity, improvements are desired. It is therefore an object of an aspect of the following to provide a novel method of handling objects representing annotations on an interactive input system, and an interactive input system executing the method.