Templates for the SEDRIS DRM

Annex D

Predefined data types

D.1 Introduction

D.1.1 Topics

Table B.1 lists the topics of this annex.

Table B.1 — Topics

Annex D Data type

D.1 Introduction

D.1.1 Topics

D.1.2 Description

D.2 Enumerated data types

D.1.1 Colour_Binding

D.1.2 Colour_Data

D.2.3 Colour_Mapping

D.2.4 Display_Side

D.2.5 Display_Style

D.2.6 Edge_Direction

D.2.7 Exception_Code

D.2.8 Face_Direction

D.2.9 Image_Mapping_Method

D.2.9 Image_Projection_Type

D.2.10 Image_Wrap

D.2.11 Local_Transformation_Axis

D.2.12 Local_Transformation_Step

D.2.13 LOD_Data_Type

D.2.14 Month

D.2.15 Ordering_Reason

D.2.16 Pixel_Fill_Method

D.2.17 Point_Light_Display_Type

D.2.18 Primitive_Colour

D.2.19 Season_Type

D.2.20 Shading_Method

D.2.21 Spatial_Index_Spacing_Unit

D.2.22 Status_Code

D.2.23 Template_Type

D.2.24 Time_Configuration

D.2.25 Time_Data_Type

D.2.26 Time_Interval_Type

D.2.27 Time_Of_Day

D.2.28 Time_Significance

D.2.29 Vector_Type

D.2.30 Volume_Type

D.3 Record data types

D.3.1 Base_Positional_Light

D.3.2 Colour_Model_Value

D.3.2 Directional_Light

D.3.3 Distance_LOD_Data

D.3.4 Geometry_Representation

D.3.5 Identification

D.3.6 Image_Mapping_Function

D.3.7 Light_Colour_Value

D.3.8 Light_Rendering_Properties

D.3.9 Light_Source

D.3.10 Location

D.3.11 LOD_Data

D.3.12 Matrix_3x3

D.3.13 Matrix_4x4

D.3.14 Primitive_Colour_Value

D.3.15 Property_Set

D.3.16 Season

D.3.17 Spatial_Index_Data

D.3.18 Spatial_Resolution_LOD_Data

D.3.19 Texture_UV

D.3.20 Time_D_Value

D.3.21 Time_Data

D.3.22 Time_Interval

D.3.23 Time_M_Value

D.3.24 Time_MD_H_Value

D.3.25 Time_MD_HM_Value

D.3.26 Time_MD_HMS_Value

D.3.27 Time_Value

D.3.28 Time_Y_Value

D.3.29 Time_YD_H_Value

D.3.30 Time_YD_HM_Value

D.3.31 Time_YD_HMS_Value

D.3.32 Time_YD_Value

D.3.33 Time_YMD_H_Value

D.3.34 Time_YMD_HM_Value

D.3.35 Time_YMD_HMS_Value

D.3.36 Time_YMD_Value

D.3.37 Vector

D.3.38 Volume_LOD_Data

D.3.39 Point

D.3.40 Line

D.3.41 Arc

D.3.42 Polygon

D.3.43 Ellipse

D.3.44 Mesh

D.3.45 Polyhedron

D.3.46 Sphere

D.3.47 Cylinder

D.3.48 Parallelepiped

D.3.49 Camera

D.3.50 Point_Light

D.3.51 Spot_Light

D.3.52 Directional_Light

D.3.53 World_Transformation

D.3.54 Local_Transformation

D.3.55 Colour

D.3.56 Material

D.3.57 Rendering Property

D.3.58 Polygon_Texture

D.3.59 Polyhedron_Texture

D.3.60 Mesh_Texture

D.3.61 Blend_Directional_Light

D.3.62 Cone_Directional_Light

D.3.63Pyramid_Directional_Light

D.3.64 Moving_Light

D.3.65 Cylinderical_Volume_Light

D.3.66 Spherical_Volume_Light

D.3.67 Parallelepiped_Volume_Light

D.3.68 Base_Structure

D.3.69 Colour_Group

D.3.70 Image_Group

D.3.71 Model_Group

D.3.72 Model

D.3.73 Material_Group

D.3.74 Light_Rendering_Group

D.3.75 Rendering_Property_Group

D.3.76 Texture_Group

D.3.77 Model_Instance

D.3.78 Property_Instance

D.3.79 Colour_Instance

D.3.80 LOD

D.3.81 Time

D.3.82 Space

D.3.83 Static

D.3.84 Animation

D.1.2 Description

This annex specifies the predefined abstract scripting language data types used by this Technical Report. Both enumerated and record data types are specified.

D.2 Enumerated data types

D.2.1 Colour_Binding

enum Colour_Binding:
        CLR_BND_NORMAL,
        CLR_BND_PARENT_OVERRIDE;

D.2.2 Colour_Data

enum Colour_Data:
        CMY_COLOUR,
        HSV_COLOUR,
        RGB_COLOUR;

D.2.3 Colour_Mapping

enum Colour_Mapping:
        FRONT_PRIMARY;,
        FRONT_DISTANCE_BLEND,
        FRONT_IMAGE_BLEND,
        BACK_PRIMARY,
        BACK_DISTANCE_BLEND,
        BACK_IMAGE_BLEND,
        PRIMARY_LIGHT_RENDERING_BEHAVIOUR,
        SECONDARY_LIGHT_RENDERING_BEHAVIOUR;

D.2.4 Display_Side

enum Display_Side:
        FRONT,
        BACK;

D.2.5 Display_Style

enum Display_Style:
        SOLID,
        WIREFRAME;

D.2.6 Edge_Direction

enum Edge_Direction:
        FORWARD,
        BACKWARD;

D.2.7 Exception_Code

enum Exception_Code:
        INVALID_HANDLE,
        INVALID_VECTOR_TYPE,
        INVALID_TEMPLATE_TYPE,
        INVALID_PARAMETER;

D.2.8 Face_Direction

enum Face_Direction:
        FRONT,
        BACK;

D.2.9 Image_Mapping_Method

enum Image_Mapping_Method:
        IMG_MAPNG_METH_REPLACE,
        IMG_MAPNG_METH_DECAL,
        IMG_MAPNG_METH_MODULATE,
        IMG_MAPNG_METH_BLEND;

D.2.9 Image_Projection_Type

enum Image_Projection_Type:
        IMG_PROJ_TYP_PLANAR,
        IMG_PROJ_TYP_CYLINDRICAL,
        IMG_PROJ_TYP_SPHERICAL;

D.2.10 Image_Wrap

enum Image_Wrap:
        IMG_WRAP_CLAMP,
        IMG_WRAP_REPEAT;

D.2.11 Local_Transformation_Axis

enum Local_Transformation_Axis:
        TRNSFRM_AXIS_X,
        TRNSFRM_AXIS_Y,
        TRNSFRM_AXIS_Z,
        TRNSFRM_AXIS_ALL;

D.2.12 Local_Transformation_Step

enum Local_Transformation_Step:
        ROTATION,
        SCALE,
        TRANSLATION;

D.2.13 LOD_Data_Type

enum LOD_Data_Type:
        LODDATTYP_DISTANCE,
        LODDATTYP_INDEX,
        LODDATTYP_MAP_SCALE,
        LODDATTYP_VOLUME,
        LODDATTYP_SPATIAL_RESOLUTION;

D.2.14 Month

enum Month:
        MONTH_JANUARY,
        MONTH_FEBRUARY,
        MONTH_MARCH,
        MONTH_APRIL,
        MONTH_MAY,
        MONTH_JUNE,
        MONTH_JULY,
        MONTH_AUGUST,
        MONTH_SEPTEMBER,
        MONTH_OCTOBER,
        MONTH_NOVEMBER,
        MONTH_DECEMBER;

D.2.15 Ordering_Reason

enum Ordering_Reason:
        ORDREAS_NONE,
        ORDREAS_FIXED_LISTED,
        ORDREAS_LAYERED_FASTEST_RENDERING,
        ORDREAS_LAYERED_HIGH_QUALITY_RENDERING,
        ORDREAS_SHARED_ATTRIBUTE,
        ORDREAS_VIEWER_RANGE;

D.2.16 Pixel_Fill_Method

enum Pixel_Fill_Method:
        PXL_FILL_METH_CONSTANT,
        PXL_FILL_METH_BLEND;

D.2.17 Point_Light_Display_Type

enum Point_Light_Display_Type:
        PTLTDISPTYP_RASTER,
        PTLTDISPTYP_CALLIGRAPHIC;

D.2.18 Primitive_Colour

enum Primitive_Colour:
        AMBIENT_COLOUR,
        DIFFUSE_COLOUR,
        SPECULAR_COLOUR,
        EMISSIVE_COLOUR;

D.2.19 Season_Type

enum Season_Type:
        SEASON_SPRING,
        SEASON_SUMMER,
        SEASON_AUTUMN,
        SEASON_WINTER,
        SEASON_DRY,
        SEASON_WET;

D.2.20 Shading_Method

enum Shading_Method:
        SHADE_METH_NONE,
        SHADE_METH_FLAT,
        SHADE_METH_INTERPOLATED_COLOUR,
        SHADE_METH_INTERPOLATED_NORMAL;

D.2.21 Spatial_Index_Spacing_Unit

enum Spatial_Index_Spacing_Unit:
        SISPACUNITS_METRE,
        SISPACUNITS_ARC_SECOND;

D.2.22 Status_Code

enum Status_Code:
        SUCCESS_CODE,
        FAILURE_CODE;

D.2.23 Template_Type

enum Template_Type:
        TDM_POINT,
        TDM_LINE,
        TDM_ARC,
        TDM_POLYGON,
        TDM_ELLIPSE,
        TDM_MESH,
        TDM_POLYHEDRON,
        TDM_CYLINDER,
        TDM_SPHERE,
        TDM_PARALLELEPIPED,
        TDM_CAMERA,
        TDM_POINT_LIGHT,
        TDM_SPOT_LIGHT,
        TDM_DIRECTIONAL_LIGHT,
        TDM_WORLD_TRANSFORMATION,
        TDM_LOCAL_TRANSFORMATION,
        TDM_COLOUR,
        TDM_MATERIAL,
        TDM_RENDERING_PROPERTY,
        TDM_POLYGON_TEXTURE,
        TDM_POLYHEDRON_TEXTURE,
        TDM_MESH_TEXTURE,
        TDM_BLEND_DIRECTIONAL_LIGHT,
        TDM_CONE_DIRECTIONAL_LIGHT,
        TDM_PYRAMID_DIRECTIONAL_LIGHT,
        TDM_MOVING_LIGHT,
        TDM_CYLINDRICAL_VOLUME_LIGHT,
        TDM_SPHERICAL_VOLUME_LIGHT,
        TDM_PARALLELEPIPED_VOLUME_LIGHT,
        TDM_BASE_STRUCTURE,
        TDM_COLOUR_GROUP,
        TDM_IMAGE_GROUP,
        TDM_MODEL_GROUP,
        TDM_MATERIAL_GROUP,
        TDM_TEXTURE_GROUP,
        TDM_RENDERING_PROPERTY_GROUP,
        TDM_LIGHT_RENDERING_GROUP,
        TDM_MODEL_INSTANCE,
        TDM_PROPERTY_INSTANCE,
        TDM_COLOUR_INSTANCE,
        TDM_LOD,
        TDM_TIME,
        TDM_SPACE,
        TDM_STATIC,
        TDM_ANIMATION;

D.2.24 Time_Configuration

enum Time_Configuration:
        TIMECFG_DATE_YMD_AND_TIME_HMS,
        TIMECFG_DATE_YMD_AND_TIME_HM,
        TIMECFG_DATE_YMD_AND_TIME_H,
        TIMECFG_DATE_YMD,
        TIMECFG_DATE_YD_AND_TIME_HMS,
        TIMECFG_DATE_YD_AND_TIME_HM,
        TIMECFG_DATE_YD_AND_TIME_H,
        TIMECFG_DATE_YD,
        TIMECFG_DATE_MD_AND_TIME_HMS,
        TIMECFG_DATE_MD_AND_TIME_HM,
        TIMECFG_DATE_MD_AND_TIME_H,
        TIMECFG_DATE_Y,
        TIMECFG_DATE_M,
        TIMECFG_DAY_OF_YEAR;

D.2.25 Time_Data_Type

enum Time_Data_Type:
        TIMEDATTYP_SEASON,
        TIMEDATTYP_TIME_INTERVAL,
        TIMEDATTYP_TIME_OF_DAY,
        TIMEDATTYP_TIME_POINT;

D.2.26 Time_Interval_Type

enum Time_Interval_Type:
        ABSOLUTE_TIME_INTERVAL,
        RELATIVE_TIME_INTERVAL;

D.2.27 Time_Of_Day

enum Time_Of_Day:
        TIMEOFDAY_DAWN,
        TIMEOFDAY_MORNING,
        TIMEOFDAY_DAY,
        TIMEOFDAY_AFTERNOON,
        TIMEOFDAY_DUSK,
        TIMEOFDAY_EVENING,
        TIMEOFDAY_NIGHT;

D.2.28 Time_Significance

enum Time_Significance:
        TIMESIGNIF_CREATION_DATE
        TIMESIGNIF_MODIFICATION_DATE;

D.2.29 Vector_Type

enum Vector_Type:
        CAMERA_FORWARD_AXIS,
        CAMERA_UP_AXIS,
        LIGHT_DIRECTION,
        FACE_NORMAL,
        MAJOR_AXIS,
        MINOR_AXIS,
        MOVEMENT_DIRECTION,
        PARALLELEPIPED_EDGE_DIRECTION,
        VERTICAL_AXIS;

D.2.30 Volume_Type

enum Volume_Type:
        SPHERE,
        CYLINDER,
        PARALLELEPIPED;

D.3 Record data types

D.3.1 Base_Positional_Light

record Base_Positional_Light{
        Light_Source light_source;
        Float        radius;
        Float        constant_attenuation_factor;
        Float        linear_attenuation_factor;
        Float        quadratic_attenuation_factor;
};

D.3.2 Colour_Model_Value

record Colour_Model_Value(Colour_Model colour_model){
        (CMY_COLOUR: Float cyan, Float megenta,    Float yellow),
        (HSV_COLOUR: Float hue,  Float saturation, Float value),
        (RGB_COLOUR: Float red,  Float green,      Float blue)
};

D.3.2 Directional_Light

record Directional_Light{
        Float    horizontal_width;
        Float    vertical_width;
        Location position;
};

D.3.3 Distance_LOD_Data

record Distance_LOD_Data{
        Float minimum_range;
        Float minimum_fade_band;
        Float maximum_range;
        Float maximum_fade_band;
};

D.3.4 Geometry_Representation

record Geometry_Representation(Template_Type geometry_representation_type){
        (TDM_LOD:       LOD       lod),
        (TDM_TIME:      Time      time),
        (TDM_SPACE:     Space     space),
        (TDM_STATIC:    Static    static),
        (TDM_ANIMATION: Animation animation)
};

D.3.5 Identification

record Identification{
        String abstract;
        String purpose;
        String credit[*];
        String supplemental_information;
};

D.3.6 Image_Mapping_Function

record Image_Mapping_Function{
        Image_Mapping_Method  image_mapping_method;
        Image_Wrap            image_wrap_s;
        Image_Wrap            image_wrap_t;
        Image_Projection_Type image_projection_type;
        Float                 intensity_level;
        Float                 gain;
        Boolean               image_detail_mapping;
};

D.3.7 Light_Colour_Value

record Light_Colour_Value{
        Colour_Model_Value ambient_colour_value,
        Colour_Model_Value diffuse_colour_value,
        Colour_Model_Value specular_colour_value,
};

D.3.8 Light_Rendering_Properties

record Light_Rendering_Properties{
        Point_Light_Display_Type display_type;
        Float                    light_diameter;
        Float                    light_extinguishing_range;
        Boolean                  random_area_light;
        Boolean                  active_light_value;
        Float                    candela_value;
};

D.3.9 Light_Source

record Light_Source{
        Boolean apply_to_children;
        Boolean override_positional_lights;
        Boolean override_infinite_lights;
        Boolean active_light_value;
};

D.3.10 Location

record Location{
        Float x;
        Float y;
        Float z;
};

D.3.11 LOD_Data

record LOD_Data(LOD_Data_Type lod_data_type){
        (LODDATTYP_DISTANCE:           Distance_LOD_Data distance_lod_data) ,
        (LODDATTYP_INDEX:              Integer           index),
        (LODDATTYP_MAP_SCALE:          Float             scale),
        (LODDATTYP_VOLUME:             Volume_LOD_Data   volume_lod_data),
        (LODDATTYP_SPATIAL_RESOLUTION: Spatial_Resolution_LOD_Data
                                                         spatial_resolution_lod_data)
};

D.3.12 Matrix_3x3

record Matrix_3x3{
        Float mat[3][3];
};

D.3.13 Matrix_4x4

record Matrix_4x4{
        Float mat[4][4];
};

D.3.14 Primitive_Colour_Value

record Primitive_Colour_Value{
        Colour_Model_Value ambient_colour_value,
        Colour_Model_Value diffuse_colour_value,
        Colour_Model_Value specular_colour_value,
        Colour_Model_Value emissive_colour_value
};

D.3.15 Property_Set

record Property_Set{
        Integer        primary_table_index;
        Integer        table_size;
        String         table_usage;
        Boolean        regular;
        Identification identification;
};

D.3.16 Season

record Season(Time_Interval_Type time_interval_type){
        Season_Type   season_type;
        Time_Interval time_interval;
};

D.3.17 Spatial_Index_Data

record Spatial_Index_Data{
        Integer                 row_index;
        Integer                 column_index;
        Geometry_Representation geometry_representation[*];
};

D.3.18 Spatial_Resolution_LOD_Data

record Spatial_Resolution_LOD_Data{
        Float                      spatial_resolution;
        Spatial_Index_Spacing_Unit unit;
};

D.3.19 Texture_UV

record Texture_UV{
        Float u;
        Float v;
};

D.3.20 Time_D_Value

record Time_D_Value{
        Integer day;
};

D.3.21 Time_Data

record Time_Data(Time_Data_Type time_data_type){
        (TIMEDATTYP_SEASON:        Season        season),
        (TIMEDATTYP_TIME_INTERVAL: Time_Interval time_interval),
        (TIMEDATTYP_TIME_OF_DAY:   Time_Of_Day   time_of_day),
        (TIMEDATTYP_TIME_POINT:    Time_Interval time_interval);
};

D.3.22 Time_Interval

record Time_Interval(Time_Interval_Type time_interval_type){
        (ABSOLUTE_TIME_INTERVAL: Integer delta_days,
                                 Integer delta_hours,
                                 Integer delta_minutes,
                                 Float   delta_seconds),
        (RELATIVE_TIME_INTERVAL: Integer delta_start_days,
                                 Integer delta_stop_days,
                                 Integer delta_start_hours,
                                 Integer delta_stop_hours,
                                 Integer delta_start_minutes,
                                 Integer delta_stop_minutes,
                                 Float   delta_start_seconds,
                                 Float   delta_stop_seconds)
};

D.3.23 Time_M_Value

record Time_M_Value{
        Month month;
};

D.3.24 Time_MD_H_Value

record Time_MD_H_Value{
        Month   month;
        Integer day;
        Integer hour;
};

D.3.25 Time_MD_HM_Value

record Time_MD_HM_Value{
        Month   month;
        Integer day;
        Integer hour;
        Integer minutes;
};

D.3.26 Time_MD_HMS_Value

record Time_MD_HMS_Value{
        Month   month;
        Integer day;
        Integer hour;
        Integer minutes;
        Float   seconds;
};

D.3.27 Time_Value

record Time_Value(Time_Value timeValue){
        TIMECFG_DATE_YMD_AND_TIME_HMS: Time_YMD_HMS_Value ymd_hms,
        TIMECFG_DATE_YMD_AND_TIME_HM:  Time_YMD_HM_Value  ymd_hm,
        TIMECFG_DATE_YMD_AND_TIME_H:   Time_YMD_H_Value   ymd_h,
        TIMECFG_DATE_YMD:              Time_YMD_Value     ymd,
        TIMECFG_DATE_YD_AND_TIME_HMS:  Time_YD_HMS_Value  yd_hms,
        TIMECFG_DATE_YD_AND_TIME_HM:   Time_YD_HM_Value   yd_hm,
        TIMECFG_DATE_YD_AND_TIME_H:    Time_YD_H_Value    yd_h,
        TIMECFG_DATE_YD:               Time_YD_Value      yd,
        TIMECFG_DATE_MD_AND_TIME_HMS:  Time_MD_HMS_Value  md_hms,
        TIMECFG_DATE_MD_AND_TIME_HM:   Time_MD_HMS_Value  md_hm,
        TIMECFG_DATE_MD_AND_TIME_H:    Time_MD_HMS_Value  md_h,
        TIMECFG_DATE_Y:                Time_Y_Value       year,
        TIMECFG_DATE_M:                Time_M_Value       month,
        TIMECFG_DAY_OF_YEAR:           Time_D_Value       day
};

D.3.28 Time_Y_Value

record Time_Y_Value{
        Integer year;
};

D.3.29 Time_YD_H_Value

record Time_YD_H_Value{
        Integer year;
        Integer day_of_year;
        Integer hour;
};

D.3.30 Time_YD_HM_Value

record Time_YD_HM_Value{
        Integer year;
        Integer day_of_year;
        Integer hour;
        Integer minutes;
};

D.3.31 Time_YD_HMS_Value

record Time_YD_HMS_Value{
        Integer year;
        Integer day_of_year;
        Integer hour;
        Integer minutes;
        Float   seconds;
};

D.3.32 Time_YD_Value

record Time_YD_Value{
        Integer year;
        Integer day_of_year;
};

D.3.33 Time_YMD_H_Value

record Time_YMD_H_Value{
        Integer year;
        Month   month;
        Integer day;
        Integer hour;
};

D.3.34 Time_YMD_HM_Value

record Time_YMD_HM_Value{
        Integer year;
        Month   month;
        Integer day;
        Integer hour;
        Integer minutes;
};

D.3.35 Time_YMD_HMS_Value

record Time_YMD_HMS_Value{
        Integer year;
        Month   month;
        Integer day;
        Integer hour;
        Integer minutes;
        Float   seconds;
};

D.3.36 Time_YMD_Value

record Time_YMD_Value{
        Integer year;
        Month   month;
        Integer day;
};

D.3.37 Vector

record Vector{
        float x;
        float y;
        float z;
};

D.3.38 Volume_LOD_Data

record Volume_LOD_Data(Volume_Type volume_type){
        (SPHERE:         Sphere         sphere),
        (CYLINDER:       Cylinder       cylinder),
        (PARALLELEPIPED: Parallelepiped parallelepiped)
        Location         center;
};

D.3.39 Point

record Point{
        Location location;
};

D.3.40 Line

record Line{
        Location       begin;
        Location       end;
        Edge_Direction edge_direction[*];
};

D.3.41 Arc

record Arc{
        Location       center;
        Location       begin;
        Location       end;
        Edge_Direction edge_direction[*];
};

D.3.42 Polygon

record Polygon{
        Location       vertex[*];
        Location       face_normal;
        Location       vertex_normal[*];
        Texture_UV     uv[*];
        Edge_Direction edge_direction[*];
};

D.3.43 Ellipse

record Ellipse{
        Location center;
        Location major_axis_length;
        Location minor_axis_length;
};

D.3.44 Mesh

record Mesh{
        Integer    mesh_face_count;
        Integer    maximum_vertices_per_face;
        Boolean    adjacent_face_table_present;
        Location   vertex[*];
        Location   vertex_normal[*];
        Texture_UV uv[*];
};

D.3.45 Polyhedron

record Polyhedron{
        ScriptPolygon  polygon[*];
        Face_Direction face_direction[*];
};

D.3.46 Sphere

record Sphere{
        Location bottom_center;
        Float    radius;
};

D.3.47 Cylinder

record Cylinder{
        Location bottom_center;
        Float    major_axis_radius;
        Float    minor_axis_radius;
        Float    cylinder_length;
};

D.3.48 Parallelepiped

record Parallelepiped{
        Location bottom_center;
        Float    width;
        Float    depth;
        Float    height;
};

D.3.49 Camera

record Camera{
        Camera_Projection_Type projection;
        Float                  camera_near;
        Float                  camera_far;
        Boolean                use_left_right_bottom_top;
        Float                  left;
        Float                  bottom;
        Float                  top;
        Float                  right;
        Float                  horizontal_field_of_view;
        Float                  aspect_ratio;
        Location               camera_point;
};

D.3.50 Point_Light

record Point_Light{
        Base_Positional_Light base_positional_light;
        Location              position;
        Light_Colour_Value    light_colour_value;
};

D.3.51 Spot_Light

record Spot_Light{
        Base_Positional_Light base_positional_light;
        Location              position;
        Light_Colour_Value    light_colour_value;
        Float                 horizontal_width;
        Float                 vertical_width;
};

D.3.52 Directional_Light

record Directional_Light{
        Base_Positional_Light light;
        Location              position;
        Light_Colour_Value    light_colour_value;
};

D.3.53 World_Transformation


record World_Transformation{
        Location   translation;
        Matrix_3x3 world3x3;
};

D.3.54 Local_Transformation

record Local_transformation(Local_Transformation_Step local_transformation_step){
        (ROTATION:    LSR_Transformation_Axis lsr_transformation_axis,
                      Float                   angle),
        (SCALE:       LSR_Transformation_Axis lsr_transformation_axis,
                      Float                   scale_factor),
        (TRANSLATION: LSR_Transformation_Axis lsr_transformation_axis,
                      Float                   translation_amount),
        Matrix_4x4                            local4x4;
};

D.3.55 Colour

record Colour{
        Colour_Model_Value ambient_colour_value;
};

D.3.56 Material

record Matrial{
        Primitive_Colour_Value primitive_colour_value;
        Float                  translucency;
        Float                  colour_shininess;
};

D.3.57 Rendering_Property

record Rendering_Property{
        Pixel_Fill_Method fill_method;
        Shading_Method    shading_method;
        Colour_Binding    colour_binding;
        Display_Style     style;
        Display_Side      side;
        Integer           rendering_group;
        Integer           rendering_priority;
};

D.3.58 Polygon_Texture

record Polygon_Texture{
        ScriptPolygon          polygon;
        Image_Mapping_Function image_mapping_function;
        ScriptImage assosiated_image;
};

D.3.59 Polyhedron_Texture

record Polyhedron_Texture{
        ScriptPolyhedron       polyhedron;
        Image_Mapping_Function image_mapping_function;
        Image                  assosiated_image;
};

D.3.60 Mesh_Texture

record Mesh_Texture{
        ScriptMesh             mesh;
        Image_Mapping_Function image_mapping_function;
        Image                  assosiated_image;
};

D.3.61 Blend_Directional_Light

record Blend_Directional_Light{
        Light_Rendering_Properties light_rendering_properties;
        Directional_Light          directional_light;
        Float                      upper_plane_angular_offset;
        Float                      lower_plane_angular_offset;
};

D.3.62 Cone_Directional_Light

record Cone_Directional_Light{
        Light_Rendering_Properties light_rendering_properties;
        Directional_Light          directional_light;
        Boolean                    has_plane;
        Float                      plane_angular_offset;
        Boolean                    use_full_intensity;
        Float                      minimum_colour_intensity;
        Boolean                    invisible_behind;
};

D.3.63 Pyramid_Directional_Light

record Pyramid_Directional_Light{
        Light_Rendering_Properties light_rendering_properties;
        Directional_Light          directional_light;
        Boolean                    use_full_intensity;
        Float                      minimum_colour_intensity;
        Boolean                    invisible_behind;
};

D.3.64 Moving_Light

record Moving_Light{
        Light_Rendering_Properties light_rendering_properties;
        Float                      speed;
        Float                      delay;
};

D.3.65 Cylinderical_Volume_Light

record Cylinderical_Volume_Light{
        Light_Rendering_Properties light_rendering_properties;
        Boolean                    use_full_intensity;
        Float                      minimum_colour_intensity;
        Float                      major_axis_radius;
        Float                      minor_axis_radius;
        Float                      cylinder_length;
        Location                   position;
};

D.3.66 Spherical_Volume_Light

record Spherical_Volume_Light{
        Light_Rendering_Properties light_rendering_properties;
        Boolean                    use_full_intensity;
        Float                      minimum_colour_intensity;
        Float                      radius;
        Location                   position;
};

D.3.67 Parallelepiped_Volume_Light

record Parallelepiped_Volume_Light{
        Light_Rendering_Properties light_rendering_properties;
        Boolean                    use_full_intensity;
        Float                      minimum_colour_intensity;
        Float                      width;
        Float                      depth;
        Float                      height;
        Location                   position;
};

D.3.68 Base_Structure

record Base_Structure{
        String            transmittal_name;
        Time_Significance time_significance;
        Identification    identification;
        Vector            minimum_corner;
        Vector            maximum_corner;
};

D.3.69 Colour_Group

record Colour_Group{
        Colour         colour[*];
        Identification identification;
};

D.3.70 Image_Group

record Image_Group{
        Image          image[*];
        Identification identification;
};

D.3.71 Model_Group

record Image_Group{
        Model          model[*];
        Identification identification;
};

D.3.72 Model

record Model(Template_Type template_type){
        Geometry_Representation geometry_representation;
        String                  name;
        Identification          identification;
        Local_Transformation    local_transformation;
};

D.3.73 Material_Group

record Material_Group{
        Property_Set property_set[*];
        Matrial      material[*];
};

D.3.74 Light_Rendering_Group

record Light_Rendering_Group{
        Property_Set               property_set[*];
        Light_Rendering_Properties light_rendering_properties[*];
};

D.3.75 Rendering_Property_Group


record Rendering_Property_Group{
        Property_Set             property_set[*];
        ScriptRendering_Property rendering_property[*];
};

D.3.76 Texture_Group

record Texture_Group{
        Property_Set           property_set[*];
        Image_Mapping_Function image_mapping_function[*];
};

D.3.77 Model_Instance

record Model_Instance{
        Model   model;
        Integer instance_index;
};

D.3.78 Property_Instance

record Property_Instance{
        Property_Set property_set;
        Integer      instance_index;
};

D.3.79 Colour_Instance

record Colour_Instance{
        ScriptColour_Group colour_group;
        Integer instance_  index;
};

D.3.80 LOD

record LOD(LOD_Data_Type lod_data_type){
        LOD_Data                lod_data;
        Geometry_Representation geometry_representation[*];
};

D.3.81 Time

record Time{
        Time_Significance time_significance;
        Time_Data         time_data;
};

D.3.82 Space

record Space(Template_Type geometry_representation_type){
        Boolean                    sparse;
        Integer                    column_count;
        Integer                    row_count;
        Float                      column_width;
        Float                      row_width;
        Spatial_Index_Spacing_Unit spacing_unit;
        Location                   position;
        Spatial_Index_Data         spatial_index_data[*];
};

D.3.83 Static

record Static{
        Ordering_Reason         ordering_reason;
        Geometry_Representation geometry_representation[*];
};

D.3.84 Animation

record Animation{
        Float                   period;
        Integer                 count;
        Integer                 beginning_frame;
        Integer                 ending_frame;
        Boolean                 random_beginning_frame;
        Geometry_Representation geometry_representation[*];
};

http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_TR_24788_Ed1.html