Table 5.1 lists the topics of this clause.
This clause specifies the fundamental data types used within this part of ISO/IEC 18023 to specify the various DRM class instances that are to be represented. Such data types are composed of basic and constructed fundamental data types. The DRM class specifications contained in 6.2 DRM class specifications use the fundamental data types as the building blocks for creating DRM objects. The API specified in 8 Application program interface (API) uses both the data types and data class specifications to pass information between the application program and the transmittal.
More complex data types are formed from simple data types. These simple data types represent single pieces of information such as integers, floating point numbers, alphanumeric characters including strings of these, Booleans and other individual data constructs.
The Octet data type specifies an eight-bit field whose meaning is unknown or is determined by external factors.
Several data types for integer numbers are provided. There are both general integer and non-negative integer data types. These are intended to correspond to signed and unsigned integer data types in programming languages.
The Byte data type specifies an integer that can represent a value in the range [-127..127].
The Byte_Unsigned data type specifies an integer that can represent a value in the range [0..255].
The Byte_Positive data type specifies an integer that can represent a value in the range [1..255].
The Short_Integer data type specifies an integer that can represent a value in the range [-32767..32767].
The Short_Integer_Unsigned data type specifies an integer that can represent a value in the range [0..65535].
The Short_Integer_Positive data type specifies an integer that can represent a value in the range [1..65535].
The Integer data type specifies an integer that can represent a value in the range [-2 147 483 647..2 147 483 647].
The Integer_Unsigned data type specifies an integer that can represent a value in the range [0..4 294 967 295].
The Integer_Positive data type specifies an integer that can represent a value in the range [1..4 294 967 295].
The floating point number fundamental data types correspond to the single-precision and double-precision floating point types specified by IEC 60559. The specific values for POSITIVE_INFINITY and NEGATIVE_INFINITY shall be supported. However, implementations on architectures that support other floating point representations are allowed and shall support POSITIVE_INFINITY and NEGATIVE_INFINITY as provided in those floating point representations.
The Float data type specifies a single-precision floating point number as specified in IEC 60559.
The Long_Float data type specifies a double-precision floating point number as specified in IEC 60559.
Alphanumeric characters are encoded as UTF-8 as specified in ISO/IEC 10646 (otherwise known as Unicode). UTF-8 supports Latin characters single octets as specified in ISO/IEC 646 but also has the ability of representing international characters. Each character is comprised of one through six bytes as specified in ISO/IEC 10646-1. Hence, an abstract character is of variable length. A string is a list of such characters along with codes that specify how the string is to be interpreted (see 5.3.3.262 String).
The fundamental data type for representing characters is:
Character
Strings of characters are addressed by the String data type specified in 5.3.3.262 String and also by the String data type specified in 5.6.2.16 EDCS_String.
An enumerated data type consists of a list of names. Each name can be a value in an instance of that data type. The names are assigned numbers whose values indicate the position within the ordered list. It is these numbers that are actually manipulated by the implementation.
The enumerated data types that are supported by this part of ISO/IEC 18023 are specified below.
Table 5.2 defines the Access_Mode data type that specifies how a transmittal is to be opened.
Table 5.2 — Access_Mode values
| Value | Description |
|---|---|
|
READ_ONLY |
The transmittal is to be opened with only read access. |
|
UPDATE |
An existing transmittal is to be opened with the ability to make changes in the content. |
|
CREATE |
A new empty transmittal is to be opened with the ability to add and subsequently change content. |
Access_Mode ::= (
READ_ONLY,
UPDATE,
CREATE )
Table 5.3 defines the Boolean data type that specifies FALSE and TRUE values.
| Value | Description |
|---|---|
|
FALSE |
The value of the associated field is specified to be false. |
|
TRUE |
The value of the associated field is specified to be true. |
Boolean ::= (
FALSE,
TRUE )
Table 5.4 defines the Branch_Range_Matching data type that specifies, when evaluating the branches of a <DRM Aggregate Feature> or <DRM Aggregate Geometry> instance against a range of search values, how to evaluate the field values of a given branch’s link object against the search range, where the link object’s field values themselves specify a range of values.
Table 5.4 — Branch_Range_Matching values
| Value | Description |
|---|---|
|
EXACT |
For a branch to be considered a match, the search value range shall exactly match the branch's value range. |
|
FULL_CONTAINMENT |
For a branch to be considered a match, the search value range shall be completely contained within the branch's value range. |
|
INTERSECTION |
For a branch to be considered a match, the search value range shall intersect the branch's value range. |
Branch_Range_Matching ::= (
EXACT,
FULL_CONTAINMENT,
INTERSECTION )
Table 5.5 defines the Colour_Binding data type that specifies which type of colour inheritance is in effect within the scope of the given <DRM Rendering Properties> instance.
Table 5.5 — Colour_Binding values
| Value | Description |
|---|---|
|
NORMAL |
The colour of a geometry attribute is specified as the default attribute binding. Attributes specified by a component shall override its parent (i.e., the last colour wins). |
|
PARENT_OVERRIDE |
This setting allows the given instance of a <DRM Geometry Representation> concrete subclass to override the default attribute binding; that is, to override any <DRM Colour> instances specified by objects in its component tree. |
Colour_Binding ::= (
NORMAL,
PARENT_OVERRIDE )
Table 5.6 defines the Continuous_LOD_Select_Choice data type that specifies which level (or levels) of detail are to be traversed.
Table 5.6 — Continuous_LOD_Select_Choice values
| Value | Description |
|---|---|
|
ALL |
All levels are to be traversed. |
|
LEAST_DETAILED |
The least detailed level is to be traversed. |
|
MOST_DETAILED |
The most detailed level is to be traversed. |
Continuous_LOD_Select_Choice ::= (
ALL,
LEAST_DETAILED,
MOST_DETAILED )
Table 5.7 defines the Hierarchy_Inclusion data type that specifies, for a given subclass of <DRM Aggregate Feature> or <DRM Aggregate Geometry>, whether the instances and their components are included or excluded from a search..
Table 5.7 — Hierarchy_Inclusion values
| Value | Description |
|---|---|
|
EXCLUDE_ALL |
All instances and their components are to be excluded. |
|
INCLUDE_ALL |
All instances and their components are to be included. |
|
EVALUATE_RULES |
Instances and their components are included only if they pass a set of specified conditions. |
Hierarchy_Inclusion ::= (
EXCLUDE_ALL,
INCLUDE_ALL,
EVALUATE_RULES )
Table 5.8 defines the Image_Scan_Direction data type that specifies the manner in which an image layer is to be scanned.
Table 5.8 — Image_Scan_Direction values
| Value |
Major scan |
Minor scan |
Image origin |
|---|---|---|---|
|
RIGHT_UP |
left to right |
bottom to top |
lower left |
|
RIGHT_DOWN |
left to right |
top to bottom |
upper left |
|
DOWN_RIGHT |
top to bottom |
left to right |
upper left |
|
DOWN_LEFT |
top to bottom |
right to left |
upper right |
|
LEFT_UP |
right to left |
bottom to top |
lower right |
|
LEFT_DOWN |
right to left |
top to bottom |
upper right |
|
UP_RIGHT |
bottom to top |
left to right |
lower left |
|
UP_LEFT |
bottom to top |
right to left |
lower right |
EXAMPLE Assume an image is displayed in a Cartesian 2D space with the positive X axis pointing right, and the positive Y axis pointing up, as shown in Figure 5.1. Further, assume an image of size W×H in this 2D space has W image elements in the X direction and H image elements in the Y direction. A scan direction of RIGHT_UP means that the image data is stored such that the first image element in memory corresponds to the (0 0) coordinate of this 2D space, and the next image elements should be displayed on the positively increasing X axis (the minor scan), until W image elements are displayed (W 0). The next image element will correspond to the (0 1) coordinate of the 2D space. Once the image element (W 1) is reached, the scan direction will continue to move from bottom to top on the positively increasing Y axis, for each successive scan line, until H lines have been accessed.
Image_Scan_Direction ::= (
RIGHT_UP,
RIGHT_DOWN,
DOWN_RIGHT,
DOWN_LEFT,
LEFT_UP,
LEFT_DOWN,
UP_RIGHT,
UP_LEFT )
Table 5.9 defines the Image_Scan_Direction_Z data type that specifies the manner in which image depth is to be scanned.
Table 5.9 — Image_Scan_Direction_Z values
| Value | Scan direction | Image origin |
|---|---|---|
|
NONE |
Not applicable |
Not applicable |
|
Z_BACK |
front to back |
front |
|
Z_FRONT |
back to front |
back |
EXAMPLE Following the example in 5.2.6.8 Image_Scan_Direction, assume an image is displayed in a right-handed Cartesian 3D space with the positive Z axis pointed towards the viewer, as shown in Figure 5.2. A scan direction of Z_FRONT means that the image elements are organized such that successive groups of XY elements (as described in 5.2.6.8 Image_Scan_Direction) are displayed starting at Z=0 and in the direction of the positive Z axis.
Image_Scan_Direction_Z ::= (
Z_NONE,
Z_BACK,
Z_FRONT )
Table 5.10 defines the Interval_Type data type that specifies the type of interval for the various interval data types.
Table 5.10 — Interval_Type values
| Value | Description |
|---|---|
|
OPEN_INTERVAL |
The interval does not include the value at each end of the interval. |
| GE_LT_INTERVAL | The end value of lowest value is included but the end value of highest value is not included. |
| GT_LE_INTERVAL | The end value of lowest value is not included but the end value of highest value is included. |
|
CLOSED_INTERVAL |
The interval includes the value at each end of the interval. |
| GT_SEMI_INTERVAL | The lower end value is -∞ and the upper end value is not included. |
| GE_SEMI_INTERVAL | The lower end value is -∞ and the upper end value is included. |
| LT_SEMI_INTERVAL | The lower end value is not included and the upper end value is ∞. |
| LE_SEMI_INTERVAL | The lower end value is included and the upper end value is ∞. |
Interval_Type ::= (
OPEN_INTERVAL,
GE_LT_INTERVAL,
GT_LE_INTERVAL,
CLOSED_INTERVAL,
GT_SEMI_INTERVAL,
GE_SEMI_INTERVAL,
LT_SEMI_INTERVAL,
LE_SEMI_INTERVAL )
Table 5.11 defines the ITR_Behaviour data type that specifies the desired traversal for an iterator or function when an ITR reference is encountered.
Table 5.11 — ITR_Behaviour values
| Value | Description |
|---|---|
|
RESOLVE |
ITR references are resolved automatically as they are encountered. A transmittal that has been opened in this way cannot be updated. The transmittal shall be explicitly opened for writing or modification for RESOLVE ITR_Behaviour to occur. |
|
REPORT |
ITR references are reported as they are encountered, but are not resolved. |
|
IGNORE |
ITR references are ignored and traversal acts as though the transmittal were standalone, continuing to search within the current transmittal. |
ITR_Behaviour ::= (
RESOLVE,
REPORT,
IGNORE )
Table 5.12 defines the LSR_Transformation_Axis data type that specifies which axis to rotate around, scale by, or translate along.
Table 5.12 — LSR_Transformation_Axis values
| Value | Description |
|---|---|
|
U |
The X axis is the axis around which a rotation is computed and along which a scale or translation is computed. |
|
V |
The Y axis is the axis around which a rotation is computed and along which a scale or translation is computed. |
|
W |
The Z axis is the axis around which a rotation is computed and along which a scale or translation is computed. |
|
ALL |
Scaling and translation occur uniformly along all axes. This value is not valid for rotation. |
|
AXIS_REFERENCE_VECTOR |
Operations are referenced to an axis specified by a <DRM Reference Vector> component of the given <DRM LSR Transformation>. |
LSR_Transformation_Axis ::= (
U,
V,
W,
ALL,
AXIS_REFERENCE_VECTOR )
Table 5.13 defines the Model_Reference_Type data type that specifies how a <DRM Model> intsnace is referenced within a transmittal.
Table 5.13 — Model_Reference_Type values
| Value | Description |
|---|---|
|
COMPONENT |
The <DRM Model> instance can be referenced only as a component of other <DRM Model> instances. In this case, the <DRM Model> instance cannot be referenced directly from a <DRM Environment Root> instance. |
|
ROOT |
The <DRM Model> instance cannot be instanced by any other <DRM Model> instance. In this case, the <DRM Model> instance can be referenced from a <DRM Environment Root> instance. |
|
ROOT_AND_COMPONENT |
The <DRM Model> instance can be instanced both by other <DRM Model> instances and from a <DRM Environment Root> instance. |
Model_Reference_Type ::= (
COMPONENT,
ROOT,
ROOT_AND_COMPONENT )
Table 5.14 defines the Month data type that specifies the months of the year.
| Value | Description |
|---|---|
|
JANUARY |
January. |
|
FEBRUARY |
February. |
|
MARCH |
March. |
|
APRIL |
April. |
|
MAY |
May. |
|
JUNE |
June. |
|
JULY |
July. |
|
AUGUST |
August. |
|
SEPTEMBER |
September. |
|
OCTOBER |
October. |
|
NOVEMBER |
November. |
|
DECEMBER |
December. |
Month ::= (
JANUARY,
FEBRUARY,
MARCH,
APRIL,
MAY,
JUNE,
JULY,
AUGUST,
SEPTEMBER,
OCTOBER,
NOVEMBER,
DECEMBER )
Table 5.15 defines the Object_Inclusion data type that specifies how identified objects relate to a search boundary.
Table 5.15 —Object_Inclusion values
| Value | Description |
|---|---|
| FULLY_INCLUDED | The identified object is completely inside the search boundary specified. |
| PARTIALLY_INCLUDED | The identified object is either completely inside the search boundary or partially overlaps the search boundary. |
Note that PARTIALLY_INCLUDED is a superset of FULLY_INCLUDED.
Object_Inclusion ::= (
FULLY_INCLUDED,
PARTIALLY_INCLUDED )
The Octant data type specifies which octant contains the data of interest. It is used by <DRM Octant Data> to specify which octant is represented by the associated <DRM Feature Hierarchy> instance (for a <DRM Octant Related Features> instance) or <DRM Geometry Hierarchy> instance (for a <DRM Octant Related Geometry> instance).
The identification of the octants is as shown in Figure 5.3, where left-to-right is the orientation of the first coordinate axis, front-to-back is the orientation of the second coordinate axis, and lower-to-upper is the orientation of the third coordinate axis. The naming convention is with respect to a viewer at point “f” directly facing point “h”. The plane specified by the three points “g”, “d”, and “i” represents the dividing plane between front and back with the point “f” considered to be in the front. The plane specified by the three points “n”, “j”, and “b” represents the dividing plane between left and right with the point “g” considered to be in the left. The plane specified by the three points “g”, “h”, and “k” represents the dividing plane between top and bottom with the point “d” considered to be in the bottom. Octants can be used to specify octrees [SAMET].
Octant ::= (
UPPER_LEFT_FRONT,
UPPER_LEFT_BACK,
LOWER_LEFT_FRONT,
LOWER_LEFT_BACK,
UPPER_RIGHT_FRONT,
UPPER_RIGHT_BACK,
LOWER_RIGHT_FRONT,
LOWER_RIGHT_BACK )
Table 5.16 defines the Point_Light_Display_Type data type that specifies the technology of the display used to render a set of points of light.
Table 5.16 — Point_Light_Display_Type values
| Value | Description |
|---|---|
|
RASTER |
The light is to be rendered during the scan of the entire display. |
|
CALLIGRAPHIC |
The light is to be rendered explicitly to the portion of the display at which the point is to be produced. |
Point_Light_Display_Type ::= (
RASTER,
CALLIGRAPHIC )
Table 5.17 defines the Present_In data type that specifies whether certain items are present within one or more <DRM Environment Root> instances and/or one or more <DRM Model> instances within the scope of the <DRM Transmittal Root> instance being described.
Table 5.17 — Present_In values
| Value | Description |
|---|---|
|
NONE |
The items are not present. |
|
ENVIRONMENT_ROOT |
The items are present within the scope of one or more <DRM Environment Root> instances. |
|
MODELS |
The items are present within the scope of one or more <DRM Model> instances. |
|
ENVIRONMENT_ROOT_AND_MODELS |
The items are present within the scope of one or more <DRM Environment Root> instances and one or more <DRM Model> instances. |
Present_In ::= (
NONE,
ENVIRONMENT_ROOT,
MODELS,
ENVIRONMENT_ROOT_AND_MODELS )
The Quadrant data type specifies which quadrant is represented by the associated <DRM Feature Hierarchy> instance (for a <DRM Quadrant Related Features> instance) or <DRM Geometry Hierarchy> instance (for a <DRM Quadrant Related Geometry> instance).
The identification of the quadrants is as shown in Figure 5.4, where left-to-right is the orientation of the first coordinate axis and front-to-back is the orientation of the second coordinate axis. The naming convention is with respect to a viewer at point “c” directly facing point “d”. The line defined by the two points “c” and “e” specifies the division between left and right with “b” considered to be in the left. The line defined by the two points “b” and “f” specifies the division between front and back with “e” considered to be in the back. Quadrants can be used to specify quadtrees [SAMET].
Quadrant ::= (
LEFT_FRONT,
LEFT_BACK,
RIGHT_FRONT,
RIGHT_BACK )
Table 5.18 defines the Reference_Surface_Elevation_Select data type that specifies the rule for selecting exactly one elevation value when the reference surface specified by the <DRM Reference Surface> instance is penetrated more than once by a ray cast from the conforming point in question perpendicular to the surface of the ellipsoid component of the ORM.
Table 5.18 — Reference_Surface_Elevation_Select values
| Value | Description |
|---|---|
|
CLOSEST_TO_ORM_CENTRE |
The intersection element to use is the one closest to the ORM centre. |
|
CLOSEST_TO_DSS |
The intersection element to use is the one closest to the designated spatial surface (DSS). |
|
FARTHEST_FROM_ORM_CENTRE |
The intersection element to use is the one farthest from the ORM centre. |
Reference_Surface_Elevation_Select ::= (
CLOSEST_TO_ORM_CENTRE,
CLOSEST_TO_DSS,
FARTHEST_FROM_ORM_CENTRE )
Table 5.19 defines the Reference_Surface_LOD_Select data type that specifies which branch of a <DRM LOD Related Geometry> instance is to be used to resolve conforming points when more than one branch could apply to a given conforming point. This data type is used by a <DRM Reference Surface> instance whose associated <DRM Geometry Hierarchy> instance contains a <DRM LOD Related Geometry> instance. This data type is not used for <DRM Continuous LOD Related Geometry>.
Table 5.19 — Reference_Surface_LOD_Select values
| Value | Description |
|---|---|
|
MOST_DETAILED |
The most detailed resolution is used to resolve the conforming point. |
|
LEAST_DETAILED |
The least detailed resolution is used to resolve the conforming point. |
Reference_Surface_LOD_Select ::= (
MOST_DETAILED,
LEAST_DETAILED )
Table 5.20 defines the Return_Code data type that specifies the function results of API functions.
Table 5.20 — Return_Code values
| Value | Description |
|---|---|
|
FAILURE |
The function failed to carry out the operation. |
|
SUCCESS |
The function successfully carried out the operation. |
Return_Code ::= (
FAILURE,
SUCCESS )
Table 5.21 defines the Search_Bounds_Closure data type that specifies whether a spatial search area has full or partial closure.
Each Search_Bounds value specifies an enclosed region of a tessellation. The Search_Bounds_Closure data type specifies whether the top and right boundaries of the tessellation are included in the region. This is depicted in Figure 5.5 where the search bounds region on the left has a specified value of FULLY_CLOSED. Any point intersecting the top and rightmost lines shall be included. The search bounds region on the right is specified as PARTIALLY_CLOSED. Points intersecting the topmost and rightmost lines shall not be included. By assigning appropriate Search_Bounds_Closure values, it can be ensured that a point will be encompassed by only one search bounds region.
Table 5.21 — Search_Bounds_Closure values
| Value | Description |
|---|---|
|
FULLY_CLOSED |
The complete boundary of the spatial extent will be used to determine if a location is within the search bounds region. |
|
PARTIALLY_CLOSED |
Only the lower end points of the spatial extent will be used to determine if a location is within the search bounds region. |
Search_Bounds_Closure ::= (
FULLY_CLOSED,
PARTIALLY_CLOSED )
Table 5.22 defines the Search_Dimension data type that specifies whether a search will return two-dimensional DRM objects, if they are present.
To ignore <DRM Location 2D> instances, Search_Dimension value THREE_DIMENSIONAL should be specified. All other searches consider <DRM Location 2D> instances in evaluating DRM objects.
This data type also specifies whether a search will consider the height components of <DRM Location 3D> instances. To ignore the height component, search dimension TWO_DIMENSIONAL_OR_SURFACE shall be specified. All other searches shall consider the height components of <DRM Location 3D> instances during evaluation.
Table 5.22 — Search_Dimension values
| Value | Description |
|---|---|
|
TWO_DIMENSIONAL_OR_SURFACE |
Only DRM objects specified with two-dimensional or surface coordinates will be returned. |
|
THREE_DIMENSIONAL |
Only DRM objects specified with three-dimensional coordinates will be returned. |
|
ALL_DIMENSIONS |
DRM objects specified with any type of coordinates will be returned. |
Search_Dimension ::= (
TWO_DIMENSIONAL_OR_SURFACE,
THREE_DIMENSIONAL,
ALL_DIMENSIONS )
Table 5.23 defines the Sibling_Traversal_Order data type that specifies the desired traversal order for various types of components that already have a logical ordering.
Table 5.23 — Sibling_Traversal_Order values
| Value | Description |
|---|---|
|
ASCENDING |
Components will be traversed in ascending order. |
|
DESCENDING |
Components will be traversed in descending order. |
|
UNSPECIFIED |
No traversal order is specified; any may be used. |
Sibling_Traversal_Order ::= (
ASCENDING,
DESCENDING,
UNSPECIFIED )
Table 5.24 defines the State_Mismatch_Behaviour data type that specifies the behaviour state control when there is a state value that is not supported in the <DRM State Data> link object of a <DRM State Related Features> instance or <DRM State Related Geometry> instance.
Table 5.24 — State_Mismatch_Behaviour values
| Value | Description |
|---|---|
| DEFAULT | The default state shall be displayed. |
|
LAST |
The last state shall remain. |
|
NONE |
Nothing shall be displayed. |
State_Mismatch_Behaviour ::= (
DEFAULT,
LAST,
NONE )
The set of values of each selection data type may be extended by registration. In contrast, the set of values of an enumerated data type may not be extended by registration. Selection data types shall be implemented by each language binding in such a manner that the set of values may be extended without invalidating pre-compiled software. Selection data types are otherwise processed in the same manner as enumerated data types.
Standard meanings are assigned to positive values from 1 through 1000. Registered meanings shall be assigned to values above 1000. Each selection data type is specified in the same manner as an enumerated data type (see 5.2.6.1 Description). Such names are presented below in upper case.
An implementation may permit negative values for selection types that are not specified in this part of ISO/IEC 18023. Transmittals that use such non-standard values do not conform to this part of ISO/IEC 18023. Non-standard values may be used to test new concepts prior to standardization or registration.
The API_Function data type specifies the names of the available transmittal API functions.
API_FUNCTION ::= (
< 1 : // implementation dependent and non-conforming,
1 : ADD_ASSOCIATE_RELATIONSHIP,
2 : ADD_COMPONENT_RELATIONSHIP,
3 : CLONE_OBJECT_HANDLE,
4 : CLOSE_TRANSMITTAL,
5 : CREATE_OBJECT,
6 : CREATE_SEARCH_FILTER,
7 : CREATE_SPATIAL_SEARCH_BOUNDARY,
8 : DETERMINE_SPATIAL_INCLUSION,
9 : FREE_ITERATOR,
10 : FREE_OBJECT,
11 : FREE_PACKED_HIERARCHY,
12 : FREE_REMAINING_OBJECTS_LIST,
13 : FREE_REMAINING_PACKED_HIERARCHIES_LIST,
14 : FREE_SEARCH_FILTER,
15 : FREE_SPATIAL_SEARCH_BOUNDARY,
16 : FREE_TRANSMITTAL,
17 : GET_AGGREGATE,
18 : GET_ASSOCIATE,
19 : GET_COLOUR_MODEL,
20 : GET_COMPONENT,
21 : GET_CONTEXT_TRANSFORMATION,
22 : GET_DATA_TABLE_DATA,
23 : GET_DRM_CLASS,
24 : GET_ENCODING,
25 : GET_FIELDS,
26 : GET_IMAGE_DATA,
27 : GET_ITERATION_LENGTH_REMAINING,
28 : GET_LAST_FUNCTION_STATUS,
29 : GET_MESH_FACE_TABLE_DATA,
30 : GET_NEXT_OBJECT,
31 : GET_NTH_ASSOCIATE,
32 : GET_NTH_COMPONENT,
33 : GET_NUMBER_OF_PATHS_TO_TRANSMITTAL_ROOT,
34 : GET_OBJECT_FROM_ID_STRING,
35 : GET_OBJECT_ID_STRING,
36 : GET_OBJECT_REFERENCE_COUNT,
37 : GET_PACKED_HIERARCHY,
38 : GET_PUBLISHED_LABELS,
39 : GET_PUBLISHED_OBJECT_LIST,
40 : GET_REFERENCED_TRANSMITTAL_LIST,
41 : GET_RELATION_COUNTS,
42 : GET_REMAINING_OBJECTS_LIST,
43 : GET_REMAINING_PACKED_HIERARCHIES,
44 : GET_ROOT_OBJECT,
45 : GET_SRF_INFO,
46 : GET_TRANSMITTAL_FROM_OBJECT,
47 : GET_TRANSMITTAL_LOCATION,
48 : GET_TRANSMITTAL_NAME,
49 : GET_TRANSMITTAL_VERSION_INFORMATION,
50 : GET_UNIQUE_TRANSMITTAL_ID,
51 : GET_UNRESOLVED_OBJECT_FROM_PUBLISHED_LABEL,
52 : GET_USER_DATA,
53 : INITIALIZE_AGGREGATE_ITERATOR,
54 : INITIALIZE_ASSOCIATE_ITERATOR,
55 : INITIALIXE_COMPONENT_ITERATOR,
56 : INITIALIZE_INHERITED_COMPONENT_ITERATOR,
57 : IS_ITERATOR_COMPLETE,
58 : OBJECT_IS_PUBLISHED,
59 : OBJECT_IS_RESOLVED,
60 : OBJECTS_ARE_SAME,
61 : OPEN_TRANSMITTAL_BY_LOCATION,
62 : OPEN_TRANSMITTAL_BY_NAME,
63 : PUBLISH_OBJECT,
64 : PUT_DATA_TABLE_DATA,
65 : PUT_FIELDS,
66 : PUT_IMAGE_DATA,
67 : PUT_MESH_FACE_TABLE_DATA,
68 : REMOVE_ASSOCIATE_RELATIONSHIP,
69 : REMOVE_COMPONENT_RELATIONSHIP,
70 : REMOVE_FROM_TRANSMITTAL,
71 : RESOLVE_OBJECT,
72 : RESOLVE_TRANSMITTAL_NAME,
73 : SET_COLOUR_MODEL,
74 : SET_FIRST_ERROR_MESSAGE,
75 : SET_GENERAL_CALLBACK,
76 : SET_GENERAL_CALLBACK_FOR_ONE_FUNCTION,
77 : SET_ROOT_OBJECT,
78 : SET_SECOND_ERROR_MESSAGE,
79 : SET_SPECIFIC_CALLBACK,
80 : SET_SRF_INFO,
81 : SET_TRANSMITTAL_NAME,
82 : SET_USER_DATA,
83 : TRANSMITTALS_ARE_SAME,
84 : UNPUBLISH_OBJECT,
85 : USE_DEFAULT_COLOUR_MODEL,
86 : USE_DEFAULT_SRF_INFO,
[87..1000] : // reserved for future standardization,
> 1000 : // reserved for registration )
Table 5.25 defines the
Axis_Alignment data type that specifies how the data table cell value(s)
associated with an axis tick mark align with the axis interval for a <DRM Regular Axis> instance. This relationship is depicted in
Figure
5.6. Table 5.25 references the tick marks
identified in
Figure
5.6 (Si is the value of the ith tick mark).
Table 5.25 — Axis_Alignment values
| Value | Description |
|---|---|
|
NONE |
The ith data table cell value is applicable to the entire interval [ti, ti+1). |
|
LOWER |
The ith data table cell value is applicable at the ti tick mark. |
|
MEDIAN |
The ith data table cell value is applicable at the median of the ti and ti+1 tick marks. |
|
UPPER |
The ith data table value is applicable at the ti+1 tick mark. |
|
GEOMETRIC_MEAN |
The ith data table cell value is applicable at the geometric mean of the ti and ti+1 tick marks. This kind of axis alignment is intended for use with GEOMETRIC spacing (see 5.2.7.42 Spacing_Type). |
Axis_Alignment ::= (
< 1 : // implementation dependent and non-conforming,
1 : NONE,
2 : LOWER,
3 : MEDIAN,
4 : UPPER,
5 : GEOMETRIC_MEAN,
[6..1000] : // reserved for future standardization,
> 1000 : // reserved for registration )
Table 5.26 defines the Camera_Projection_Type data type that specifies the type of projection that applies to a <DRM Camera Point> instance.
Table 5.26 — Camera_Projection_Type values
| Value | Description |
|---|---|
|
ORTHOGRAPHIC |
The projection is a parallel projection in which the projection direction is parallel to the direction of the view. |
|
PERSPECTIVE |
The projection is a perspective projection in which all projector lines converge to a single point at the viewer. |
Camera_Projection_Type ::= (
< 1 : // implementation dependent and non-conforming,
1 : ORTHOGRAPHIC,
2 : PERSPECTIVE,
[3..1000] : // reserved for future standardization,
> 1000 : // reserved for registration )
Table 5.27 defines the Colour_Model data type that specifies a colour model.
Table 5.27 — Colour_Model values
| Value | Description |
|---|---|
|
RGB |
Colour values are specified using the red-green-blue (RGB) colour model. |
|
CMY |
Colour values are specified using the cyan-magenta-yellow (CMY) colour model. |
|
HSV |
Colour values are specified using the hue-saturation-value (HSV) colour model. |
Colour_Model ::= (
< 1 : // implementation dependent and non-conforming,
1 : RGB,
2 : CMY,
3 : HSV,
[4..1000] : // reserved for future standardization,
> 1000 : // reserved for registration )
Table 5.28 defines the Data_Table_Data_Value_Type data type that specifies the type of data that is specified in an instance of Data_Table_Data.
Table 5.28 — Data_Table_Data_Value_Type values
| Value | Description |
|---|---|
| SINGLE_LONG_FLOAT | Each element of data table data is a single real attribute value of type EDCS_Long_Float. |
| LONG_FLOAT | Each element of data table data is a real attribute value of type EDCS_Long_Float_Value. |
| SINGLE_INTEGER | Each element of data table data is a single integer attribute value of type EDCS_INTEGER. |
| INTEGER | Each element of data table data is an integer attribute value of type EDCS_Integer_Value. |
| SINGLE_COUNT | Each element of data table data is a single count attribute value of type EDCS_Count. |
| COUNT | Each element of data table data is a count attribute value of type EDCS_Count_Value. |
| INDEX | Each element of data table data is an index attribute value of type EDCS_Count. |
| STRING | Each element of data table data is a string attribute value of type EDCS_String. |
| CONSTRAINED_STRING | Each element of data table data is a constrained string attribute value of type EDCS_String. |
| KEY | Each element of data table data is a key attribute value of type EDCS_String. |
| ENUMERATION | Each element of data table data is an enumerated attribute value of type EDCS_Enumerant_Code. |
| BOOLEAN | Each element of data table data is a boolean attribute value of type EDCS_Boolean. |
| INDEX_CODE | Each element of data table data is an index code of type Integer_Unsigned. |
Data_Table_Data_Value_Type ::= (
< 1 : // implementation dependent and non-conforming,
1 : SINGLE_LONG_FLOAT,
2 : LONG_FLOAT,
3 : SINGLE_INTEGER,
4 : INTEGER,
5 : SINGLE_COUNT,
6 : COUNT,
7 : INDEX,
8 : STRING,
9 : CONSTRAINED_STRING,
10 : KEY,
11 : ENUMERATION,
12 : BOOLEAN,
13 : INDEX_CODE,
[14..1000] : // reserved for future standardization,
> 1000 : // reserved for registration )
The DRM_Class data type specifies the DRM classes supported by this part of ISO/IEC 18023.
DRM_Class ::= (
<
1 : // implementation dependent and non-conforming,
1 : NULL,
2 : DRM_ABSOLUTE_TIME,
3 : DRM_ABSOLUTE_TIME_INTERVAL,
4 : DRM_AGGREGATE_FEATURE,
5 : DRM_AGGREGATE_GEOMETRY,
6 : DRM_ALTERNATE_HIERARCHY_RELATED_FEATURES,
7 : DRM_ALTERNATE_HIERARCHY_RELATED_GEOMETRY,
8 : DRM_AMBIENT_COLOUR,
9 : DRM_ANIMATION_BEHAVIOUR,
10 : DRM_ANIMATION_RELATED_GEOMETRY,
11 : DRM_ARC,
12 : DRM_AREAL_FEATURE,
13 : DRM_ATTACHMENT_POINT,
14 : DRM_AXIS,
15 : DRM_BASE_ASSOCIATION_DATA,
16 : DRM_BASE_LOD_DATA,
17 : DRM_BASE_POSITIONAL_LIGHT,
18 : DRM_BASE_SPATIAL_ASSOCIATION_DATA,
19 : DRM_BASE_SUMMARY_ITEM,
20 : DRM_BASE_TIME_DATA,
21 : DRM_BLEND_DIRECTIONAL_LIGHT,
22 : DRM_BOUNDING_VOLUME,
23 : DRM_BROWSE_MEDIA,
24 : DRM_CAMERA_POINT,
25 : DRM_CC_3D_LOCATION,
26 : DRM_CD_3D_LOCATION,
27 : DRM_CD_SURFACE_LOCATION,
28 : DRM_CITATION,
29 : DRM_CLASSIFICATION_DATA,
30 : DRM_CLASSIFICATION_RELATED_FEATURES,
31 : DRM_CLASSIFICATION_RELATED_GEOMETRY,
32 : DRM_CM_3D_LOCATION,
33 : DRM_CMY_COLOUR,
34 : DRM_CMY_COLOUR_CONTROL_LINK,
35 : DRM_COLLISION_VOLUME,
36 : DRM_COLOUR,
37 : DRM_COLOUR_DATA,
38 : DRM_COLOUR_INDEX,
39 : DRM_COLOUR_INDEX_CONTROL_LINK,
40 : DRM_COLOUR_SHININESS,
41 : DRM_COLOUR_TABLE,
42 : DRM_COLOUR_TABLE_GROUP,
43 : DRM_COLOUR_TABLE_LIBRARY,
44 : DRM_CONE_DIRECTIONAL_LIGHT,
45 : DRM_CONFORMAL_BEHAVIOUR,
46 : DRM_CONTACT_POINT,
47 : DRM_CONTINUOUS_LOD_RELATED_GEOMETRY,
48 : DRM_CONTROL_LINK,
49 : DRM_CYLINDRICAL_VOLUME_EXTENT,
50 : DRM_DATA_QUALITY,
51 : DRM_DATA_TABLE,
52 : DRM_DATA_TABLE_LIBRARY,
53 : DRM_DIFFUSE_COLOUR,
54 : DRM_DIRECTIONAL_LIGHT_BEHAVIOUR,
55 : DRM_DISTANCE_LOD_DATA,
56 : DRM_DRM_CLASS_SUMMARY_ITEM,
57 : DRM_EC_AUGMENTED_3D_LOCATION,
58 : DRM_EC_SURFACE_LOCATION,
59 : DRM_EDCS_USE_SUMMARY_ITEM,
60 : DRM_EDGE_DIRECTION,
61 : DRM_EI_3D_LOCATION,
62 : DRM_ELLIPSE,
63 : DRM_EMISSIVE_COLOUR,
64 : DRM_ENCLOSING_VOLUME,
65 : DRM_ENUMERATION_AXIS,
66 : DRM_ENVIRONMENT_ROOT,
67 : DRM_ENVIRONMENTAL_DOMAIN_SUMMARY,
68 : DRM_EXPRESSION,
69 : DRM_FACE_DIRECTION,
70 : DRM_FADE_RANGE,
71 : DRM_FEATURE_EDGE,
72 : DRM_FEATURE_FACE,
73 : DRM_FEATURE_FACE_RING,
74 : DRM_FEATURE_HIERARCHY,
75 : DRM_FEATURE_MODEL,
76 : DRM_FEATURE_MODEL_INSTANCE,
77 : DRM_FEATURE_NODE,
78 : DRM_FEATURE_REPRESENTATION,
79 : DRM_FEATURE_TOPOLOGY,
80 : DRM_FEATURE_TOPOLOGY_HIERARCHY,
81 : DRM_FEATURE_VOLUME,
82 : DRM_FEATURE_VOLUME_SHELL,
83 : DRM_FINITE_ELEMENT_MESH,
84 : DRM_FLASHING_LIGHT_BEHAVIOUR,
85 : DRM_FUNCTION,
86 : DRM_FUNCTIONAL_ASSOCIATION_DATA,
87 : DRM_GEOMETRIC_CENTRE,
88 : DRM_GEOMETRY_EDGE,
89 : DRM_GEOMETRY_FACE,
90 : DRM_GEOMETRY_HIERARCHY,
91 : DRM_GEOMETRY_MODEL,
92 : DRM_GEOMETRY_MODEL_INSTANCE,
93 : DRM_GEOMETRY_NODE,
94 : DRM_GEOMETRY_REPRESENTATION,
95 : DRM_GEOMETRY_TOPOLOGY,
96 : DRM_GEOMETRY_TOPOLOGY_HIERARCHY,
97 : DRM_GEOMETRY_VOLUME,
98 : DRM_GRID_OVERLAP,
99 : DRM_HAEC_3D_LOCATION,
100 : DRM_HEEC_3D_LOCATION,
101 : DRM_HEEQ_3D_LOCATION,
102 : DRM_HIERARCHY_DATA
103 : DRM_HIERARCHY_SUMMARY_ITEM,
104 : DRM_HSV_COLOUR,
105 : DRM_HSV_COLOUR_CONTROL_LINK,
106 : DRM_ICON,
107 : DRM_IDENTIFICATION,
108 : DRM_IMAGE,
109 : DRM_IMAGE_ANCHOR,
110 : DRM_IMAGE_LIBRARY,
111 : DRM_IMAGE_MAPPING_FUNCTION,
112 : DRM_IN_OUT,
113 : DRM_INDEX_LOD_DATA,
114 : DRM_INFINITE_LIGHT,
115 : DRM_INLINE_COLOUR,
116 : DRM_INTERFACE_TEMPLATE,
117 : DRM_INTERVAL_AXIS,
118 : DRM_IRREGULAR_AXIS,
119 : DRM_KEYWORDS,