US7218330B1 - Method and system for selecting elements in a graphical user interface - Google Patents
Method and system for selecting elements in a graphical user interface Download PDFInfo
- Publication number
- US7218330B1 US7218330B1 US10/337,654 US33765403A US7218330B1 US 7218330 B1 US7218330 B1 US 7218330B1 US 33765403 A US33765403 A US 33765403A US 7218330 B1 US7218330 B1 US 7218330B1
- Authority
- US
- United States
- Prior art keywords
- perimeter
- points
- point
- element selection
- remaining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 258
- 230000008569 process Effects 0.000 claims description 204
- 238000012545 processing Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 4
- 238000013459 approach Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 60
- 230000005055 memory storage Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
Definitions
- the present invention is generally directed to a software module used for element selection. More specifically, the present invention provides a method and system for selecting elements of a document in a graphical user interface.
- Element selection in a graphical user interface (GUI) environment on a computer system is an essential action to facilitate creating and modifying a diagram, figure, or other type of document.
- GUI graphical user interface
- a document displayed in a GUI includes one or more elements, such as shapes, letters, numbers, or symbols. These elements may need to be selected to perform editing functions in the GUI environment, such as moving, sizing, or changing the color of the elements, for example.
- An element selection perimeter (which is also known as a “lasso”) provides the capability to select one or more elements in a document by enclosing the elements within a closed curve (i.e., a perimeter) that can be produced by various methods.
- One popular method of producing an element selection perimeter is the use of an element selection tool, which is also known as a “lasso tool.”
- An element selection tool can produce an element selection perimeter in response to a user's input actions made with a computer system input device, such as a mouse or digitizer pen.
- an element selection perimeter that is produced using an element selection tool is defined by points (also referred to as vertices) that are generated by the input device and correspond to the movement of the element selection tool in a GUI. These points are connected in sequence by line segments to produce an element selection perimeter.
- an element selection perimeter can offer a user the convenient capability of selecting multiple elements at the same time instead of having to select each element individually.
- the process of element selection in a GUI with an element selection perimeter should occur quickly and efficiently to provide useful performance.
- existing approaches to the process of element selection in a GUI typically provide slow element selection performance.
- the existing approaches typically require a significant amount of processing by a computer system processor to execute the process, which can degrade the overall performance of the computer system, such as the capability to execute other processes.
- existing approaches typically define an element selection perimeter using every point that is made by an element selection tool or other method of producing an element selection perimeter. Since these points are typically closely spaced, the resulting element selection perimeter is typically defined by many points, which typically causes element selection to be a slow and processor-intensive process.
- existing approaches typically determine which elements to select by testing each element in a document to determine if it is contained within the element selection perimeter. Thus, elements may be analyzed that are not even close to the interior of the element selection perimeter or that should not be selected because they are in a hidden or locked mode. This is also typically a slow and processor-intensive process.
- a need in the art for a method and system for selecting elements in a graphical user interface that provides fast and processor efficient performance. Specifically, a need exists to be able to define an element selection perimeter using a minimal number of points (or vertices). A further need exists to be able to determine which elements have been selected by only testing the elements that are at least partially contained within the element selection perimeter.
- the present invention is generally directed to providing element selection in a graphical user interface (GUI) quickly, with minimal processor computations, using an element selection perimeter or “lasso.”
- GUI graphical user interface
- the present invention overcomes shortcomings of existing approaches to element selection, which typically involve a slow, computation-intensive process of checking each element for containment within an element selection perimeter.
- the present invention simplifies an element selection perimeter that is produced by one of various methods, such as an element selection tool (or “lasso tool”), to facilitate fast element selection computations.
- the present invention also performs preliminary selections and rejections of elements that are located inside or outside of an element selection perimeter, respectively, to reduce the number of element selection computations.
- the invention comprises a computer-implemented method for element selection in a GUI.
- the method includes creating an element selection perimeter, simplifying the element selection perimeter, and determining which elements are selected.
- An element selection module (ESM) can simplify the element selection perimeter by reading the vertices that define the perimeter and determining the area contribution of each vertex.
- the ESM can redefine the element selection perimeter without the corresponding vertex for each vertex area contribution that the ESM determines is less than a predetermined area value.
- the ESM can then compare the number of remaining vertices to a predetermined vertex quantity value to determine whether to further simplify the element selection perimeter. If further simplification is needed, the ESM can redefine the element selection perimeter without the vertex that has the smallest contribution area until the ESM determines that the number of remaining vertices is less than the predetermined vertex quantity value.
- the ESM can determine initial element selections by rejecting unselectable (e.g., hidden or locked) elements from selection consideration, defining a bounding box around the element selection perimeter and each element, and rejecting from consideration for selection each element with a bounding box that is entirely outside the bounding box of the element selection perimeter. If the selection mode is full containment, the ESM can reject each element from consideration for selection that has a bounding box that is not entirely inside of the bounding box of the element selection perimeter. If any elements remain that have a bounding box that is at least partially within the bounding box of the element selection perimeter, the ESM can reject from consideration for selection each element with a bounding box that is entirely outside of the actual element selection perimeter.
- unselectable elements e.g., hidden or locked
- the ESM can select each element with a bounding box that is entirely inside of the element selection perimeter. If any elements remain that are at least partially within the element selection perimeter, the ESM can select such elements, depending on the selection mode. If the selection mode is full containment, the ESM can select each element that is entirely contained within the element selection perimeter. If the selection mode is partial containment, the ESM can select each element that is at least partially contained within the element selection perimeter.
- the invention comprises a computer system for element selection in a GUI that includes a processing unit, a memory, a display device for displaying document elements, an input device for selecting document elements, and a program stored in the memory for providing instructions to the processing unit.
- the processing unit is responsive to the instructions of the program for the purpose of simplifying an element selection perimeter, and determining which elements are selected. Simplifying an element selection perimeter and determining which elements are selected according to the instructions can include the same details as described above.
- the invention further provides a computer-readable medium that has an element selection routine stored on it.
- the element selection routine includes logic for simplifying an element selection perimeter and logic for determining which elements are selected. Simplifying an element selection perimeter and determining which elements are selected according to the logic can include the same details as described above.
- FIG. 1 is a block diagram illustrating an exemplary operating environment for implementation of various embodiments of the present invention.
- FIG. 2 is a block diagram illustrating an exemplary architecture of the document program illustrated in the block diagram of FIG. 1 according to an exemplary embodiment of the present invention.
- FIG. 3 is a logic flow diagram illustrating an overview of an exemplary process for selecting elements in a graphical user interface according to an exemplary embodiment of the present invention.
- FIG. 4A is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 3 for simplifying an element selection perimeter according to an exemplary embodiment of the present invention.
- FIG. 4B is a logic flow diagram illustrating an alternative exemplary process of the logic flow diagram illustrated in FIG. 3 for simplifying an element selection perimeter according to an exemplary embodiment of the present invention.
- FIG. 5 is a logic flow diagram illustrating an exemplary process of the logic flow diagrams illustrated in FIGS. 4A and 4B for determining the area contributions of the vertices according to an exemplary embodiment of the present invention.
- FIG. 6A is a logic flow diagram illustrating an exemplary process of the logic flow diagrams illustrated in FIGS. 4A and 4B for redefining the element selection perimeter without the corresponding vertex according to an exemplary embodiment of the present invention.
- FIG. 6B is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 4A for redefining the element selection perimeter without the vertex that has the smallest area contribution according to an exemplary embodiment of the present invention.
- FIG. 6C is a logic flow diagram illustrating an exemplary process of the logic flow diagrams illustrated in FIGS. 6A and 6B for determining the new area contributions of the remaining vertices according to an exemplary embodiment of the present invention.
- FIG. 7 is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 3 for determining which elements are selected according to an exemplary embodiment of the present invention.
- FIG. 8 is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 3 for determining which elements are selected according to an exemplary embodiment of the present invention.
- FIG. 9 is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 3 for determining which elements are selected according to an exemplary embodiment of the present invention.
- FIG. 10A is a logic flow diagram illustrating an exemplary process for determining the containment status of an element with respect to an element selection perimeter according to an exemplary embodiment of the present invention.
- FIG. 10B is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 10A for determining if an element intersects an element selection perimeter according to an exemplary embodiment of the present invention.
- FIG. 10C is a logic flow diagram illustrating an exemplary process of the logic flow diagram illustrated in FIG. 10A for determining if an element is entirely outside of an element selection perimeter according to an exemplary embodiment of the present invention.
- FIG. 11 illustrates an exemplary document with elements that are enclosed in an element selection perimeter according to an exemplary embodiment of the present invention.
- FIG. 12 illustrates an exemplary section of the element selection perimeter illustrated in FIG. 11 that includes vertices and an exemplary vertex contribution area according to an exemplary embodiment of the present invention.
- FIG. 13A illustrates an exemplary document with elements that have been processed for full containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 7 according to an exemplary embodiment of the present invention.
- FIG. 13B illustrates an exemplary document with elements that have been processed for partial containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 7 according to an exemplary embodiment of the present invention.
- FIG. 14A illustrates an exemplary document with elements that have been processed for full containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 8 according to an exemplary embodiment of the present invention.
- FIG. 14B illustrates an exemplary document with elements that have been processed for partial containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 8 according to an exemplary embodiment of the present invention.
- FIG. 15A illustrates an exemplary document with elements that have been processed for full containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 9 according to an exemplary embodiment of the present invention.
- FIG. 15B illustrates an exemplary document with elements that have been processed for partial containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 9 according to an exemplary embodiment of the present invention.
- the present invention enables the selection of elements in a graphical user interface (GUI) quickly, with minimal processor computations, using an element selection perimeter or “lasso.” Specifically, the present invention simplifies an element selection perimeter by reducing the number of points that define the perimeter to facilitate fast element selection computations.
- Conventional approaches to element selection typically define an element selection perimeter using every point that is made by an element selection tool or other method of producing an element selection perimeter, which causes element selection to have increased complexity and computation requirements.
- the present invention facilitates simple, fast element selection computations by minimizing the number of points defining an element selection perimeter.
- Conventional approaches to element selection also typically test each element in a document to determine if it is contained within an element selection perimeter, which typically requires a large amount of unnecessary computations.
- the present invention performs preliminary selections and rejections of elements that are located inside or outside of an element selection perimeter, respectively, thereby reducing the number of element selection computations needed to determine element selections.
- the effects of the simplification of an element selection perimeter and the preliminary selections and rejections of elements with respect to the element selection perimeter, in accordance with the present invention, are to provide element selection in a GUI that is fast and requires a minimized amount of computations.
- exemplary embodiments of the present invention will be generally described in the context of a software module and an operating system running on a personal computer, those skilled in the art will recognize that the present invention can also be implemented in conjunction with other program modules for other types of computers. Furthermore, those skilled in the art will recognize that the present invention may be implemented in a stand-alone or in a distributed computing environment. In a distributed computing environment, program modules may be physically located in different local and remote memory storage devices. Execution of the program modules may occur locally in a stand-alone manner or remotely in a client/server manner. Examples of such distributed computing environments include local area networks of an office, enterprise-wide computer networks, and the global Internet.
- the processes and operations performed by the computer include the manipulation of signals by a processing unit or remote server and the maintenance of these signals within data structures resident in one or more of the local or remote memory storage devices.
- Such data structures impose a physical organization upon the collection of data stored within a memory storage device and represent specific electrical or magnetic elements.
- the present invention includes a computer program which embodies the functions described herein and illustrated in the appended flow charts (or logic flow diagrams).
- the invention should not be construed as limited to any one set of computer program instructions.
- a skilled programmer would be able to write such a computer program to implement the disclosed invention without difficulty based on the flow charts and associated description in the application text, for example. Therefore, disclosure of a particular set of program code instructions is not considered necessary for an adequate understanding of how to make and use the present invention.
- the inventive functionality of the claimed computer program will be explained in more detail in the following description in conjunction with the remaining figures illustrating the program flow.
- FIG. 1 is a block diagram illustrating an exemplary operating environment 1 for implementation of various embodiments of the present invention.
- FIG. 1 and the associated discussion are intended to provide a brief, general description of one exemplary embodiment of computer hardware and program modules, and that additional information is readily available in appropriate programming manuals, user's guides, and similar publications.
- the exemplary operating environment 1 illustrated in FIG. 1 includes a general-purpose computing device that can be in the form of a conventional personal computer 10 .
- the personal computer 10 operates in a networked environment with logical connections to a remote server 11 .
- the logical connections between the personal computer 10 and the remote server 11 are represented by a local area network 12 and a wide area network 13 .
- the remote server 11 may function as a file server or computer server.
- the personal computer 10 includes a processing unit 14 , such as a “PENTIUM” microprocessor manufactured by Intel Corporation of Santa Clara, Calif.
- the personal computer also includes system memory 15 , including read only memory (ROM) 16 and random access memory (RAM) 17 , which is connected to the processor 14 by a system bus 18 .
- An exemplary embodiment of the computer 10 utilizes a basic input/output system (BIOS) 19 , which is stored in the ROM 16 .
- BIOS 19 is a set of basic routines that helps to transfer information between elements of the personal computer 10 .
- BIOS 19 is a set of basic routines that helps to transfer information between elements of the personal computer 10 .
- the present invention may be implemented on computers having other architectures, such as computers that do not use a BIOS 19 , and those that utilize other types of microprocessors for a processing unit 14 .
- a local hard disk drive 20 is connected to the system bus 18 via a hard disk drive interface 21 .
- a floppy disk drive 22 which is used to read or write to a floppy disk 23 , is connected to the system bus 18 via a floppy disk drive interface 24 .
- a CD-ROM or DVD drive 25 which is used to read a CD-ROM or DVD disk 26 , is connected to the system bus 18 via a CD-ROM or DVD interface 27 .
- a user can enter commands and information into the personal computer 10 by using input devices, such as a keyboard 28 and/or pointing device, such as a mouse 29 , which are connected to the system bus 18 via a serial port interface 30 .
- input devices such as a keyboard 28 and/or pointing device, such as a mouse 29
- Other types of pointing devices include track pads, track balls, digitizer pens, head trackers, data gloves, and other devices suitable for positioning a cursor on a monitor 31 .
- the monitor 31 or other kind of display device is connected to the system bus 18 via a video adapter 32 .
- a number of program modules can be stored on ROM 16 , RAM 17 , hard disk 21 , floppy disk 23 , or CD-ROM/DVD disk 26 , such as an operating system 36 , an application program module 37 a , a browser program module 37 b , and a document program 38 .
- Program modules include routines, sub-routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. Aspects of the present invention can be implemented in a document program 38 to select elements of a document in a GUI.
- the remote server 11 in this networked environment is connected to a remote memory storage device 33 .
- This remote memory storage device 33 is typically a large capacity device such as a hard disk drive, CD-ROM or DVD drive, magneto-optical drive or the like.
- program modules such as an application program module 37 a
- the personal computer 10 is connected to the remote server 11 by a network interface 34 , which is used to communicate over a local area network (LAN) 12 .
- LAN local area network
- the personal computer 10 is also connected to the remote server 11 by a modem 35 , which is used to communicate over a wide area network (WAN) 13 , such as the Internet.
- the modem 35 is connected to the system bus 18 via the serial port interface 30 .
- the modem 35 also can be connected to the public switched telephone network (PSTN) or community antenna television (CATV) network.
- PSTN public switched telephone network
- CATV community antenna television
- program modules such as the operating system 36 , the application program module 37 a , the browser program module 37 b , and the document program 38 can be provided to the personal computer 10 via computer-readable media.
- the computer-readable media can include the local or remote memory storage devices, which may include the local hard disk drive 20 , floppy disk 23 , CD-ROM/DVD 26 , RAM 17 , ROM 16 , and the remote memory storage device 33 .
- the local hard disk drive 20 is used to store data and programs.
- the exemplary document program architecture 38 includes a main logic 202 , which embodies main routines and functions of the document program 38 .
- the architecture 38 also includes various application modules, such as an element selection module 204 and other application modules 206 , 208 . These application modules typically provide additional routines and functions to the main logic 202 of the document program 38 .
- the element selection module (ESM) 204 can be configured to implement aspects of the present invention for the purpose of selecting elements in a document of the document program 38 in a GUI. In this regard, functions of the ESM 204 as they relate to aspects of the present invention will be described in detail below.
- FIG. 3 is a logic flow diagram that illustrates an overview of an exemplary process 300 for selecting elements in a graphical user interface according to an exemplary embodiment of the present invention.
- an element selection perimeter also known as a “lasso,” can be created.
- the element selection perimeter is typically made in a GUI around one or more elements of a document of a document program 38 .
- an element selection perimeter 1102 is depicted surrounding several elements. Other examples of an element selection perimeter will be discussed subsequently below.
- the element selection perimeter may be created using an element selection tool, also known as a “lasso tool,” which can produce an element selection perimeter in a document in response to a user's input actions made with a computer system input device, such as a mouse 29 or digitizer pen.
- an element selection perimeter may be created in step 301 by a routine of the main logic 202 of the document program 38 , the ESM 204 , or other application modules 206 , 208 , such as an edge detection routine that creates an element selection perimeter based on the edge parameters of an element in a document.
- other methods may be used to create an element selection perimeter 204 which may be known in the art.
- step 302 the element selection perimeter created in step 301 can be simplified, typically by functions of the ESM 204 .
- the ESM 204 reduces or minimizes the number of points (or vertices) that define an element selection perimeter to facilitate fast element selection computations. Exemplary processes for the simplification of the element selection perimeter in accordance with step 302 will be described further below.
- step 304 a determination is made of which elements have been selected. This step 304 is also typically carried out by functions of the ESM 204 .
- step 304 preliminary selections and rejections are made of elements that are located inside or outside of an element selection perimeter, respectively, in order to reduce the amount and complexity of element selection computations needed to determine the element selections. Further, in step 304 , the elements that are selected by use of the element selection perimeter are actually determined. Exemplary processes for the determination of the element selection in accordance with step 304 will be described further below.
- step 302 of the process 300 may be executed by the ESM 204 substantially contemporaneous to the creation of the element selection perimeter in step 301 .
- the ESM 204 may simplify one or more sections of the element selection perimeter prior to the complete element selection perimeter being produced in a document. This substantially contemporaneous execution of steps 301 and 302 facilitates faster overall execution of the process 300 of element selection.
- FIG. 4A a logic flow diagram is shown that illustrates an exemplary process 302 A for the simplification of the element selection perimeter in accordance with step 302 of FIG. 3 .
- the exemplary process 302 A begins with step 402 in which the ESM 204 reads the vertices (i.e., the points) that define an element selection perimeter.
- vertices i.e., the points
- an element selection perimeter is typically defined by vertices (or points) that are connected sequentially by line segments.
- a section 1200 of an element selection perimeter is shown that includes vertices 1201 – 1205 that are sequentially connected by line segments 1207 – 1210
- These vertices may, for example, be produced by a mouse 29 in conjunction with an element selection tool that is used to produce an element selection perimeter.
- the ESM 204 can collect information on these vertices, such as their location and sequence, to use in subsequent steps of the process 302 A.
- Step 404 follows step 402 in the process 302 A.
- the ESM 204 determines the area contributions of the vertices, which will be referred to as the vertex area contributions.
- the ESM 204 determines the vertex area contributions based on an area defined by connecting three or more vertices of the element selection perimeter. For example, referring again briefly to FIG. 12 , the vertices 1202 – 1204 are connected to define a vertex contribution area 1206 .
- the vertex contribution areas that are determined in step 404 can be used in subsequent steps of the process 302 A. An exemplary process for determining the vertex contribution areas in accordance with step 404 will be described in more detail below.
- step 406 the ESM 204 determines whether any of the vertex area contributions that were determined in step 404 are less than a predetermined area value, A min .
- This predetermined area value may be based on any of a number of factors, including empirical calculations, algorithmic calculations, and/or a user's preferences.
- the value of A min facilitates an optimal minimization, in subsequent steps of the process 302 A, of the number of vertices that define the element selection perimeter.
- the determination made in step 406 can be made by various methods which may known in the art, such as a relational comparison of each vertex contribution area value to the predetermined area value, A min .
- the vertex area contribution that is analyzed in step 406 may be based on one or more factors such as the sequence of the corresponding vertex or the relative value of the vertex area contribution, among others.
- step 406 If it is determined in decision step 406 that there is a vertex area contribution that is less than A min , the process 302 A proceeds along the “yes” branch to step 408 .
- step 408 the ESM 204 redefines the element selection perimeter without the corresponding vertex of the vertex contribution area that was determined to be less than A min in step 406 .
- vertex 1203 can be the corresponding vertex of vertex area contribution 1206 .
- the rationale for eliminating the corresponding vertex in this step 408 is that its contribution to the overall shape of the element selection perimeter is negligible when considering the computational benefits gained by reducing the number of vertices that define the element selection perimeter.
- the subsequent computations required to determine the elements that are selected are reduced in complexity, which facilitates faster computations, by reducing the number of vertices that define the element selection perimeter.
- a beneficial trade-off of increased speed of the element selection computations for reduced accuracy of the intended shape of the element selection perimeter is made by eliminating the corresponding vertex in step 408 .
- An exemplary process for redefining the element selection perimeter without the corresponding vertex in accordance with step 408 will be described in more detail below.
- the process 302 A proceeds back to decision step 406 and the ESM 204 again determines whether any of the remaining vertex area contributions are less than A min .
- This determination by the ESM 204 can include consideration of any new vertex contribution areas that exist as the result of the redefinition of the element selection perimeter by the ESM 204 in step 408 .
- the ESM 204 may calculate the new vertex contribution areas that result from the elimination of the corresponding vertex in step 408 , prior to repeating the determination in step 406 .
- step 406 determines whether there is not a vertex area contribution that is less than A min . If it is determined in decision step 406 that there is not a vertex area contribution that is less than A min , the process 302 A proceeds along the “no” branch to step 414 .
- step 414 the ESM 204 determines the number of remaining vertices that define the element selection perimeter. The ESM 204 can make the determination of step 414 by various methods which may be known in the art. Moreover, the ESM 204 may utilize data gathered in previous steps of the process 302 A in order to determine the number of remaining vertices in step 414 .
- step 410 the ESM 204 determines whether the number of remaining vertices that define the element selection perimeter, which was determined in step 414 , is less than a predetermined vertex quantity value, N max . Similar to A min , described above, the predetermined vertex quantity value N max may be based on any of a number of factors, including empirical calculations, algorithmic calculations, and/or a user's preferences. The value of N max preferably facilitates optimally fast element selection computations in subsequent steps of the process 302 A, due to the reduced number of vertices that define the element selection perimeter.
- the determination made in step 410 by the ESM 204 can be done by various methods which may known in the art, such as a relational comparison of the number of remaining vertices that define the element selection perimeter to the predetermined vertex quantity value, N max .
- step 410 the ESM 204 determines in step 410 that the number of remaining vertices that define the element selection perimeter is not less than N max .
- step 412 the ESM 204 redefines the element selection perimeter without the vertex that corresponds to the smallest vertex area contribution. For example, referring to FIG. 12 , the ESM can redefine the element selection perimeter between vertex 1202 and vertex 1204 along line segment 1211 without the corresponding vertex 1203 . Similar to the rationale for step 408 , step 412 provides a beneficial trade-off of increased speed of the element selection computations for reduced accuracy of the intended shape of the element selection perimeter by eliminating a corresponding vertex. An exemplary process for redefining the element selection perimeter without the corresponding vertex in accordance with step 412 will be described in more detail below.
- step 412 After the ESM 204 redefines the element selection perimeter in step 412 , the process 302 A proceeds back to step 414 and the ESM 204 again determines the number of remaining vertices that define the element selection perimeter. The process 302 A then proceeds again to step 410 - and the ESM 204 determines whether the revised number of remaining vertices is less than N max .
- the progression of step 414 , step 410 , and step 412 can repeat until the number vertices that define the element selection perimeter becomes less than N max .
- step 410 If the ESM 204 determines in step 410 that the number of remaining vertices that define the element selection perimeter is less than N max , the process 302 A proceeds along the “yes” branch and terminates by proceeding to step 304 of FIG. 3 , in which the element selection is determined. It should be noted that the steps 402 – 414 of the process 302 A may be executed by the ESM 204 substantially contemporaneous to the creation of the element selection perimeter in step 302 of the process 300 ( FIG. 3 ). Thus, for example, the ESM 204 may determine one or more vertex area contributions in step 404 prior to the completion of the creation of the element selection perimeter.
- the ESM 204 may determine that a vertex contribution area is less than A min and then redefine the element selection perimeter without the corresponding vertex, in accordance with steps 406 and 408 , prior to the completion of the creation of the element selection perimeter. This substantially contemporaneous execution of the steps 402 – 414 with step 302 facilitates faster overall execution of the process 300 of element selection.
- FIG. 4B is a logic flow diagram illustrating an alternative exemplary process 302 B for the simplification of the element selection perimeter in accordance with step 302 of FIG. 3 .
- Most of the steps 402 – 416 for the process 302 B are the same or substantially similar to the steps 402 – 414 for the process 302 A ( FIG. 4A ) that were described above, although the progression of some of the steps are different. Therefore, some steps of the process 304 B will only be described briefly below with reference made to the more detailed descriptions that were made above with respect to the process 302 A of FIG. 4A .
- the process 302 B begins with step 402 in which the ESM 204 reads the vertices that define an element selection perimeter. As described in further detail above with respect to FIG. 4A , the ESM 204 can collect information on these vertices in step 402 to use in subsequent steps of the process 302 B.
- step 404 the ESM 204 determines the vertex area contributions, as described in further detail above for FIG. 4A , for subsequent use in the process 302 B.
- An exemplary process in accordance with step 404 will be described in more detail below.
- Decision step 406 follows step 404 in the process 302 B.
- the ESM 204 determines whether any of the vertex area contributions that were determined in step 404 are less than the predetermined area value, A min , in step 406 .
- the value of A min may be based on various factors to facilitate the optimal minimization of the number of vertices that define the element selection perimeter.
- step 406 If it is determined in decision step 406 that there is a vertex area contribution that is less than A min , the process 302 A proceeds along the “yes” branch to step 408 .
- step 408 the ESM 204 redefines the element selection perimeter without the corresponding vertex of the vertex contribution area that was determined to be less than A min in step 406 .
- the trade-off rationale for step 408 here is the same as described above with respect to the process 302 A of FIG. 4A .
- an exemplary process in accordance with step 408 will be described in more detail below.
- step 408 in which the ESM 204 redefines the element selection perimeter, the process 302 A proceeds back to decision step 406 and the ESM 204 again determines whether any of the remaining vertex area contributions are less than A min . As discussed in more detail above with respect to FIG. 4A , this determination by the ESM 204 may include consideration of any new vertex contribution areas that result from the redefinition in step 408 .
- step 406 determines whether there is not a vertex area contribution that is less than A min . If it is determined in decision step 406 that there is not a vertex area contribution that is less than A min , the process 302 B proceeds along the “no” branch to step 414 .
- step 414 the ESM 204 determines the number of remaining vertices that define the element selection perimeter, as discussed in more detail above for FIG. 4A .
- the process 302 B proceeds to decision step 410 after step 414 .
- step 410 the ESM 204 determines whether the number of remaining vertices that define the element selection perimeter is less than the predetermined vertex quantity value, N max . Details of how step 410 may be executed, as well the details of how N max may be determined, were described above with respect to FIG. 4A .
- step 410 of the process 302 B determines in step 410 of the process 302 B that the number of remaining vertices is not less than N max .
- the process 302 A proceeds along the “no” branch to step 416 .
- step 416 the ESM 204 increases the value of A min .
- the value that A min is increased to in step 416 may be based on factors such as empirical calculations, algorithmic calculations, and/or a user's preferences, among others.
- the ESM 204 may increase the value of A min in step 416 based on one or more predetermined increment values.
- Such increments may have different values and may be applied dependent on other factors, such as the present value of A min or the number of times A min has been previously increased, for example.
- a min is increased in step 416 just enough to facilitate sufficient simplification of the element selection perimeter through the further elimination of vertices.
- step 416 proceeds from step 416 back to decision step 406 in which the ESM 204 determines whether any of the remaining vertex area contributions are less than the new value of A min . If the ESM 204 determines that there is a vertex area contribution less than A min , the process 302 B proceeds along the “yes” branch to step 408 as just described above. The progression of step 406 to step 408 can repeat until the ESM 204 determines that there is not a vertex area contribution remaining that is less than A min , in which case the process 302 B will proceed again along the “no” branch to step 414 , as just described above. From step 414 , the process will proceed again to decision step 410 .
- step 410 the ESM 204 again determines in step 410 that the number of remaining vertices is not less than N max , the process 302 B will proceed again along the “no” branch to FIG. 416 , as just described above.
- the progression of steps 406 , 410 , and 416 and of steps 406 and 408 may repeat until the ESM 204 determines in step 410 that the number of vertices is less than N max , in which case the process will proceed along the “yes” branch from step 410 and terminate by proceeding to step 304 of FIG. 3 .
- the steps 402 – 416 of the process 302 B may be executed by the ESM 204 substantially contemporaneous to the creation of the element selection perimeter in step 302 of the process 300 ( FIG. 3 ).
- FIG. 5 a logic flow diagram is shown that illustrates an exemplary process 404 for determining the area contributions of the vertices in accordance with step 404 of FIGS. 4A and 4B .
- the exemplary process 404 begins with step 502 in which the ESM 204 selects three sequential vertices on the element selection perimeter that was created in step 301 ( FIG. 3 ). As discussed above, the sequence information of the vertices may be collected during step 402 of processes 302 A and 302 B.
- the ESM 204 defines a triangular perimeter using the three vertices selected in step 502 . For example, the ESM 204 can define a triangular perimeter by connecting the three vertices together by line segments, as discussed above by the exemplary reference to FIG. 12 .
- step 506 the ESM 204 calculates the area that is bounded by the triangular perimeter defined in step 504 . This area corresponds to the vertex area contribution for the second vertex in the sequence of three vertices selected in step 502 .
- the steps 502 – 506 of the process 404 can be repeated as needed to determine the vertex contribution area of each vertex that defines the element selection perimeter. Moreover, the steps 502 – 506 can be executed by the ESM 204 using various methods which may be known in the art.
- the process 404 terminates by proceeding to step 406 of FIG. 4A or 4 B.
- FIG. 6A is a logic flow diagram illustrating an exemplary process 408 of redefining the element selection perimeter in accordance with step 408 of FIGS. 4A and 4B .
- the process 408 begins at step 602 in which the ESM 204 selects the triangular perimeter that bounds the corresponding vertex area contribution that is less than A min .
- the triangular perimeter is defined in step 504 of process 404 ( FIG. 5 ) and the corresponding vertex area contribution is determined in step 404 of process 302 A or 302 B ( FIG. 4A or 4 B).
- the process 408 proceeds from step 602 to step 606 in which the ESM 204 deletes the second vertex of the sequence of three vertices that define the triangular perimeter selected in step 602 .
- the sequence information of the vertices may be collected during step 402 of process 302 A or 302 B.
- the ESM 204 redefines the section of the element selection perimeter between the two remaining vertices of the triangular perimeter. For example, the line segments that connected to the second vertex (deleted in step 606 ) to define the element selection perimeter can be deleted and the element selection perimeter can be redefined by connecting a line segment between the two remaining vertices. An example of such redefinition of the element selection perimeter was briefly described above with respect to FIG. 12 .
- the ESM 204 determines the new area contributions of the two remaining vertices.
- This step 610 is performed so that the vertex area contributions of the two remaining vertices can be updated, since these vertex area contributions previously depended on the corresponding vertex that was deleted in step 606 . Moreover, one or both of the updated vertex area contributions may be less than A min , based on a subsequent determination in step 406 . Thus, performing step 610 further facilitates the simplification of the element selection perimeter. Step 610 , as well as the other steps 602 – 608 of the process 408 , may be performed by various methods which may be known in the art. An exemplary process for determining the new vertex area contributions of the remaining vertices will be described in more detail below. After step 610 , the process 408 terminates by proceeding to step 406 of FIG. 4A or 4 B.
- FIG. 6B a logic flow diagram is shown that illustrates an exemplary process 412 for determining the area contributions of the vertices in accordance with step 412 of FIG. 4A .
- Most of the steps 604 – 610 for the process 412 are the same or substantially similar to the steps 602 – 610 for process 408 ( FIG. 6A ) just described above. Therefore, some steps of the process 412 will only be described briefly in the following with reference made to the more detailed descriptions that were made above with respect to the process 408 of FIG. 6A .
- the process 412 is executed to further simplify the element selection perimeter, as discussed above in connection with FIG. 4A .
- step 412 is executed to eliminate additional vertices as needed, after all of the corresponding vertices with vertex area contribution less than A min have been eliminated, in order to reduce the number of vertices defining the element selection perimeter to less than N max .
- the process 412 begins with step 604 in which the ESM 204 selects the triangular perimeter that bounds the smallest vertex contribution area.
- the ESM 204 can determine the smallest vertex contribution area as part of this step 604 .
- the corresponding vertex area contribution is determined in step 404 of process 302 A ( FIG. 4A ).
- step 606 which follows step 604 , the ESM 204 deletes the second vertex of the sequence of three vertices that define the triangular perimeter selected in step 604 .
- the sequence information for step 606 may be collected during step 402 of process 302 A.
- step 606 proceeds from step 606 to step 608 .
- the ESM 204 redefines the section of the element selection perimeter between the two remaining vertices of the triangular perimeter in step 608 .
- the ESM 204 determines the new area contributions of the two remaining vertices in step 610 .
- This step 610 is also described in further detail above with respect to FIG. 6A .
- the step 610 as well as the other steps 604 – 608 of the process 412 , may be performed by various methods which may be known in the art. Moreover, an exemplary process for step 610 will be described in more detail below.
- the process 412 terminates by proceeding to step 410 of FIG. 4A .
- FIG. 6C a logic flow diagram is shown that illustrates an exemplary process 610 for determining the new vertex area contributions of the remaining vertices in accordance with steps 610 of FIGS. 6A and 6B .
- the process 610 starts at step 622 .
- the ESM 204 selects a remaining vertex and also selects the vertex in sequence immediately before and after the remaining vertex on the element selection perimeter.
- the ESM 204 selects three vertices in sequence on the element selection perimeter with the remaining vertex corresponding to the second vertex in the sequence.
- the ESM 204 defines a triangular perimeter using the three vertices in step 624 .
- This step 624 is the same or substantially similar in detail to step 504 , which was described above with respect to FIG. 5 .
- step 626 the ESM 204 calculates the area bounded by the triangular perimeter, and this step 626 is the same or substantially similar in detail to step 506 that was described above with respect to FIG. 5 .
- step 626 the process 610 terminates by proceeding to step 406 of FIG. 4A or 4 B or to step 410 of FIG. 4A .
- the steps 622 – 626 of the process 610 may be performed by various methods known in the art.
- FIG. 7 shows a logic flow diagram that illustrates an exemplary process 304 A for determining which elements are selected in accordance with step 304 of FIG. 3 .
- the process 304 A starts with step 702 in which the ESM 204 rejects every element in a document that is unselectable. More specifically, the ESM 204 removes unselectable elements from subsequent consideration to be selected. Elements that are rejected in this and subsequent steps of the process 304 A will not be tested to determine if they are within the element selection perimeter. Essentially, these elements are eliminated before the main element selection computations, in which the positions of elements with respect to the element selection perimeter are directly determined.
- an element is unselectable, for example, if it is in a locked mode or located on a hidden layer of the document. Elements that are unselectable typically cannot be edited, therefore it would be a waste of computation capability to consider such elements for selection. Elements that are unselectable will be rejected from consideration for selection in step 702 even if they are located within the element selection perimeter.
- the process 304 A proceeds to step 704 in which the ESM 204 defines a bounding box around the element selection perimeter.
- the bounding box will be axis aligned and tightly bound. That is, the line segments that define the bounding box are aligned with the horizontal (or x) axis and the vertical (or y) axis of the document to form a rectangular shaped outline around the element selection perimeter. Furthermore, the line segments of the bounding box are also aligned on the outermost edges of the element selection perimeter that correspond with the rectangular outline.
- a bounding box 1103 that is axis aligned and tightly bound is shown defined around an element selection perimeter 1102 . Bounding boxes are known in the art.
- Step 706 follows step 704 in the process 304 A.
- the ESM 204 defines a bounding box around each element in the document. Similar to the bounding box that is defined around the element selection perimeter in step 704 , the bounding boxes defined in step 706 are axis aligned and tightly bound. Referring again briefly to FIG. 13A for exemplary purposes, a bounding box 1105 that is axis aligned and tightly bound is shown defined around an element 1104 of a document 1300 A.
- step 708 which follows step 706 , the ESM 204 rejects every element with a bounding box that is entirely outside of the element selection perimeter bounding box. Since comparison of the position of bounding boxes in a document can typically be conducted with relatively few, simple computations, the ESM 204 rejects such elements from consideration for selection without the need to conduct numerous, more complex computations. Thus, this step 708 further reduces the amount and complexity of computations that are needed to determine the elements that are selected.
- the ESM 204 determines the selection mode in decision step 710 .
- the selection mode can be full containment or partial containment, which refers to the position of the element (and/or the element bounding box) in the document with respect to the interior of the element selection perimeter (and/or the element selection perimeter bounding box).
- the selection mode may be based one or more factors, such as a setting preference that is input by a user or an internal setting that is based on an algorithmic determination.
- step 710 the process 304 A proceeds along the “full containment” branch to step 712 .
- step 712 the ESM 204 rejects from consideration for selection every element with a bounding box that is not fully inside of the element selection perimeter bounding box. Similar to the rejection of elements in step 708 , the rejection of elements in step 712 is also conducted by relatively few, simple computations, since the rejection is based on the position of bounding boxes.
- step 710 the process 304 A proceeds along the “partial containment” branch to decision step 714 .
- the process 304 A also proceeds to decision step 714 from step 712 .
- step 714 the ESM 204 determines whether there are any unrejected elements remaining in the document with a bounding box that is at least partially contained in the element selection perimeter bounding box. If the determination is that no such elements in the document meet the foregoing criteria, the process 304 A proceeds along the “no” branch and terminates with no elements selected in the document, since no elements are even at least partially contained in the element selection perimeter.
- step 714 determines whether one or more such elements in the document meet the determination criteria. If the determination in step 714 is that one or more such elements in the document meet the determination criteria, the process 304 A proceeds along the “yes” branch and terminates by proceeding to step 802 , which will be discussed subsequently with respect to FIG. 8 .
- the steps 702 – 710 of the process 304 A may be performed by various methods which may be known in the art.
- FIG. 8 shows a logic flow diagram that illustrates an exemplary process 304 B for determining which elements are selected in accordance with step 304 of FIG. 3 .
- process 304 B is executed in conjunction with process 304 A, although process 304 B may be independently executed for determining which elements are selected, in some embodiments of the present invention.
- Process 304 B starts with step 802 in which the ESM 204 rejects every element in a document with a bounding box that is entirely outside of the element selection perimeter.
- the pentagon 1112 has a bounding box 1113 that is entirely outside of the element selection perimeter 1102 , thus, the shape 1112 would be rejected in step 802 .
- the bounding box of the elements that are referred to with regard to step 802 are axis aligned and tightly bounded, which are characteristics that were described in further detail above for FIG. 7 .
- the amount and complexity of computations is reduced and the speed of the element selection process is increased as a result of the element rejections in step 802 , which are conducted before the main element selection computations.
- the computations for the element rejections made in step 802 may be somewhat more complex than the element rejections described above in step 708 ( FIG. 7 ), since the element selection perimeter is considered directly instead of by its bounding box. However the computations for these preliminary rejections are still faster and less complex than the computations for the main element selections without regard for bounding boxes.
- the ESM 204 selects every element with a bounding box that is entirely inside of the element selection perimeter in step 804 .
- the star 1106 has a bounding box 1107 that is entirely inside of the element selection perimeter 1102 , therefore, the star 1106 would be selected in step 804 .
- the element selection made by the ESM 204 in step 804 are also made preliminary to the main element selection computations. As discussed above, the computations required to determine the position of an element based on its bounding box are less complex than the main element selection computations which consider the position of elements directly, although they may be more complex and slower than computations that use the bounding box of the element selection perimeter as well.
- step 804 The elements that are selected in step 804 are typically positioned entirely inside the element selection perimeter inherently, since the bounding boxes of the elements are entirely inside of the element selection perimeter. Therefore, elements that would be selected by the main element selection computations are selected in step 804 using faster and less complex computations, thereby eliminating the need to consider the elements subsequently during the main element selection computations.
- step 804 the process 304 B proceeds to decision step 806 in which the ESM 204 determines whether there are any elements that are both unrejected and unselected remaining in the document with a bounding box that is at least partially contained within the element selection perimeter. If the ESM 204 determines that no such elements in the document meet this criteria, the process 304 B proceeds along the “no” branch and terminates with the element selection process being complete, since there are no elements remaining in positions to be considered for selection with respect to the element selection perimeter.
- the process 304 B proceeds along the “yes” branch and terminates by proceeding to step 902 , which will be discussed subsequently with respect to FIG. 9 .
- the steps 802 – 806 of the process 304 B may be performed by various methods which may be known in the art.
- FIG. 9 shows a logic flow diagram that illustrates an exemplary process 304 C for determining which elements are selected in accordance with step 304 of FIG. 3 .
- process 304 C is executed in conjunction with process 304 A and/or process 304 B, although process 304 C may be independently executed for determining which elements are selected, in some embodiments of the present invention.
- Process 304 C begins with decision step 902 in which the ESM 204 determines the selection mode. This step is the same or substantially similar to step 710 described above with respect to FIG. 7 .
- the selection mode can preferably be full containment or partial containment and can be based one or more factors, such as a user's setting preference.
- step 904 the ESM 204 selects every element that is fully contained within the element selection perimeter. Referring briefly to FIG. 11 for exemplary purposes, the star 1106 is fully contained within the element selection perimeter 1102 . Note that in step 904 , the elements and the element selection perimeter are directly considered without regard for bounding boxes. Thus, selections made in this step use more complex and slower computations than those used in the selections and rejections described above for other steps, such as step 708 ( FIG. 7 ) or step 804 ( FIG. 8 ).
- step 906 the ESM 204 selects every element that is at least partially contained within the element selection perimeter. Briefly referring again to FIG. 11 for exemplary purposes, the arrow 1114 is at least partially contained within the element selection perimeter 1102 . Similar to step 904 , direct consideration of the elements and the element selection perimeter is made in step 906 using more complex and slower computations than those used in the selections and rejections described above with respect to previous steps in FIGS. 7 and 8 . Following step 904 or step 906 , the process 304 C terminates with the element selections completed. At this point, the user may edit the selected elements as needed.
- the selections made in steps 904 and 906 are exemplary of selections that are made using main element selection computations, since the selections directly consider the positions of the elements with respect to the element selection perimeter without regard to bounding boxes.
- the main element selection computations are typically more complex and slower than element selection computations that involve bounding boxes around the elements or around the elements and the element selection perimeter.
- the steps 902 – 906 of the process 304 C may be performed by various methods which may be known in the art. However, an exemplary preferred process for conducting the main element selection computations in steps 904 and 906 will be discussed below.
- the processes 304 A, 304 B, and 304 C are executed in conjunction on a per document basis, all elements remaining for selection consideration in the document can be processed during each step of the processes 304 A, 304 B, and 304 C—for simplicity, the execution of the processes 304 A, 304 B, and 304 C was described above on this basis.
- the processes 304 A, 304 B, and 304 C are executed in conjunction on a per element basis, each element can be processed individually through all of the steps of the processes 304 A, 304 B, and 304 C—thus, the letter phrase 1104 (see for example, FIG. 11 ) can be processed through all of the steps of the processes 304 A, 304 B, and 304 C, as applicable, before another element of the document 1100 is processed through the steps.
- FIG. 10A a logic flow diagram is shown that illustrates an exemplary process 1000 for determining the containment status of an element with respect to an element selection perimeter in accordance with step 904 or step 906 of FIG. 9 .
- the process 1000 begins with decision step 1002 , in which the ESM 204 determines if an element intersects the element selection perimeter at any point.
- decision step 1002 the ESM 204 determines if an element intersects the element selection perimeter at any point.
- the number phrase 1110 and the arrow 1114 each intersect the element selection perimeter 1102 at some point on it.
- This step 1002 involves complex computations which may be known in the art. An exemplary process for making the determination of step 1002 will be described in more detail below.
- step 1002 If, in step 1002 , it is determined that an element intersects a point on the element selection perimeter, the process 1002 proceeds along the “yes” branch to a determination that the element is partially contained. The rationale for this determination is that the element must be at least partially contained within the element selection perimeter since it intersects the element selection perimeter at some point. However, if it is determined in step 1002 that the element does not intersect the element selection perimeter, the process 1000 proceeds along the “no” branch to decision step 1004 .
- step 1004 the ESM 204 determines if an element is entirely outside of the element selection perimeter. Referring again to FIG. 11 for exemplary purposes, the pentagon 1112 and the triangle 1116 are each entirely outside of the element selection perimeter 1102 .
- This step 1004 also involves complex computations which may be known in the art. Furthermore, an exemplary process for making the determination of step 1004 will be described in more detail below.
- step 1004 proceeds along the “yes” branch to a determination that the element is not contained within the element selection perimeter. This determination is based on the cumulative reasoning that the element must be outside of the element selection perimeter if it does not intersect the element selection perimeter and is also entirely outside of the element selection perimeter. If it is instead determined in step 1004 that the element is not fully outside of the element selection perimeter, the process 1000 proceeds along the “no” branch to a determination that the element is fully contained within the element selection perimeter. This determination is based on the cumulative reasoning that the element must be completely inside of the element selection perimeter if it does not intersect the element selection perimeter and it is not entirely outside of the element selection perimeter.
- the steps 1002 , 1004 of the process 1000 can be repeated for each element that is considered for selection.
- the steps of the process 1000 may be repeated during the execution of step 904 or step 906 ( FIG. 9 ) for each element that is unrejected and unselected.
- Other processes may be known in the art for conducting main element selection computations, and their use is within the scope of the present invention.
- FIG. 10B shows a logic flow diagram that illustrates an exemplary process 1002 for determining if an element intersects the element selection perimeter in accordance with step 1002 of FIG. 10A .
- the process 1002 starts with step 1022 in which the ESM 204 divides the element into discrete curves. Typically, any element in a document can be defined by a combination of discrete open or closed curves.
- the process 1002 proceeds from step 1022 to decision step 1024 in which the ESM 204 determines if any discrete curve of the element intersects the element selection perimeter.
- an element selection perimeter can be defined as a polygon, which might be self-intersecting.
- the ESM 204 determines if any of the discrete curves that define the element intersects the polygon that defines the element selection perimeter.
- step 1024 If it is determined in step 1024 that any discrete curve of the element intersects the element selection perimeter, the process 1002 proceeds along the “yes” branch to a determination that the element is partially contained within the element selection perimeter. The reasoning for this determination was discussed above with respect to FIG. 10A . However, if it is determined that no discrete curve of the element intersects the element selection perimeter, the process 1002 proceeds along the “no” branch to proceed to step 1004 of the process 1000 ( FIG. 10A ) to further determine the element section.
- the steps 1022 , 1024 of the process 1002 may be performed by various methods which may be known in the art.
- FIG. 10C shows a logic flow diagram that illustrates an exemplary process 1004 for determining if an element is entirely outside of the element selection perimeter, in accordance with step 1004 of FIG. 10A .
- the process 1004 starts with step 1042 in which the ESM 204 determines if any discrete curve of the element is entirely outside of the element selection perimeter.
- the ESM 204 has previously divided the element into discrete curves, for example in step 1022 of the process 1002 .
- the process 1004 proceeds from step 1042 to determination step 1044 , in which the ESM 204 determines if every discrete curve of the element is outside of the element selection perimeter.
- step 1044 determines whether every discrete curve of the element is outside of the element selection perimeter. If it is determined in step 1044 that every discrete curve of the element is outside of the element selection perimeter, the process 1004 proceeds along the “yes” branch to a determination that the element is not contained within the element selection perimeter. However, if it is determined that every discrete curve of the element is not outside of the element selection perimeter, the process 1004 proceeds along the “no” branch to a determination that the element is not contained within the element selection perimeter. The reasoning for these determinations was discussed above with respect to FIG. 10A . The steps 1042 , 1044 of the process 1004 may be performed by various methods which may be known in the art.
- FIG. 11 a diagram is shown that illustrates an exemplary document 1100 with elements that are enclosed in an element selection perimeter according to an exemplary embodiment of the present invention.
- the exemplary document 1100 includes an element selection perimeter 1102 that has been drawn around several elements of the document 1100 .
- the element selection perimeter 1102 can be created by various methods, such as by a user's inputs using an element selection tool.
- the document 1100 includes various elements.
- the document 1100 includes a letter phrase 1104 and a number phrase 1110 .
- the document 1100 includes a star 1106 , a pentagon 1112 , and an arrow 1114 .
- the document 1100 also includes various other elements. These elements are basic examples of the numerous types, styles, and shapes of elements that may be included in a typical document 1100 .
- a typical document 1100 may be created by one of many various types of document programs 38 .
- a document 1100 may be created by a computer-assisted drawing (CAD) program, a word-processing program, or a spreadsheet program.
- CAD computer-assisted drawing
- FIG. 12 shows a diagram that illustrates an exemplary section 1200 of the element selection perimeter 1100 illustrated in FIG. 11 that includes vertices and an exemplary vertex contribution area.
- the exemplary section 1200 includes several sequential vertices 1201 – 1205 .
- the element selection perimeter can be defined by the vertices 1201 – 1205 , which are produced when the element selection perimeter is created.
- the element selection perimeter 1100 can be further defined by connecting the vertices in sequence by line segments. In that regard, the vertices 1201 – 1205 of the exemplary section are connected in sequences by line segments 1207 – 1210 .
- the vertices of the element selection perimeter can be used to define a vertex area contribution. This process was discussed above, for example with respect to process 404 of FIG. 5 .
- a vertex area contribution 1206 can be defined using three sequential vertices 1202 – 1204 of the exemplary element selection perimeter section 1200 . As shown in FIG. 12 , the vertex area contribution 1206 can be defined by connecting the three sequential vertices 1202 – 1204 with three line segments 1208 , 1209 , 1211 .
- the second vertex 1203 in the sequence of vertices 1202 – 1204 defining the vertex area contribution 1206 is typically designated as the corresponding vertex 1203 of the vertex area contribution 1206 , as was discussed above for example with respect to FIG. 4A .
- the ESM 204 can redefine the element selection perimeter without a corresponding vertex.
- the vertex area contribution 1206 is determined to meet the condition (e.g., less than A min )
- the ESM 204 can redefine the element selection perimeter without the corresponding vertex 1203 .
- the element selection perimeter would be defined by the line segment 1211 between the two remaining vertices 1202 , 1204 .
- elements that are marked with an “X” are rejected from consideration for selection. Further, elements that are marked with a “check-mark” have been selected. Elements that are marked with two “check-marks” were selected during a previous process. Finally, elements that have been rejected or that were not selected are omitted from the subsequent figure to facilitate the description of the examples.
- FIG. 13A illustrates an exemplary document 1300 A with elements that have been processed for full containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 7 .
- the ESM 204 rejects every element with a bounding box that is entirely outside of the element selection perimeter bounding box 1103 and then rejects every element with a bounding box that is not fully inside of the element selection perimeter bounding box 1103 .
- the oval 1120 is rejected in the document 1300 A, for example, in accordance with step 708 because its bounding box 1121 is entirely outside of the element selection perimeter bounding box 1103 .
- the arrow 1114 is rejected in the document 1300 A in accordance with step 712 because its bounding box 1115 is not fully inside of the element selection perimeter bounding box 1103 .
- other elements are rejected according to the process 304 A with a selection mode of full containment.
- FIG. 13B illustrates an exemplary document 1300 B with elements that have been processed for partial containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 7 .
- the ESM 204 rejects every element with a bounding box that is entirely outside of the element selection perimeter bounding box 1103 . Therefore, the oval 1120 is rejected, for example, in accordance with step 708 because its bounding box 1121 is entirely outside of the element selection perimeter bounding box 1103 .
- other elements are rejected according to the process 304 A with a selection mode of partial containment.
- FIG. 14A illustrates an exemplary document 1400 A with elements that have been processed for full containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 8 .
- FIG. 14A is a continued example of the processing of the document 1300 A of FIG. 13A , and elements that were rejected in FIG. 13A are not shown in FIG. 14A to facilitate the example.
- the ESM 204 rejects every element with a bounding box that is entirely outside of the element selection perimeter 1102 and selects every element with a bounding box that is entirely inside of the element selection perimeter 1102 .
- the pentagon 1112 is rejected in the document 1400 A, for example, in accordance with step 802 because its bounding box 1113 is entirely outside of the element selection perimeter 1102 .
- the letter phrase 1105 is selected in the document 1400 A, for example, in accordance with step 804 because its bounding box 1105 is entirely inside of the element selection perimeter 1102 .
- other elements are rejected and selected according to the process 304 B.
- FIG. 14B illustrates an exemplary document 1400 B with elements that have been processed for partial containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 8 .
- FIG. 14B is a continued example of the processing of the document 1300 A of FIG. 13B .
- the ESM 204 rejects every element with a bounding box that is entirely outside of the element selection perimeter 1102 and selects every element with a bounding box that is entirely inside of the element selection perimeter 1102 . Therefore, the pentagon 1112 is rejected in the document 1400 B, for example, in accordance with step 802 because its bounding box 1113 is entirely outside of the element selection perimeter 1102 .
- the letter phrase 1105 is selected in the document 1400 B, for example, in accordance with step 804 because its bounding box 1105 is entirely inside of the element selection perimeter 1102 . As shown in FIG. 14B , other elements are rejected and selected according to the process 304 B.
- FIG. 15A illustrates an exemplary document 1500 A with elements that have been processed for full containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 9 .
- FIG. 15A is a continued example of the processing of the document 1400 A of FIG. 14A .
- the ESM 204 selects every element that is fully contained within the element selection perimeter. Considering the rejections and selections of elements made during the previous processing of the document 1500 A, there are no elements to be selected, and the letter phrase 1104 and the star 1106 remain selected from the process 304 B.
- FIG. 15B illustrates an exemplary document 1500 B with elements that have been processed for partial containment within the element selection perimeter in accordance with the logic flow diagram illustrated in FIG. 9 .
- FIG. 15B is a continued example of the processing of the document 1400 B of FIG. 14B .
- the ESM 204 selects every element that is at least partially contained within the element selection perimeter.
- the letter phrase 1104 and the star 1106 remain selected from the process 304 B.
- the double arrow 1108 , the number phrase 1110 , and the arrow 1114 are selected since these elements are at least partially contained within the element selection perimeter 1102 .
- the present invention enables users to select elements in a GUI quickly, with minimal processor computations, using an element selection perimeter or “lasso.”
- the present invention facilitates simple, fast element selection computations by minimizing the number of points (or vertices) defining an element selection perimeter.
- the present invention also performs preliminary selections and rejections of elements that are located inside or outside of an element selection perimeter, respectively, thereby reducing the amount of element selection computations needed to determine element selections.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
Abstract
Description
Claims (44)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/337,654 US7218330B1 (en) | 2003-01-07 | 2003-01-07 | Method and system for selecting elements in a graphical user interface |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/337,654 US7218330B1 (en) | 2003-01-07 | 2003-01-07 | Method and system for selecting elements in a graphical user interface |
Publications (1)
Publication Number | Publication Date |
---|---|
US7218330B1 true US7218330B1 (en) | 2007-05-15 |
Family
ID=38015765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/337,654 Expired - Fee Related US7218330B1 (en) | 2003-01-07 | 2003-01-07 | Method and system for selecting elements in a graphical user interface |
Country Status (1)
Country | Link |
---|---|
US (1) | US7218330B1 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209353A1 (en) * | 2007-02-23 | 2008-08-28 | Siemens Aktiengesellschaft | Graphical user interface and method thereof |
US20100064251A1 (en) * | 2008-09-05 | 2010-03-11 | International Business Machines Corporation | Toggling window display state by screen in a multi-screened desktop environment |
US20100095248A1 (en) * | 2008-10-14 | 2010-04-15 | International Business Machines Corporation | Desktop icon management and grouping using desktop containers |
US20100229129A1 (en) * | 2009-03-04 | 2010-09-09 | Microsoft Corporation | Creating organizational containers on a graphical user interface |
US7853887B2 (en) | 2007-06-26 | 2010-12-14 | Adobe Systems Incorporated | Detection and preview of graphical elements within a graphic |
US20110063327A1 (en) * | 2009-09-11 | 2011-03-17 | Hoya Corporation | Display and imager displaying and magnifying images on their screen |
US20110087999A1 (en) * | 2009-09-30 | 2011-04-14 | International Business Machines Corporation | Set definition in data processing systems |
US20120089947A1 (en) * | 2010-10-07 | 2012-04-12 | Kunho Lee | Electronic device and control method thereof |
US20120096354A1 (en) * | 2010-10-14 | 2012-04-19 | Park Seungyong | Mobile terminal and control method thereof |
US20120110519A1 (en) * | 2010-11-03 | 2012-05-03 | Sap Ag | Graphical manipulation of data objects |
CN110599391A (en) * | 2019-06-17 | 2019-12-20 | 搜游网络科技(北京)有限公司 | Graph drawing method and device, computer readable medium and equipment |
US10713304B2 (en) * | 2016-01-26 | 2020-07-14 | International Business Machines Corporation | Entity arrangement by shape input |
US20220398790A1 (en) * | 2021-06-10 | 2022-12-15 | Adobe Inc. | Glyph Selection Tool for Digital Text Content |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307454A (en) * | 1992-04-28 | 1994-04-26 | Samsung Electronics Co., Ltd. | Apparatus for extracting local image from original image |
US5784061A (en) * | 1996-06-26 | 1998-07-21 | Xerox Corporation | Method and apparatus for collapsing and expanding selected regions on a work space of a computer controlled display system |
US5805170A (en) * | 1996-05-07 | 1998-09-08 | Microsoft Corporation | Systems and methods for wrapping a closed polygon around an object |
US6100902A (en) * | 1996-10-31 | 2000-08-08 | Sony Corporation | Image data approximation considering normal vectors |
US6480207B1 (en) * | 1999-08-30 | 2002-11-12 | International Business Machines Corporation | Method, apparatus and computer program product for implementing graphical user interface (GUI) window control |
US6483509B1 (en) * | 1999-04-09 | 2002-11-19 | International Business Machines Corp. | Curve contour smoothing |
US20030001835A1 (en) * | 1996-04-24 | 2003-01-02 | Jerry Dimsdale | Integrated system for quickly and accurately imaging and modeling three-dimensional objects |
US20030214536A1 (en) * | 2002-05-14 | 2003-11-20 | Microsoft Corporation | Lasso select |
US6850249B1 (en) * | 1998-04-03 | 2005-02-01 | Da Vinci Systems, Inc. | Automatic region of interest tracking for a color correction system |
US20050162428A1 (en) * | 2004-01-26 | 2005-07-28 | Beat Stamm | Adaptively filtering outlines of typographic characters to simplify representative control data |
US7006085B1 (en) * | 2000-10-30 | 2006-02-28 | Magic Earth, Inc. | System and method for analyzing and imaging three-dimensional volume data sets |
US7042463B2 (en) * | 1999-12-17 | 2006-05-09 | Namco Ltd. | Image generating system and program |
-
2003
- 2003-01-07 US US10/337,654 patent/US7218330B1/en not_active Expired - Fee Related
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307454A (en) * | 1992-04-28 | 1994-04-26 | Samsung Electronics Co., Ltd. | Apparatus for extracting local image from original image |
US20030001835A1 (en) * | 1996-04-24 | 2003-01-02 | Jerry Dimsdale | Integrated system for quickly and accurately imaging and modeling three-dimensional objects |
US5805170A (en) * | 1996-05-07 | 1998-09-08 | Microsoft Corporation | Systems and methods for wrapping a closed polygon around an object |
US5784061A (en) * | 1996-06-26 | 1998-07-21 | Xerox Corporation | Method and apparatus for collapsing and expanding selected regions on a work space of a computer controlled display system |
US6100902A (en) * | 1996-10-31 | 2000-08-08 | Sony Corporation | Image data approximation considering normal vectors |
US6850249B1 (en) * | 1998-04-03 | 2005-02-01 | Da Vinci Systems, Inc. | Automatic region of interest tracking for a color correction system |
US6483509B1 (en) * | 1999-04-09 | 2002-11-19 | International Business Machines Corp. | Curve contour smoothing |
US6480207B1 (en) * | 1999-08-30 | 2002-11-12 | International Business Machines Corporation | Method, apparatus and computer program product for implementing graphical user interface (GUI) window control |
US7042463B2 (en) * | 1999-12-17 | 2006-05-09 | Namco Ltd. | Image generating system and program |
US7006085B1 (en) * | 2000-10-30 | 2006-02-28 | Magic Earth, Inc. | System and method for analyzing and imaging three-dimensional volume data sets |
US20030214536A1 (en) * | 2002-05-14 | 2003-11-20 | Microsoft Corporation | Lasso select |
US20050162428A1 (en) * | 2004-01-26 | 2005-07-28 | Beat Stamm | Adaptively filtering outlines of typographic characters to simplify representative control data |
Non-Patent Citations (1)
Title |
---|
"Pen-based interaction techniques for organizing material on an electronic whiteboard", Moran et al., ACM 1997, p. 45-54. * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080209353A1 (en) * | 2007-02-23 | 2008-08-28 | Siemens Aktiengesellschaft | Graphical user interface and method thereof |
US7853887B2 (en) | 2007-06-26 | 2010-12-14 | Adobe Systems Incorporated | Detection and preview of graphical elements within a graphic |
US20100064251A1 (en) * | 2008-09-05 | 2010-03-11 | International Business Machines Corporation | Toggling window display state by screen in a multi-screened desktop environment |
US9760234B2 (en) * | 2008-10-14 | 2017-09-12 | International Business Machines Corporation | Desktop icon management and grouping using desktop containers |
US10606434B2 (en) | 2008-10-14 | 2020-03-31 | International Business Machines Corporation | Desktop icon management and grouping using desktop containers |
US20100095248A1 (en) * | 2008-10-14 | 2010-04-15 | International Business Machines Corporation | Desktop icon management and grouping using desktop containers |
US20100229129A1 (en) * | 2009-03-04 | 2010-09-09 | Microsoft Corporation | Creating organizational containers on a graphical user interface |
US20110063327A1 (en) * | 2009-09-11 | 2011-03-17 | Hoya Corporation | Display and imager displaying and magnifying images on their screen |
US20110087999A1 (en) * | 2009-09-30 | 2011-04-14 | International Business Machines Corporation | Set definition in data processing systems |
US9170713B2 (en) * | 2010-10-07 | 2015-10-27 | Lg Electronics Inc. | Electronic device and control method thereof |
US20120089947A1 (en) * | 2010-10-07 | 2012-04-12 | Kunho Lee | Electronic device and control method thereof |
US20120096354A1 (en) * | 2010-10-14 | 2012-04-19 | Park Seungyong | Mobile terminal and control method thereof |
US20120110519A1 (en) * | 2010-11-03 | 2012-05-03 | Sap Ag | Graphical manipulation of data objects |
US9323807B2 (en) * | 2010-11-03 | 2016-04-26 | Sap Se | Graphical manipulation of data objects |
US10713304B2 (en) * | 2016-01-26 | 2020-07-14 | International Business Machines Corporation | Entity arrangement by shape input |
CN110599391A (en) * | 2019-06-17 | 2019-12-20 | 搜游网络科技(北京)有限公司 | Graph drawing method and device, computer readable medium and equipment |
US20220398790A1 (en) * | 2021-06-10 | 2022-12-15 | Adobe Inc. | Glyph Selection Tool for Digital Text Content |
US11631206B2 (en) * | 2021-06-10 | 2023-04-18 | Adobe Inc. | Glyph selection tool for digital text content |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7218330B1 (en) | Method and system for selecting elements in a graphical user interface | |
US7830377B1 (en) | Systems and methods for using a single tool for the creation and modification of solids and surfaces | |
US9519677B2 (en) | Data graphing methods, articles of manufacture, and computing devices | |
US5808611A (en) | Positioning for multiple icons in an object-oriented interface | |
Alves et al. | An interactive reference point approach for multiobjective mixed-integer programming using branch-and-bound | |
US8823738B1 (en) | Merging electronic diagrams | |
US7580909B2 (en) | Visual representation tool for structured arguments | |
JP2022548160A (en) | Preparing training datasets using machine learning algorithms | |
US20160364890A1 (en) | Method and apparatus for providing a presumptive drafting solution | |
US6867771B2 (en) | Controlled face dragging in solid models | |
US6438269B1 (en) | Method for multi-step filtering spatious objects by utilizing MMP filter in spatial database system | |
CN114546365B (en) | Flow visualization modeling method, server, computer system and medium | |
US20070294062A1 (en) | Module of Architecture Engineering Modeling and System and Method Thereof | |
Draper et al. | A Gestural Interface to Free-Form Deformation. | |
Lagae et al. | Geometry synthesis by example | |
US9424234B2 (en) | Methods and apparatus for automatically creating variations of original content based on searching for alternative content objects based on characteristics of the original content | |
US11429759B2 (en) | Method for selecting multiple edges and faces in modeled object | |
JP2001034653A (en) | Feature-based macro language for defining customized analysis functions and customized figure functions | |
US11308693B2 (en) | Smart edge loop selection | |
JP7519927B2 (en) | Common infrastructure system for achieving DX | |
Goel et al. | Computer vision aided pottery classification and reconstruction | |
US6650328B1 (en) | System and method for placing splines using refinement and obstacle avoidance techniques | |
WO2024155442A1 (en) | Method to describe a screen capture using ai for the visually impaired | |
Kumpf et al. | Visual Analysis of Multi-Parameter Distributions across Ensembles | |
Zheng et al. | On the structure of visual mining system based on OLAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WINKENBACH, GEORGES A.;HEATH, IAIN CLIFFORD;LEGENDRE, SCOTT M.;REEL/FRAME:013641/0598;SIGNING DATES FROM 20030103 TO 20030106 |
|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF THE ASSIGNEE, FILED ON 01/07/2003 RECORDED ON REEL 013641, FRAME 0598;ASSIGNORS:WINKENBACH, GEORGES A.;HEATH, IAIN CLIFFORD;LEGENDRE, SCOTT M.;REEL/FRAME:013766/0170;SIGNING DATES FROM 20030103 TO 20030106 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477 Effective date: 20141014 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20190515 |