Table 6.130—DRM_Hierarchical_Table

Property

Description

Superclass

·         <DRM SEDRIS Abstract Base>

Class

·         <DRM Hierarchical Table>

Subclass

·         <DRM Colour Entry Table>

·         <DRM Location 3D Table>

·         <DRM Property Table Reference Table>

·         <DRM Reference Vector Table>

·         <DRM Texture Coordinate Table>

Definition

This is an abstract DRM class that specifies a common definition of hierarchically defined tables within the SEDRIS data model. It explains their use, implementation, and how to resolve references.

Conceptually, a <DRM Hierarchical Table> is an ordered collection of objects. Objects within a table are referenced by their ordinal position in the collection. Referencing objects encode this position as an field called an index. This indexed referencing scheme does not contain an explicit reference to a table object. Instead, the reference to the table object is implicitly based on the definition of the derived table class, the referencing object, and the referencing index field. Further, the entire content of the conceptual table does not have to be contained within a single table object. The conceptual table may be "constructed" from multiple <DRM Hierarchical Table> based objects contained within the object hierarchy. The start_index field of a <DRM Hierarchical Table> based class, together with the number of component of the table is used to define the "range" of a particular instance of the table. These ranges are combined, by traversal UP the hierarchy, to form the conceptual table to which index fields refer. When ranges overlap, the range from the <DRM Hierarchical Table> that is lower in the hierarchy takes precedence. From a practical, implementation perspective, resolving an index reference is simple. First, traverse up the hierarchy until a table of the appropriate derived class (with respect to the referencing object and reference index) is found attached to an aggregate object in the hierarchy. When a table object is found, an evaluation shall be performed to determine if the referencing index lies within the range of the table instance (table.start_index £ reference_index < start_index + number_of_table_components) If it does, then the expression (start_index + 1 - reference_index) should be used to determine the ordinal position of the reference object within the ordered components of the table. If the reference index does not fall within the table's range, then the traversal shall continue up the hierarchy. All reference indices shall resolve to some table contained within the hierarchy.

Example(s)

·         See the <DRM Vertex With Component Indices> class for specific examples.

Inherited field elements

field_name

range

Field_Data_Type

none

 

 

Field elements

field_name

range

Field_Data_Type

start_index

 

Integer_Positive

Associated to (one-way) (inherited)

·         none

Associated to (one-way)

·         none

Associated by (one-way) (inherited)

·         none

Associated by (one-way)

·         none

Associated with (two-way) (inherited)

·         none

Associated with (two-way)

·         none

Composed of (two-way) (inherited)

·         none

Composed of (two-way)

·         none

Composed of (two-way metadata) (inherited)

·         none

Composed of (two-way metadata)

·         none

Component of (two-way) (inherited)

·         none

Component of (two-way)

·         one or more <DRM Aggregate Geometry>s

Constraints

·         none

Notes

none

Class diagram

<DRM Hierarchical Table>