GB2218882A - Attribute management - Google Patents
Attribute management Download PDFInfo
- Publication number
- GB2218882A GB2218882A GB8908832A GB8908832A GB2218882A GB 2218882 A GB2218882 A GB 2218882A GB 8908832 A GB8908832 A GB 8908832A GB 8908832 A GB8908832 A GB 8908832A GB 2218882 A GB2218882 A GB 2218882A
- Authority
- GB
- United Kingdom
- Prior art keywords
- attribute
- list
- group
- stack
- attribute value
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/30—Control of display attribute
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
In the prior art (Fig.1), when only one attribute, out of a plurality, has been changed at a node (group) (102) all the default attributes have to be stored for retrieval at reset. This is time wasting in Tree climbing and wasteful of memory. The object of the invention thus is to store only those attributes which have been changed. This involves a hierarchical tree stack structure Fig.2, in which a first stack (201) holds a list of successive change nodes (groups), pointing to respective stacks (202) of attributes which have been changed at the node, each such attribute then pointing to the attribute value stack (203) and to the respective operating routine (204). <IMAGE>
Description
ATTRIBUTE MANAGEMENT METHOD AND APPARATUS BACKGROSMD OF THE INVENTION
1. Field of the invention.
The present invention relates to the field of attribute management in a computer graphics system.
2. Prior Art.
In a computer graphics system, it is known to store graphical database information in a hierarchical tree structure. In such a graphical database, the hierarchical tree structure has a root node and is typically illustrated as having nodes branching downward from the root. In such a structure, some nodes in the tree structure may represent primitives, such as a sphere, a line, etc. Other nodes may represent attributes, such as color, line width, positioning, etc. Still other nodes may represent groups or structures.
Group nodes act as grouping mechanisms for grouping a number of elementary nodes.
Referring to Figure 1, in known graphical database systems a set of default attributes such as color, line width, etc. may be set at the root level 101 of the hierarchical tree. When processing of the tree enters a group, such as the room group 102, the system may save the current set of attributes and process the group. For example, in processing the room group 102, first the color attribute is set to blue at node 103. Then the line width attribute is set to .001 at node 104. Finally objects such as a chair 105 and a table 106 are drawing using the current settings for the color and line width attributes.
After drawing the chair 105 and table 106, the graphics processing system traverses up the tree and processes the sofa 107. The graphics processing system continues to traverse back up the tree. When the graphics processing system exits the room group 102, the attributes of the system are reset back to the stored attributes. Traversing of the tree continues with processing of chair 108 using the default attribute list.
Such graphics systems lead to inefficiencies in having to reset the entire attribute set upon completion of processing of each group . Further, large numbers of attributes in such a system leads to considerable overhead from having to save entire attribute sets each time a new group is entered.
Finally, such a system does not easily lend itself to adding new attributes to the system as a finite set is saved and restored upon entering and exiting each group.
Therefore, as a first object of the present invention, it is desired to develop an attribute management system which requires only attributes which have been changed during processing of a group to be reset to their original values.
Further, as a second object of the present invention, it is desired to develop an attribute management system which does not require storing of the entire attribute set upon processing of each group.
As a third object of the present invention, it is desired to develop an attribute management system which allows attributes to be defined and added by users of the system.
These and other objects of the present invention are described in more detail with reference to the Detailed
Description of the Present Invention and the accompanying drawings.
SUMMARY OF THE INVENTION A method, apparatus and data structure for use with a graphical database is disclosed. The present invention utilizes a new data structure and method for storing information about attributes in a graphical database. The data structure comprises a group unwind stack for storing entries associated with each group encountered when processing the graphical database. The group unwind stack has pointers associated with each group pointing to linked lists of attributes which have changed values when processing the group. The linked lists of attributes have pointers to routines associated with each attribute.
Each attribute has a stack of values. Values are pushed onto the stack each time a group changes an attribute value and values are popped off the stack upon completion of processing the group.
Using the methods and data structure of the present invention, attribute values are only stored when their values are changed by a group. Further, attributes may be added to the attribute set of the present invention by adding an attribute routine and an attribute value stack. The attribute may then be updated by groups and referenced by primitives.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a tree structure diagram illustrating a typical graphical database as may be utilized by the present invention.
Figure 2 is a block diagram illustrating a data structure of the present invention.
DETATLED DESCRTPTION OF THE PRESENT MENTION An attribute management method and apparatus is described. In the following description, numerous specific details are set forth such as types of attributes, etc., in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to unnecessarily obscure the present invention.
The present invention describes a method, apparatus and accompanying data structure for managing attributes in a computer graphics system. The present invention utilizes a data structure comprising a hierarchical tree of graphical database information. Although the present invention utilizes such a hierarchical database, it will be obvious to one of ordinary skill in the art that the methods of the present invention may be applicable to other database systems.
The hierarchical database of the present invention comprises three types of data elements. First, primitives may be stored such as definitions for spheres, lines, etc.
Second, attributes may be stored such as color, line width, etc. Third, groups or structures may be stored. Groups in the present invention act to group attributes and primitives.
As discussed in conjunction with the Background of the
Invention and with Figure 1, the graphical database (GDB) is traversed. For example, starting at the root node 101 a set of default attributes may be assigned. Traversing down the database the group room 202 is processed. Attributes assigned during processing of the group are to be utilized in processing of the group. If a particular attribute is not assigned during processing of the group but is required to process a primitive in that group, its default value or a value assigned in processing a higher level group is used.
After completing traversing of all nodes in a group, the attributes are returned to the values set prior to entering the group.
To accomplish objects of the present invention, a method of storing and restoring only attributes which are changed during processing of the group is disclosed.
Figure 2 illustrates data structures are shown in block diagram form as may be utilized by the present invention.
The present invention comprises a group unwind stack 201, a plurality of attribute unwind lists 202, a plurality of attribute value stacks such as exemplified by attribute value stack 203 and a current group level indicator 204.
There is a one-to-many relationship between the group unwind stack 201 and the attribute unwind lists 202. There is one attribute value stack per attribute in the system. In the present invention, separate routines 204 are associated with each attribute value stack 203. The routines are utilized for pushing values onto the associated attribute value stack 203, popping values off of the attribute value stack 203, getting the value from the top of the stack and setting the value on the top of the stack. The group unwind stack 201, each of the attribute unwind lists 202 and each of the attribute value stacks 203 comprise linked lists of entries. The linked lists may be stored in a main memory or on another storage device such as disk.
The preferred embodiment of the present invention utilizes data stacks for both the group unwind stack 201 and the attribute value stack 203. In general a stack is a subclass of a linear list of data elements in which additions and deletions from the linear list are only permitted to occur at the beginning or top of the list.
The addition of an element onto the list is commonly referred to as "pushing" an element onto the list and the deletion of an element from the list is commonly referred to as "popping" an element off the list. Typically, the top element of the stack is the only element which may be accessed for purposes of reading the value of the element and for updating the value of the element. The use of stacks in processing information in computer systems is well known in the art.
Further description of stacks may be found with reference to An Introduction to Data structures with
Applications, J.P. Tremblay and P.G. Sorenson published by
McGraw-Hill, Inc. 1976, pages 167-210.
Although the present invention is described with specific reference to the preferred embodiment and use of data stacks as a particular data structure, it will be obvious to one of ordinary skill in the art that alternative data structures may be employed in practicing the present invention.
In the present invention when traversing the tree of the
GDB, each time a new group is encountered, an entry is pushed onto the group unwind stack 201. The entry on the group unwind stack is a pointer to an attribute unwind list 202.
When processing the group, each time an attribute is set, an entry is added to the attribute unwind list 202 pointed to be the entry on the top of the group unwind stack 201. The entry on the top of the group unwind stack 201 represents the current group level.
The entry in the attribute unwind list is a pointer to the specific routine for that attribute, such as routine 204.
The top value on the attribute value stack 203 represents the current attribute value for that attribute at any point in time.
For example with reference to Figure 1 and Figure 2, when processing of the GBD tree begins, an entry corresponding to the root is pushed onto the group unwind stack 201. The entry points to an attribute unwind list.
The default entries for each attribute are then set. When setting the default entries for each attribute, an entry fcr each attribute is made in the attribute unwind list 202.
Attribute values are pushed onto each of the attribute value stacks, such as attribute value stack 203. A group level of 0 is also pushed onto the attribute value stack 203. The current group level 204 is set 0. The tree is then traversed.
When group room 102 is encountered a second entry is pushed onto the group unwind stack 201 and this entry is the top of the stack. The entry points to a second attribute unwind list 202. The current group level 204 is incremented to 1.
Traversing of the tree proceeds and attribute blue 103 is encountered. When attribute blue 103 is encountered, an entry into the attribute unwind list 202 which points to the routine for setting color attributes is made. The color value for blue and group level 1 are pushed onto the attribute value stack 203 for color.
The line width attribute 104 is then encountered when continuing traversal of the tree. In similar fashion to processing of the attribute blue 103, an entry into the attribute unwind list 202 which points to the routine for setting line width is made. The value 0.001 and group level 1 are pushed onto the attribute value stack 203 for line width.
In any given group, the same attribute may be set a number of times. For example, the attribute for line width is set at node 104 in the tree of Figure 1. The attribute for line width may be set again, for example to 0.0001 later in processing of the group room 102. In the present invention, before adding entries to the attribute unwind list 202 or pushing values onto the attribute value stack 203, a check is made to determine whether the value at the top of the attribute value stack 203 has the same group level as the current group level 204. If the group level is the same, the value at the top of the attribute value stack 203 is set to the new value, in the present example, line width is set to 0.0001. No new entry is made to the attribute unwind list 202.
Utilizing the above methods, only attributes which change values during processing of the group are stored.
After the group room 102 has been completely traversed, the group is exited. As part of the process of exiting a group, attribute values which were changed during processing of the group are reset. To accomplish resetting the attributes in the present invention, the attribute unwind list 202 pointed to be the entry at the top of the group unwind stack 201 is utilized. For each entry in the attribute unwind list 202, using the routine pointed to by the entry, the value and group level at the top of the attribute value stack 203 corresponding to that entry is popped off the stack. The new value at the top of the stack is the entry that was current before entering the group. The entry at the top of the group unwind stack 201 is then popped and the memory used for the attribute unwind list 202 associated with the entry is freed. The current group level is decremented.The result is the values on the top of each attribute value stacks is restored to its value prior to entering of the group and the entry at the top of the group unwind stack 201 points to the attribute unwind list 202 for the now current group level 204.
Using the data structure of the present invention, new attributes may be added to the attribute set by creating a routine such as routine 204 and an attribute stack such as attribute stack 203. A group may then change the attribute value in the above-described manner by creating an entry in the attribute unwind list 202 to point at the routine.
Primitives may reference the new attribute by utilizing the routine 204 to get the current value. Other primitives and groups which do not require the new attribute are not affected by the addition of the attribute to the graphics system.
Thus, an apparatus and method for attribute management in a computer system is described. Although the present invention has been described with specific reference to a number of details of the preferred embodiment, it will be obvious that a number of modifications and variations may be employed without departure from the scope and spirit of the present invention. Accordingly, all such variations and modifications are included within the intended scope of the invention as defined by the following claims.
Claims (12)
1. In a computer graphics system, a graphical database comprising:
first means for storing a first list, said first list comprising entries corresponding to a plurality of groups processed by said computer graphics systems;
second means for storing a plurality of second lists, each of said second lists corresponding to said entries in said first list, each of said second lists comprising a plurality of entries corresponding to attributes;
third means for storing a third list, said third list comprising a plurality of entries corresponding to values of said attributes.
2. The graphical database as recited by Claim 1, wherein said first list comprises a stack of pointers, each of said pointers pointing to one of said second lists.
3. The graphical database as recited by Claim 2, wherein said third list comprises a stack of attribute values and corresponding group levels.
4. The graphical database as recited by Claim 3, further comprising a routine for manipulating said third list.
5. The graphical database as recited by Claim 4, wherein said routine comprises the functions of pushing entries onto the stack of said third list, popping entries off of the stack of said third list, setting the value of the top entry on said third list and getting the value of the top entry of the third list.
6. A method for processing attributes in. a graphical database, said graphical database comprising a plurality of group elements, said group elements for grouping a plurality of primitive elements and a plurality of attribute elements, said method comprising the steps of:
(a) beginning processing of a first of said groups;
(b) processing a first attribute in said first group, said processing of said first attribute comprising adding an attribute value for said first attribute onto an attribute value list associated with said first attribute;
(c) completing processing of said first group, said completion of processing of said first group comprising the step of deleting said attribute value from said attribute value list.
7. The method as recited by Claim 6 wherein said graphical database further comprises a group level indicator and said method further comprises the step of determining whether an attribute value has been added onto said attribute value list for the current group level prior to adding said first attribute onto said attribute value list.
8. The method as recited by Claim 6, wherein said attribute value list comprises a stack of attribute values, said step of adding said first attribute to said attribute value list comprises the step of pushing said first attribute value onto said attribute value list and said step of deleting said attribute value from said attribute value list comprises the step of popping said attribute value from said attribute value list.
9. The method as recited by Claim 6, wherein said step of beginning of processing of said first group comprises the step of pushing an entry onto a group stack corresponding to said first group.
10. The method as recited by Claim 6, wherein said step of completion of processing of said first group further comprises the step of popping said entry off of said group stack.
11. A graphical database in a computer graphics system, substantially as hereinbefore described with reference to the accompanying drawings.
12. P method for processing attributes in a graphical database, substantially as hereinbefore described.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19445988A | 1988-05-16 | 1988-05-16 |
Publications (3)
Publication Number | Publication Date |
---|---|
GB8908832D0 GB8908832D0 (en) | 1989-06-07 |
GB2218882A true GB2218882A (en) | 1989-11-22 |
GB2218882B GB2218882B (en) | 1992-07-22 |
Family
ID=22717678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB8908832A Expired - Fee Related GB2218882B (en) | 1988-05-16 | 1989-04-19 | Attribute management method and apparatus |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2218882B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2382509A (en) * | 2001-11-23 | 2003-05-28 | Voxar Ltd | Handling of image data created by manipulation of image data sets |
-
1989
- 1989-04-19 GB GB8908832A patent/GB2218882B/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2382509A (en) * | 2001-11-23 | 2003-05-28 | Voxar Ltd | Handling of image data created by manipulation of image data sets |
GB2382509B (en) * | 2001-11-23 | 2003-10-08 | Voxar Ltd | Handling of image data created by manipulation of image data sets |
Also Published As
Publication number | Publication date |
---|---|
GB2218882B (en) | 1992-07-22 |
GB8908832D0 (en) | 1989-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6105018A (en) | Minimum leaf spanning tree | |
US6487546B1 (en) | Apparatus and method for aggregate indexes | |
US5357631A (en) | Method and system for creating and maintaining multiple document versions in a data processing system library | |
US5287499A (en) | Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table | |
US7219104B2 (en) | Data cleansing | |
KR890016469A (en) | Method and apparatus for simultaneous modification of context in business processing system | |
JPH061447B2 (en) | How to back up the database | |
US5555003A (en) | Method for selecting an item on a graphics screen | |
EP0617373A2 (en) | A method and system for parallel, system managed storage for objects on multiple servers | |
US6546382B1 (en) | Finding the TOP N values through the execution of a query | |
US6847958B2 (en) | Method of managing index data in main memory database | |
US5142615A (en) | System and method of supporting a plurality of color maps in a display for a digital data processing system | |
US5572637A (en) | Process for merging CAD vector files and automatically removing duplicate and obsolete patterns | |
US6286007B1 (en) | Method and system for efficiently storing and viewing data in a database | |
US7801921B2 (en) | Deletion of data from child tables with multiple parents | |
KR102354343B1 (en) | Spatial indexing method and apparatus for blockchain-based geospatial data | |
GB2218882A (en) | Attribute management | |
US20060095448A1 (en) | Method and system for intra-table referential integrity for relational database systems | |
US6687699B1 (en) | System and method for tracking computer data | |
JPS6355614A (en) | Timer control system for information processor | |
JP2577397B2 (en) | Graphic display device | |
JPS6381573A (en) | Drawing information management method | |
US20020049757A1 (en) | Apparatus for processing data of overlapped facilities by means of virtual facility record and method therefor | |
JPH06103134A (en) | Constructing method for index | |
JP3232633B2 (en) | Data storage volume management processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
732 | Registration of transactions, instruments or events in the register (sect. 32/1977) | ||
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 19950419 |