Information technology — SEDRIS —
Part 1:  Functional specification

5 Fundamental data types

5.1 Introduction

5.1.1 Topics

Table 5.1 lists the topics of this clause.

Table 5.1 — Topics

5 Fundamental data types

5.1 Introduction

5.1.1 Topics

5.1.2 Description

5.2 Basic fundamental data types

5.2.1 Overview

5.2.2 Octet

5.2.3 Integers

5.2.3.1 Description

5.2.3.2 Byte

5.2.3.3 Byte_Unsigned

5.2.3.4 Byte_Positive

5.2.3.5 Short_Integer

5.2.3.6 Short_Integer_Unsigned

5.2.3.7 Short_Integer_Positive

5.2.3.8 Integer

5.2.3.9 Integer_Unsigned

5.2.3.10 Integer_Positive

5.2.4 Floating point numbers

5.2.4.1 Description

5.2.4.2 Float

5.2.4.3 Long_Float

5.2.5 Characters and strings

5.2.5.1 Description

5.2.5.2 Character

5.2.5.3 Character strings

5.2.6 Enumerated data types

5.2.6.1 Description

5.2.6.2 Access_Mode

5.2.6.3 Boolean

5.2.6.4 Branch_Range_Matching

5.2.6.5 Colour_Binding

5.2.6.6 Continuous_LOD_Select_Choice

5.2.6.7 Hierarchy_Inclusion

5.2.6.8 Image_Scan_Direction

5.2.6.9 Image_Scan_Direction_Z

5.2.6.10 Interval_Type

5.2.6.11 ITR_Behaviour

5.2.6.12 LSR_Transformation_Axis

5.2.6.13 Model_Reference_Type

5.2.6.14 Month

5.2.6.15 Object_Inclusion

5.2.6.16 Octant

5.2.6.17 Point_Light_Display_Type

5.2.6.18 Present_In

5.2.6.19 Quadrant

5.2.6.20 Reference_Surface_Elevation_Select

5.2.6.21 Reference_Surface_LOD_Select

5.2.6.22 Return_Code

5.2.6.23 Search_Bounds_Closure

5.2.6.24 Search_Dimension

5.2.6.25 Sibling_Traversal_Order

5.2.6.26 State_Mismatch_Behaviour

5.2.7 Selection data types

5.2.7.1 Description

5.2.7.2 API_Function

5.2.7.3 Axis_Alignment

5.2.7.4 Camera_Projection_Type

5.2.7.5 Colour_Model
5.2.7.6 Data_Table_Data_Value_Type

5.2.7.7 DRM_Class

5.2.7.8 Element_Type_Code

5.2.7.9 Encoding

5.2.7.10 Enumerated_Or_Selection_Type

5.2.7.11 Feature_Topology_Level

5.2.7.12 Font_Style

5.2.7.13 Functional_Association_Meaning_Type

5.2.7.14 Geometric_Centre_Code

5.2.7.15 Geometry_Topology_Level

5.2.7.16 Grid_Overlap_Operator

5.2.7.17 Hierarchy_Summary_Multiplicity_Code

5.2.7.18 Image_Component_Type

5.2.7.19 Image_Mapping_Method

5.2.7.20 Image_Projection_Type

5.2.7.21 Image_Signature

5.2.7.22 Image_Wrap

5.2.7.23 Index_Code

5.2.7.24 Interpolation_Type

5.2.7.25 Interval_Value_Type

5.2.7.26 LOD_Data_Type

5.2.7.27 Media_Format

5.2.7.28 Ordering_Reason

5.2.7.29 Pixel_Fill_Method

5.2.7.30 Predefined_Function

5.2.7.31 Property_Code_Type

5.2.7.32 Reference_Vector_Type

5.2.7.33 Search_Rule_Type

5.2.7.34 Search_Type

5.2.7.35 Search_Value_Type

5.2.7.36 Season

5.2.7.37 Shading_Method

5.2.7.38 Single_Value_Type

5.2.7.39 Sound_Format

5.2.7.40 Spacing_Type

5.2.7.41 Spatial_Association_Meaning_Type

5.2.7.42 Spatial_Index_Spacing_Unit

5.2.7.43 Status_Code

5.2.7.44 Symbol_Format

5.2.7.45 Time_Configuration

5.2.7.46 Time_Data_Type

5.2.7.47 Time_Measurement_Type

5.2.7.48 Time_Of_Day

5.2.7.49 Time_Significance

5.2.7.50 Traversal_Order

5.2.7.51 Underline_Style

5.2.7.52 Union_Reason

5.2.7.53 Unmatched_State_Behaviour

5.2.7.54 Variable_Code

5.2.7.55 Volumetric_Shape

5.2.8 Set Data Types

5.2.8.1 Description

5.2.8.2 Colour_Mapping

5.2.8.3 Display_Side

5.2.8.4 Display_Style

5.2.8.5 General_Hierarchy_Order

5.2.8.6 Polygon_Flag

5.2.8.7 Presentation_Domain

5.3 Structured fundamental data types

5.3.1 Description

5.3.2 Array data types

5.3.2.1 Notation

5.3.2.2 Matrix_3x3

5.3.2.3 Matrix_4x4

5.3.3 Record data types

5.3.3.1 Description

5.3.3.2 Absolute_Time_Fields

5.3.3.3 Absolute_Time_Interval_Entry

5.3.3.4 Absolute_Time_Interval_Fields

5.3.3.5 Address

5.3.3.6 Aggregate_Feature_Fields

5.3.3.7 Aggregate_Geometry_Fields

5.3.3.8 Alternate_Hierarchy_Parameters

5.3.3.9 Alternate_Hierarchy_Related_Features_Fields

5.3.3.10 Alternate_Hierarchy_Related_Geometry_Fields

5.3.3.11 Animation_Behaviour_Fields

5.3.3.12 Animation_Range

5.3.3.13 Animation_Related_Geometry_Fields

5.3.3.14 Animation_Select_Parameters

5.3.3.15 Any_Enumerated_Or_Selection_Value

5.3.3.16 Any_Search_Value

5.3.3.17 Arc_Fields

5.3.3.18 Axis_Fields

5.3.3.19 Base_Positional_Light_Fields

5.3.3.20 Base_Spatial_Association_Data_Fields

5.3.3.21 Base_Summary_Item_Fields

5.3.3.22 Base_Time_Data_Fields

5.3.3.23 Blend_Directional_Light_Fields

5.3.3.24 Browse_Media_Fields

5.3.3.25 Camera_Point_Fields

5.3.3.26 CC_3D_Location_Fields

5.3.3.27 CD_3D_Location_Fields

5.3.3.28 CD_Surface_Location_Fields

5.3.3.29 Citation_Fields

5.3.3.30 Classification_Data_Fields

5.3.3.31 Classification_Entry

5.3.3.32 Classification_Parameters

5.3.3.33 Classification_Related_Features_Fields

5.3.3.34 Classification_Related_Geometry_Fields

5.3.3.35 CM_3D_Location_Fields

5.3.3.36 CMY_Colour_Control_Link_Fields

5.3.3.37 CMY_Colour_Fields

5.3.3.38 CMY_Data

5.3.3.39 Colour_Fields

5.3.3.40 Colour_Index_Control_Link_Fields

5.3.3.41 Colour_Index_Fields

5.3.3.42 Colour_Shininess_Fields

5.3.3.43 Colour_Table_Group_Fields

5.3.3.44 Cone_Directional_Light_Fields

5.3.3.45 Conformal_Behaviour_Fields

5.3.3.46 Contact_Information

5.3.3.47 Continuous_LOD_Related_Geometry_Fields

5.3.3.48 Continuous_LOD_Select_Parameters

5.3.3.49 Control_Link_Fields

5.3.3.50 Count_Interval_Value

5.3.3.51 Cylindrical_Volume_Extent_Entry

5.3.3.52 Cylindrical_Volume_Extent_Fields

5.3.3.53 Data_Quality_Element

5.3.3.54 Data_Quality_Fields

5.3.3.55 Data_Table_Data

5.3.3.56 Data_Table_Sub_Extent

5.3.3.57 Distance_LOD_Data_Fields

5.3.3.58 DRM_Class_Fields

5.3.3.59 DRM_Class_Summary_Item_Fields

5.3.3.60 EC_Augmented_3D_Location_Fields

5.3.3.61 EC_Surface_Location_Fields

5.3.3.62 EDCS_Use_Summary_Item_Fields

5.3.3.63 Edge_Direction_Fields

5.3.3.64 EI_3D_Location_Fields

5.3.3.65 Element_Type

5.3.3.66 Ellipse_Fields

5.3.3.67 Enumeration_Axis_Fields

5.3.3.68 Environment_Root_Fields

5.3.3.69 Environmental_Domain_Summary_Fields

5.3.3.70 Face_Direction_Fields

5.3.3.71 Fade_Range_Fields

5.3.3.72 Feature_Face_Fields

5.3.3.73 Feature_Topology_Hierarchy_Fields

5.3.3.74 Feature_Volume_Fields

5.3.3.75 Flashing_Light_Behaviour_Fields

5.3.3.76 Function_Fields

5.3.3.77 Functional_Association_Data_Fields

5.3.3.78 General_Hierarchy_Select

5.3.3.79 Geometric_Centre_Fields

5.3.3.80 Geometry_Topology_Hierarchy_Fields

5.3.3.81 Grid_Overlap_Fields

5.3.3.82 HAEC_3D_Location_Fields

5.3.3.83 HEEC_3D_Location_Fields

5.3.3.84 HEEQ_3D_Location_Fields

5.3.3.85 Hierarchy_Data_Fields

5.3.3.86 Hierarchy_Order_Parameters

5.3.3.87 Hierarchy_Select_Parameters

5.3.3.88 Hierarchy_Summary_Item_Fields

5.3.3.89 HSV_Colour_Control_Link_Fields

5.3.3.90 HSV_Colour_Fields

5.3.3.91 HSV_Data

5.3.3.92 Identification_Fields

5.3.3.93 Image_Anchor_Fields

5.3.3.94 Image_Data

5.3.3.95 Image_Fields

5.3.3.96 Image_Mapping_Function_Fields

5.3.3.97 Image_MIP_Extents

5.3.3.98 Image_Texel_Location_3D

5.3.3.99 In_Out_Fields

5.3.3.100 Index_LOD_Data_Fields

5.3.3.101 Index_Range

5.3.3.102 Infinite_Light_Fields

5.3.3.103 Inline_Colour_Fields

5.3.3.104 Integer_Interval_Value

5.3.3.105 Interface_Template_Fields

5.3.3.106 Interval_Axis_Fields

5.3.3.107 Interval_Value

5.3.3.108 Irregular_Axis_Fields

5.3.3.109 Keywords_Fields

5.3.3.110 LCC_Augmented_3D_Location_Fields

5.3.3.111 LCC_Surface_Location_Fields

5.3.3.112 LCE_3D_Location_Fields

5.3.3.113 Legal_Constraints_Fields

5.3.3.114 Light_Rendering_Properties_Control_Link_Fields

5.3.3.115 Light_Rendering_Properties_Fields

5.3.3.116 Light_Source_Control_Link_Fields

5.3.3.117 Light_Source_Fields

5.3.3.118 Line_Fields

5.3.3.119 Lineage_Fields

5.3.3.120 Linear_Geometry_Fields

5.3.3.121 Literal_Fields

5.3.3.122 Lobe_Data_Fields

5.3.3.123 Local_4x4_Fields

5.3.3.124 Locale

5.3.3.125 LOD_Entry

5.3.3.126 LOD_Related_Features_Fields

5.3.3.127 LOD_Related_Geometry_Fields

5.3.3.128 LOD_Select_Parameters

5.3.3.129 Long_Float_Interval_Value

5.3.3.130 Long_Float_Value

5.3.3.131 LSA_2D_Location_Fields

5.3.3.132 LSP_2D_Location_Fields

5.3.3.133 LSR_2D_Location_Fields

5.3.3.134 LSR_3D_Location_Control_Link_Fields

5.3.3.135 LSR_3D_Location_Fields

5.3.3.136 LTSAS_3D_Location_Fields

5.3.3.137 LTSAS_Surface_Location_Fields

5.3.3.138 LTSC_3D_Location_Fields

5.3.3.139 LTSC_Surface_Location_Fields

5.3.3.140 LTSE_3D_Location_Fields

5.3.3.141 LTSE_Surface_Location_Fields

5.3.3.142 M_Augmented_3D_Location_Fields

5.3.3.143 M_Surface_Location_Fields

5.3.3.144 Map_Scale_LOD_Data_Fields

5.3.3.145 Mesh_Face_Table_Fields

5.3.3.146 Model_Fields

5.3.3.147 Model_Instance_Template_Index_Fields

5.3.3.148 Moving_Light_Behaviour_Fields

5.3.3.149 Octant_Data_Fields

5.3.3.150 Octant_Related_Features_Fields

5.3.3.151 Octant_Related_Geometry_Fields

5.3.3.152 Octant_Select_Parameters

5.3.3.153 OMS_Augmented_3D_Location_Fields

5.3.3.154 OMS_Surface_Location_Fields

5.3.3.155 Overload_Priority_Index_Fields

5.3.3.156 Packed_Hierarchy

5.3.3.157 Packed_Hierarchy_Object

5.3.3.158 Packed_Hierarchy_Reference

5.3.3.159 Parallelepiped_Volume_Extent_Entry

5.3.3.160 Parallelepiped_Volume_Extent_Fields

5.3.3.161 PD_3D_Location_Fields

5.3.3.162 PD_Surface_Location_Fields

5.3.3.163 Perimeter_Related_Feature_Topology_Fields

5.3.3.164 Perimeter_Related_Features_Fields

5.3.3.165 Perimeter_Related_Geometry_Fields

5.3.3.166 Perimeter_Related_Geometry_Topology_Fields

5.3.3.167 Polygon_Control_Link_Fields

5.3.3.168 Polygon_Fields

5.3.3.169 Positional_Light_Fields

5.3.3.170 Predefined_Function_Fields

5.3.3.171 Presentation_Domain_Fields

5.3.3.172 Primitive_Summary_Item_Fields

5.3.3.173 Process_Step_Fields

5.3.3.174 Property_Characteristic_Fields

5.3.3.175 Property_Code

5.3.3.176 Property_Description_Fields

5.3.3.177 Property_Fields

5.3.3.178 Property_Grid_Fields

5.3.3.179 Property_Set_Index_Control_Link_Fields

5.3.3.180 Property_Set_Index_Fields

5.3.3.181 Property_Set_Table_Fields

5.3.3.182 Property_Set_Table_Group_Fields

5.3.3.183 Property_Table_Reference_Control_Link_Fields

5.3.3.184 Property_Table_Reference_Fields

5.3.3.185 Property_Value_Fields

5.3.3.186 Proximity_Data_Fields

5.3.3.187 PS_Augmented_3D_Location_Fields

5.3.3.188 PS_Surface_Location_Fields

5.3.3.189 Pseudo_Code_Function_Fields

5.3.3.190 Pyramid_Directional_Light_Fields

5.3.3.191 Quadrant_Data_Fields

5.3.3.192 Quadrant_Related_Features_Fields

5.3.3.193 Quadrant_Related_Geometry_Fields

5.3.3.194 Quadrant_Select_Parameters

5.3.3.195 Reference_Origin_Fields

5.3.3.196 Reference_Surface_Fields

5.3.3.197 Reference_Vector_Control_Link_Fields

5.3.3.198 Reference_Vector_Fields

5.3.3.199 Regular_Axis_Fields

5.3.3.200 Relative_Time_Fields

5.3.3.201 Relative_Time_Interval_Fields

5.3.3.202 Relative_To_Absolute_Time_Interval_Entry

5.3.3.203 Relative_To_Absolute_Time_Entry

5.3.3.204 Remaining_Objects_List

5.3.3.205 Remaining_Packed_Hierarchies_List

5.3.3.206 Rendering_Priority_Level_Fields

5.3.3.207 Rendering_Properties_Fields

5.3.3.208 Responsible_Party_Fields

5.3.3.209 RGB_Colour_Control_Link_Fields

5.3.3.210 RGB_Colour_Fields

5.3.3.211 RGB_Data

5.3.3.212 Role_Data_Fields

5.3.3.213 Rotating_Light_Behaviour_Fields

5.3.3.214 Rotation_Control_Link_Fields

5.3.3.215 Rotation_Data

5.3.3.216 Rotation_Fields

5.3.3.217 Scale_Control_Link_Fields

5.3.3.218 Scale_Fields

5.3.3.219 Search_Bounds

5.3.3.220 Search_Rule

5.3.3.221 Search_Rule_Component

5.3.3.222 Search_Rule_Component_Field

5.3.3.223 Search_Rule_Component_Field_Array

5.3.3.224 Search_Rule_Component_Field_Range

5.3.3.225 Search_Rule_Field

5.3.3.226 Search_Rule_Field_Array

5.3.3.227 Search_Rule_Field_Range

5.3.3.228 Search_Rule_Predicate

5.3.3.229 Season_Fields

5.3.3.230 SEC_3D_Location_Fields

5.3.3.231 Security_Constraints_Fields

5.3.3.232 Separating_Plane_Data_Fields

5.3.3.233 Separating_Plane_Related_Geometry_Fields

5.3.3.234 Separating_Plane_Select_Parameters

5.3.3.235 SEQ_3D_Location_Fields

5.3.3.236 Single_Value

5.3.3.237 SMD_3D_Location_Fields

5.3.3.238 SME_3D_Location_Fields

5.3.3.239 Sound_Fields

5.3.3.240 Sound_Instance_Control_Link_Fields

5.3.3.241 Sound_Instance_Fields

5.3.3.242 Source_Fields

5.3.3.243 Spatial_Association_Data_Fields

5.3.3.244 Spatial_Index_Data_Fields

5.3.3.245 Spatial_Index_Parameters

5.3.3.246 Spatial_Index_Related_Feature_Topology_Fields

5.3.3.247 Spatial_Index_Related_Features_Fields

5.3.3.248 Spatial_Index_Related_Geometry_Fields

5.3.3.249 Spatial_Index_Related_Geometry_Topology_Fields

5.3.3.250 Spatial_Resolution_LOD_Data_Fields

5.3.3.251 Spherical_Volume_Extent_Fields

5.3.3.252 Spot_Light_Fields

5.3.3.253 SRF_Context_Info

5.3.3.254 SRF_Summary_Fields

5.3.3.255 Stamp_Behaviour_Fields

5.3.3.256 State_Control_Link_Fields

5.3.3.257 State_Data_Fields

5.3.3.258 State_Entry

5.3.3.259 State_Related_Features_Fields

5.3.3.260 State_Related_Geometry_Fields

5.3.3.261 State_Select_Parameters

5.3.3.262 String

5.3.3.263 Strobing_Light_Behaviour_Fields

5.3.3.264 Symbol_Fields

5.3.3.265 Table_Property_Description_Fields

5.3.3.266 Telephone_Information

5.3.3.267 Text_Fields

5.3.3.268 Text_Font

5.3.3.269 Texture_Coordinate_Control_Link_Fields

5.3.3.270 Texture_Coordinate_Fields

5.3.3.271 Time_Day_Of_Year_Value

5.3.3.272 Time_Entry

5.3.3.273 Time_Interval_Entry

5.3.3.274 Time_Interval_Fields

5.3.3.275 Time_M_Value

5.3.3.276 Time_MD_H_Value

5.3.3.277 Time_MD_HM_Value

5.3.3.278 Time_MD_HMS_Value

5.3.3.279 Time_Of_Day_Fields

5.3.3.280 Time_Point_Entry

5.3.3.281 Time_Point_Fields

5.3.3.282 Time_Related_Features_Fields

5.3.3.283 Time_Related_Geometry_Fields

5.3.3.284 Time_Select_Parameters

5.3.3.285 Time_Value

5.3.3.286 Time_Y_Value

5.3.3.287 Time_YD_Value

5.3.3.288 Time_YD_H_Value

5.3.3.289 Time_YD_HM_Value

5.3.3.290 Time_YD_HMS_Value

5.3.3.291 Time_YMD_Value

5.3.3.292 Time_YMD_H_Value

5.3.3.293 Time_YMD_HM_Value

5.3.3.294 Time_YMD_HMS_Value

5.3.3.295 TM_Augmented_3D_Location_Fields

5.3.3.296 TM_Surface_Location_Fields

5.3.3.297 Translation_Control_Link_Fields

5.3.3.298 Translation_Fields

5.3.3.299 Translucency_Control_Link_Fields

5.3.3.300 Translucency_Fields

5.3.3.301 Transmittal_Root_Fields

5.3.3.302 Transmittal_Summary_Fields

5.3.3.303 Union_Of_Feature_Topology_Fields

5.3.3.304 Union_Of_Features_Fields

5.3.3.305 Union_Of_Geometry_Fields

5.3.3.306 Union_Of_Geometry_Hierarchy_Fields

5.3.3.307 Union_Of_Geometry_Topology_Fields

5.3.3.308 Union_Of_Primitive_Geometry_Fields

5.3.3.309 Unused_Fields

5.3.3.310 URL

5.3.3.311 URN

5.3.3.312 Variable_Fields

5.3.3.313 Volume_Extent_Entry

5.3.3.314 Volume_Light_Behaviour_Fields

5.3.3.315 Volume_LOD_Data_Fields

5.3.3.316 Volume_LOD_Entry

5.3.3.317 World_3x3_Fields

5.4 Private data types

5.4.1 Description

5.4.2 Iterator

5.4.3 Object

5.4.4 Packed_Hierarchy_Object_Access

5.4.5 Search_Boundary

5.4.6 Search_Filter

5.4.7 Test_Data

5.4.8 Transmittal

5.4.9 User_Data

5.5 Function data types

5.5.1 Description

5.5.2 Predicate

5.5.3 Status_Logger

5.6 Data types from other standards

5.6.1 Description

5.6.2 Data types from ISO/IEC 18025

5.6.2.1 EDCS_Attribute_Code

5.6.2.2 EDCS_Attribute_Value

5.6.2.3 EDCS_Attribute_Value_Type

5.6.2.4 EDCS_Boolean

5.6.2.5 EDCS_Classification_Code

5.6.2.6 EDCS_Count

5.6.2.7 EDCS_Count_Interval

5.6.2.8 EDCS_Count_Value

5.6.2.9 EDCS_Integer

5.6.2.10 EDCS_Integer_Interval
5.6.2.11 EDCS_Integer_Value

5.6.2.12 EDCS_Long_Float
5.6.2.13 EDCS_Long_Float_Value

5.6.2.14 EDCS_Numeric_Value_Type

5.6.2.15 EDCS_Null

5.6.2.16 EDCS_String

5.6.2.17 EDCS_Unit_Code

5.6.2.18 EDCS_Unit_Scale_Code

5.6.2.19 EDCS_Value_Characteristics_Code

5.6.3 Data types from ISO/IEC 18026

5.6.3.1 SRM_CD_3D_Coordinate

5.6.3.2 SRM_CD_Surface_Coordinate

5.6.3.3 SRM_Coordinate

5.6.3.4 SRM_DSS_Code

5.6.3.5 SRM_EI_3D_Coordinate

5.6.3.6 SRM_Euclidean_2D_Coordinate

5.6.3.7 SRM_Euclidean_3D_Coordinate

5.6.3.8 SRM_LSA_2D_Coordinate

5.6.3.9 SRM_LSP_2D_Coordinate

5.6.3.10 SRM_LTSAS_3D_Coordinate

5.6.3.11 SRM_LTSAS_Surface_Coordinate

5.6.3.12 SRM_LTSC_3D_Coordinate

5.6.3.13 SRM_LTSC_Surface_Coordinate

5.6.3.14 SRM_LTSE_3D_Coordinate

5.6.3.15 SRM_LTSE_Surface_Coordinate

5.6.3.16 SRM_Map_Projection_3D_Coordinate

5.6.3.17 SRM_Map_Projection_Surface_Coordinate

5.6.3.18 SRM_Spherical_3D_Coordinate
5.6.3.19 SRM_SRF_Parameters_Info

5.6.3.20 SRM_Vector_3D

5.6.4 Data types from ISO 19115

5.6.4.1 CI_OnlineResource

5.6.4.2 CI_RoleCode

5.6.4.3 MD_ClassificationCode

5.6.4.4 MD_KeywordTypeCode

5.6.4.5 MD_RestrictionCode

5.1.2 Description

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.

5.2 Basic fundamental data types

5.2.1 Overview

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.

5.2.2 Octet

The Octet data type specifies an eight-bit field whose meaning is unknown or is determined by external factors.

5.2.3 Integers

5.2.3.1 Description

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.

5.2.3.2 Byte

The Byte data type specifies an integer that can represent a value in the range [-127..127].

5.2.3.3 Byte_Unsigned

The Byte_Unsigned data type specifies an integer that can represent a value in the range [0..255].

5.2.3.4 Byte_Positive

The Byte_Positive data type specifies an integer that can represent a value in the range [1..255].

5.2.3.5 Short_Integer

The Short_Integer data type specifies an integer that can represent a value in the range [-32767..32767].

5.2.3.6 Short_Integer_Unsigned

The Short_Integer_Unsigned data type specifies an integer that can represent a value in the range [0..65535].

5.2.3.7 Short_Integer_Positive

The Short_Integer_Positive data type specifies an integer that can represent a value in the range [1..65535].

5.2.3.8 Integer

The Integer data type specifies an integer that can represent a value in the range [-2 147 483 647..2 147 483 647].

5.2.3.9 Integer_Unsigned

The Integer_Unsigned data type specifies an integer that can represent a value in the range [0..4 294 967 295].

5.2.3.10 Integer_Positive

The Integer_Positive data type specifies an integer that can represent a value in the range [1..4 294 967 295].

5.2.4 Floating point numbers

5.2.4.1 Description

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.

5.2.4.2 Float

The Float data type specifies a single-precision floating point number as specified in IEC 60559.

5.2.4.3 Long_Float

The Long_Float data type specifies a double-precision floating point number as specified in IEC 60559.

5.2.5 Characters and strings

5.2.5.1 Description

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).

5.2.5.2 Character

The fundamental data type for representing characters is:

Character

5.2.5.3 Character strings

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.

5.2.6 Enumerated data types

5.2.6.1 Description

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.

5.2.6.2 Access_Mode

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 )

5.2.6.3 Boolean

Table 5.3 defines the Boolean data type that specifies FALSE and TRUE values.

Table 5.3 — Boolean 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 )

5.2.6.4 Branch_Range_Matching

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 )

5.2.6.5 Colour_Binding

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 )

5.2.6.6 Continuous_LOD_Select_Choice

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 )

5.2.6.7 Hierarchy_Inclusion

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 )

5.2.6.8 Image_Scan_Direction

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 XY

Figure 5.1 — Image scan direction in X and Y

Image_Scan_Direction ::= (
   RIGHT_UP,
   RIGHT_DOWN,
   DOWN_RIGHT,
   DOWN_LEFT,
   LEFT_UP,
   LEFT_DOWN,
   UP_RIGHT,
   UP_LEFT )

5.2.6.9 Image_Scan_Direction_Z

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

Figure 5.2 — Image scan direction in Z

Image_Scan_Direction_Z ::= (
   Z_NONE,
   Z_BACK,
   Z_FRONT )

5.2.6.10 Interval_Type

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 )

5.2.6.11 ITR_Behaviour

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 )

5.2.6.12 LSR_Transformation_Axis

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 )

5.2.6.13 Model_Reference_Type

Table 5.13 defines the Model_Reference_Type data type that specifies how a <DRM Model> instance 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 )

5.2.6.14 Month

Table 5.14 defines the Month data type that specifies the months of the year.

Table 5.14 — Month values

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 )

5.2.6.15 Object_Inclusion

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 )

5.2.6.16 Octant

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 id

Figure 5.3 — Octant identification

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 )

5.2.6.17 Point_Light_Display_Type

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 )

5.2.6.18 Present_In

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 )

5.2.6.19 Quadrant

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 ID

Figure 5.4 — Quadrant identification

Quadrant ::= (
   LEFT_FRONT,
   LEFT_BACK,
   RIGHT_FRONT,
   RIGHT_BACK )

5.2.6.20 Reference_Surface_Elevation_Select

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 )

5.2.6.21 Reference_Surface_LOD_Select

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 )

5.2.6.22 Return_Code

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 )

5.2.6.23 Search_Bounds_Closure

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.

Search_Bounds_Closure

Figure 5.5 — FULLY_CLOSED and PARTIALLY_CLOSED search bounds

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 )

5.2.6.24 Search_Dimension

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 )

5.2.6.25 Sibling_Traversal_Order

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 )

5.2.6.26 State_Mismatch_Behaviour

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 )

5.2.7 Selection data types

5.2.7.1 Description

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.

5.2.7.2 API_Function

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 )

5.2.7.3 Axis_Alignment

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).
 

Axis Alignment relationships

Figure 5.6 — Axis_Alignment relationships

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 )

5.2.7.4 Camera_Projection_Type

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 )

5.2.7.5 Colour_Model

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 )

5.2.7.6 Data_Table_Data_Value_Type

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 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_Integer.
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 )

5.2.7.7 DRM_Class

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,
              120 : DRM_LABEL,
              121 : DRM_LCC_AUGMENTED_3D_LOCATION,
            &n