Abstract:
A system and method in which derived graphic elements are generated automatically upon changes made to the defining graphic elements or generation parameters. A user need only modify the defining element(s) and the system will eliminate any originally derived elements and substitute therefor any newly created derived elements. The system is arranged to inhibit the generation of the derived elements until all of the changes associated with all of the defining element(s) have been made. The regeneration of the derived elements is performed once even if multiple defining elements have been modified.

Description:
TECHNICAL FIELD OF THE INVENTION 
     This invention relates to a graphics system and more specifically to a system and method for blending shapes, colors and other graphical attributes between various paths. 
     BACKGROUND OF THE INVENTION 
     There exist graphics presentation systems which have the capability of blending colors to arbitrary shades between two end-point colors and for creating intermediate shapes between two end shapes. This has several useful purposes, one of which, for example, is that graphic artists can use the systems to make a smooth graduation between two colors or shapes for highlights or shading or for whatever purpose they might have in mind. The drawback to most of these packages is their inflexibility. 
     In order to create a blend between two shapes, (or a graduation in color) a user must pick the two end shapes that are wanted, select the derived number of intermediate steps between the two end shapes and then the program would generate the intermediate shapes. In the prior art, however, to make a change, the user had to go back and manually purge the intermediate shapes, then make the changes that are desired and then manually call for the intermediate shapes to be regenerated. Thus, experimental changes to the intermediate shapes (or colors, or other attributes such as line width or angle of a graduated fill) are cumbersome and inconvenient, especially if a user desires to make several experimental changes. 
     Systems that perform this type of shading and blending are, for example, Aldus Freehand 2.0, which was released to the public in 1988. That program allowed a user to draw two shapes and then designate a number of computer-generated intermediate shapes between them. However, if the user later decided that he/she is not satisfied with the intermediate shapes because the color (or shape) of one of the source shapes was not what was wanted, the user would have to pick out all of the intermediate shapes, manually remove them, alter one or both of the source shapes (or their color), go back and select the two source shapes, and then respecify how many intermediate steps he/she wanted to use to blend the source colors and shapes. This same cumbersome process is required for any change that the user might want to make to one of the source paths. For instance, each time the user wanted to change the shape or color of one or both of the source paths, or wanted to change the number of intermediate steps generated to effect a smooth blending of shapes, the user must repeat the same cumbersome process. 
     Thus, a need exists in the art for a system in which a user need not manually remove all of the intermediate images when it is desired to change the blending (or shapes) between the two end shapes. 
     A further need exists in the art for a graphic presentation system which allows a user to simply change one or more of the end shapes (or colors) and then automatically readjust all of the computer-generated shapes (or colors) without user involvement and without requiring the user to first remove the original computer-generated shapes (or colors). 
     SUMMARY OF THE INVENTION 
     These problems have been solved by a system arrangement which allows one or more of the defining element(s) (source paths) of a blend construct to be modified and the derived elements to be discarded and recreated automatically once the modified defining element(s) are entered into the system. We have streamlined the process so that when the user first creates a blend construct, there is maintained an internal reference between all of the derived elements and the specified defining element(s). Thus, the user can go back into the system and change the shape, color, line size or other attributes of one or more of the defining element(s) or the user can respecify the number of intermediate steps. After each user entered change, the system will discard the old derived elements and generate a new series of derived elements. Using this system, the time necessary to make experimental changes is greatly reduced, allowing the user to be more efficient and creative. 
     In addition to maintaining a list of derived elements, the system is designed so that changes can be made concurrently to any number of the defining element(s). When defining element(s) are altered, the system will regenerate the derived elements one time, as opposed to regenerating once for every defining element that was modified. An example of this situation is as follows: 
     If a user desires to change the shape, color or other graphical attributes of multiple defining elements at the same time, the system will generate the minimal number of reblends. So rather than discarding and regenerating derived elements after each defining element changes, the system does it once, incorporating the changes made to any of the defining elements. 
     For our purposes, a shape is a mathematical representation of a geometric construct, which can be open or closed, and which is composed of curves or straight lines. An element is a shape together with its graphical attributes, such as color, line width, fill properties and line properties. A blend construct consists of defining elements and derived elements and other information such as the number of steps used to calculate the derived elements. A defining element is an element that can be used to calculate the essential information required to construct other elements. A derived element is an element which is calculated from the defining element(s) via a preset mathematical relationship. The phrase derived elements can refer to one or more derived elements. 
     There are two main structures used to maintain a dynamic link between the defining element(s) and derived elements. One is known as a &#34;blend construct.&#34; Whenever the user requests a blending of defining element(s), a blend construct is created. The blend construct contains an internal reference to the defining element(s), the number of derived elements in the blend, and other internal information necessary to calculate the derived elements. In addition, each defining element is given an internal reference to the blend construct. 
     The other structure is a &#34;cleanup list.&#34; A cleanup list is a list of all blend constructs which need to regenerate their derived elements. 
     Whenever a defining element is edited by the user, the defining element notifies each of its blend constructs that it has changed. Each blend construct then adds itself to the cleanup list. After all changes have been entered, a message is sent to all blend constructs in the cleanup list. In response to this message, the effected components of the blend constructs are discarded and the system regenerates a new series of derived elements. 
     The cleanup list avoids redundant regeneration if a user modifies multiple defining elements in the same operation. Regeneration can be a time-consuming operation and is efficiently minimalized by this system. Although the system could regenerate derived elements immediately after a defining element is changed, doing so would cause multiple regenerations when only one is necessary (i.e., each modified defining element informs the blend construct it was changed). The cleanup list system merely inserts all effected blend constructs into the list when it receives a &#34;defining element changed&#34; message. A blend construct is given only one entry into the cleanup list, regardless of how many times it receives a &#34;defining element changed&#34; message. 
     Accordingly, it is one technical advantage of our invention that a graphics system can operate to regenerate multiple derived elements between multiple defining elements upon a change to one or more of those defining elements. 
     A further technical advantage of our invention is that the derived elements associated with a blend construct are stored in conjunction with that blend construct such that when changes are made to the defining elements, or to the blend parameters, the originally created derived elements are automatically changed to the new derived elements. 
     A still further technical advantage of our invention is that the derived elements between multiple defining elements in a graphics system are stored in an object file for later creating the derived elements after all changes have been made to all pertinent defining elements or blend parameters pertaining to the new derived elements. 
     It is a still further technical advantage of our invention that the derived elements in a blend construct will not be created until all of the changes desired to be made to that blend construct have been specified by a system user. 
     It is a still further technical advantage that our invention uses the saved derived elements to draw and print thereby saving calculation overhead during those drawing or printing operations. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which: 
     FIG. 1 shows a prior art graphics system; 
     FIG. 2 illustrates the user about to create a blend in the prior art system; 
     FIG. 3 shows the blend created by the user in the prior art and preparation for removal of the derived elements; 
     FIG. 4 shows the user modifying a defining element in the prior art system; 
     FIG. 5 shows the result of the user creating a new set of derived elements in the prior art; 
     FIG. 6 illustrates creation of the blend construct in the present invention; 
     FIGS. 7 and 8 illustrate the automatic reblending of derived elements in the present invention; and 
     FIG. 9 is a flow chart showing the recalculation of derived elements in the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Before beginning a discussion of the operation of our system, it might be helpful if a series of steps were illustrated using the prior art graphics editing system. 
     FIG. 1 shows the prior art system which can be the Aldus FreeHand 2.0 system discussed above. Two defining elements, 101 and 102, are drawn, ready to be blended. Defining element 101 contains shape defining points 110-113, while defining element 102 contains shape defining points 114-118. The user selects the &#34;Blend&#34; command box 201 (FIG. 2) from a menu using cursor arrow 103. 
     FIG. 2 illustrates the user about to create a blend in the prior art system. The user has specified the number of intermediate steps derived (20 in this case), and clicks &#34;OK&#34; to create the blend. Note that the &#34;First Blend&#34; box 202, and last blend box 203 control the attributes and position of the blend between defining elements 101 and 102. Note that if &#34;first blend&#34; is negative or if &#34;last blend&#34; is more than 100 percent, then the derived elements would be extrapolated outward from the defining elements. 
     FIG. 3 shows blend 302 created by FIGS. 1 and 2 and the user is about to remove the derived elements using menu 301. If the user decides the shape of one of the defining elements (such as element 101) is not quite right, or perhaps the blend is not quite the color blend desired, the user then must first change the shape of element 101 and then also must regenerate the blend after changing the shape (or color) of that element. To do so, the user must first delete the derived elements by selecting them with cursor 103 and then choosing &#34;Clear&#34; from menu 301. 
     FIG. 4 shows the user, via cursor 103, actually reshaping defining element 101 to the new shape derived by dragging two of the elements&#39; control points 110&#39; and 112&#39; via cursor 301. This generates revised defining element 101A. The user may also change any attribute of the defining element in a similar manner. 
     FIG. 5 shows the new derived elements. This was created by the user after the user had adjusted the defining elements to his/her satisfaction and was manually using the same steps as shown in FIGS. 1 and 2. 
     FIGS. 6, 7 and 8 illustrate the automatic reblending of derived elements in accordance with our invention. 
     FIG. 6 shows the user creating a blend construct. This blend has defining elements 601 and 602. The steps for creating it (as opposed to editing it) are much the same as the prior art and shown in FIGS. 1 and 2. 
     FIG. 7 shows the blend construct created in FIG. 6 and the user modifying one of the defining elements. 
     If the user is dissatisfied with the shape, color, etc. of one (or both) defining elements 601 or 602, he/she can simply select the defining element(s) and make the changes directly as shown in FIG. 7. In this situation control points 701 and 702 are moved as shown. The intermediate shapes (or colors) 801 will be regenerated automatically as shown in FIG. 8. 
     In FIG. 7, the user reshaped defining element 601. It is important to note that he/she did not have to manually delete the derived elements 704, nor did the user have to return to command box 201 (FIG. 2) to create a new blend; the relationship between the defining elements (which can be two or more) is remembered and used to calculate the new derived elements 801. The user did not have to do anything special to cause this to happen. In the prior art, the user had to take several steps after reshaping a defining element in order to bring the derived elements up to date. Those steps were: 1) select and delete the original derived elements; 2) reselect the modified defining elements; and 3) reselect the blend command and respecify the information in command box 201 (FIG. 2). 
     This system and method just discussed is currently operated on the Macintosh line of computers made by Apple Computer running the 6.0 or later version of their system software. The specifications of the Macintosh with version 6.0 operating system are hereby incorporated by reference. Also incorporated by reference is the Aldus Freehand system 2.0 and the Aldus Freehand system 3.0 which are all available from distributors. This setup requires two or more megabytes of RAM and a hard drive. This example is used as an illustration only and it should be understood that this system can run on any type of hardware that is capable of supporting graphics software. Typically, any system with high resolution graphics can be used. Although high resolution graphics capability is not essential for the application of the described invention, it is important if the user needs to visualize the work product. 
     In the prior art system, as discussed above, there are two defining elements. A user selects these two defining elements and specifies the number of steps desired as intermediate steps between the two. The resulting derived elements are treated by the system similarly to the defined elements themselves. 
     In the advanced system, also as discussed above, whenever a user requests a blending of defining elements, a blend construct is created with an internal reference to those defining elements. The blend construct also contains the blend parameters which is the reference to the number of requested intermediate steps, as well as a reference to each derived element generated. 
     The new system and method maintains the derived elements internally and the user cannot access them without breaking the dynamic structure of the blend construct. Whenever a defining element is changed, the system discards the derived elements generated previously, and regenerates new ones based on the new structure of the defining elements. 
     The major problem encountered is in maintaining a communications link between the parts comprising a blend construct. For instance, how does the blend construct find out when the defining elements are changed, etc.? When the blend construct is created, the defining elements are given an internal reference to the blend construct as well as the blend construct being given a reference to the defining elements. Anytime a defining element is changed, for example, if the shape or color is changed, the defining element notifies the appropriate blend construct. Once the blend construct receives a message that one of its defining elements has changed, it is configured to regenerate itself later. As an aid to efficiency, the blend construct does not reblend immediately but adds itself into a cleanup list. After all of the desired changes have been entered, everything in the cleanup list is reblended at one time rather than reblending after each change. 
     The algorithm described in FIG. 9 not only ensures that all derived elements are always regenerated when necessary, but also that they are never regenerated more times than minimally necessary. 
     In box 901, the user specifies the blend construct for the first time. The user then specifies the defining elements and the blend parameters. The blend construct is created, and is entered into the cleanup list. 
     In boxes 902, 903 and 904, the items in the cleanup list will be given the opportunity to regenerate their derived elements, if necessary. Each item in the cleanup list is told to make necessary modifications to itself. The blend construct responds to this by regenerating its derived elements (as calculated from the defining elements and the blend information). Note that &#34;regenerating&#34; means to automatically recalculate the new derived elements, and discard the old derived elements. After completing the regeneration, the blend construct is removed from the cleanup list. As will be seen below, there could be multiple blend constructs in the cleanup list if the user has simultaneously modified the defining elements or blend parameters in multiple blend constructs. 
     In box 905, the user has requested a modification to one or more defining elements or blend parameters. For example, this could be a change in the shape, color, graphical attribute, etc. of the defining element, or in the number of derived elements, etc. in the blend parameters. Also note that it is allowable for the user to simultaneously specify a change to multiple defining elements or blend parameters, in multiple blend constructs (for example, to change the color of several defining elements at the same time). 
     In boxes 906 through 909, the defining elements or blend parameters are modified in accordance with the user request, and the appropriate blend constructs are notified of the changes. In box 906, a single defining element or blend parameter is modified as specified by the user. In box 907, the blend construct associated with that defining element or blend parameter is notified that one of its defining elements or blend parameters has been changed. In box 908, the blend construct is entered into the cleanup list. 
     After all the defining elements and blend parameters specified in this operation have been modified, and all blend constructs associated with them have been entered in the cleanup list, execution jumps back to box 902, where all blend constructs in the cleanup list are told to regenerate their derived elements. 
     Note that while the system is shown as a graphical system for displaying shapes on a screen, the invention could be used for many other systems. For example, it could be an image of an internal organ of an animal with the defined elements being those which may not be &#34;seen&#34; by an image scanner, but rather derived from the defining elements, i.e., the outline of the organ. 
     Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.