Table B.1 lists the topics of this annex.
This annex specifies the predefined abstract scripting language data types used by this Technical Report. Both enumerated and record data types are specified.
enum Colour_Binding:
CLR_BND_NORMAL,
CLR_BND_PARENT_OVERRIDE;
enum Colour_Data:
CMY_COLOUR,
HSV_COLOUR,
RGB_COLOUR;
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;
enum Display_Side:
FRONT,
BACK;
enum Display_Style:
SOLID,
WIREFRAME;
enum Edge_Direction:
FORWARD,
BACKWARD;
enum Exception_Code:
INVALID_HANDLE,
INVALID_VECTOR_TYPE,
INVALID_TEMPLATE_TYPE,
INVALID_PARAMETER;
enum Face_Direction:
FRONT,
BACK;
enum Image_Mapping_Method:
IMG_MAPNG_METH_REPLACE,
IMG_MAPNG_METH_DECAL,
IMG_MAPNG_METH_MODULATE,
IMG_MAPNG_METH_BLEND;
enum Image_Projection_Type:
IMG_PROJ_TYP_PLANAR,
IMG_PROJ_TYP_CYLINDRICAL,
IMG_PROJ_TYP_SPHERICAL;
enum Image_Wrap:
IMG_WRAP_CLAMP,
IMG_WRAP_REPEAT;
enum Local_Transformation_Axis:
TRNSFRM_AXIS_X,
TRNSFRM_AXIS_Y,
TRNSFRM_AXIS_Z,
TRNSFRM_AXIS_ALL;
enum Local_Transformation_Step:
ROTATION,
SCALE,
TRANSLATION;
enum LOD_Data_Type:
LODDATTYP_DISTANCE,
LODDATTYP_INDEX,
LODDATTYP_MAP_SCALE,
LODDATTYP_VOLUME,
LODDATTYP_SPATIAL_RESOLUTION;
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;
enum Ordering_Reason:
ORDREAS_NONE,
ORDREAS_FIXED_LISTED,
ORDREAS_LAYERED_FASTEST_RENDERING,
ORDREAS_LAYERED_HIGH_QUALITY_RENDERING,
ORDREAS_SHARED_ATTRIBUTE,
ORDREAS_VIEWER_RANGE;
enum Pixel_Fill_Method:
PXL_FILL_METH_CONSTANT,
PXL_FILL_METH_BLEND;
enum Point_Light_Display_Type:
PTLTDISPTYP_RASTER,
PTLTDISPTYP_CALLIGRAPHIC;
enum Primitive_Colour:
AMBIENT_COLOUR,
DIFFUSE_COLOUR,
SPECULAR_COLOUR,
EMISSIVE_COLOUR;
enum Season_Type:
SEASON_SPRING,
SEASON_SUMMER,
SEASON_AUTUMN,
SEASON_WINTER,
SEASON_DRY,
SEASON_WET;
enum Shading_Method:
SHADE_METH_NONE,
SHADE_METH_FLAT,
SHADE_METH_INTERPOLATED_COLOUR,
SHADE_METH_INTERPOLATED_NORMAL;
enum Spatial_Index_Spacing_Unit:
SISPACUNITS_METRE,
SISPACUNITS_ARC_SECOND;
enum Status_Code:
SUCCESS_CODE,
FAILURE_CODE;
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;
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;
enum Time_Data_Type:
TIMEDATTYP_SEASON,
TIMEDATTYP_TIME_INTERVAL,
TIMEDATTYP_TIME_OF_DAY,
TIMEDATTYP_TIME_POINT;
enum Time_Interval_Type:
ABSOLUTE_TIME_INTERVAL,
RELATIVE_TIME_INTERVAL;
enum Time_Of_Day:
TIMEOFDAY_DAWN,
TIMEOFDAY_MORNING,
TIMEOFDAY_DAY,
TIMEOFDAY_AFTERNOON,
TIMEOFDAY_DUSK,
TIMEOFDAY_EVENING,
TIMEOFDAY_NIGHT;
enum Time_Significance:
TIMESIGNIF_CREATION_DATE
TIMESIGNIF_MODIFICATION_DATE;
enum Vector_Type:
CAMERA_FORWARD_AXIS,
CAMERA_UP_AXIS,
LIGHT_DIRECTION,
FACE_NORMAL,
MAJOR_AXIS,
MINOR_AXIS,
MOVEMENT_DIRECTION,
PARALLELEPIPED_EDGE_DIRECTION,
VERTICAL_AXIS;
enum Volume_Type:
SPHERE,
CYLINDER,
PARALLELEPIPED;
record Base_Positional_Light{
Light_Source light_source;
Float radius;
Float constant_attenuation_factor;
Float linear_attenuation_factor;
Float quadratic_attenuation_factor;
};
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)
};
record Directional_Light{
Float horizontal_width;
Float vertical_width;
Location position;
};
record Distance_LOD_Data{
Float minimum_range;
Float minimum_fade_band;
Float maximum_range;
Float maximum_fade_band;
};
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)
};
record Identification{
String abstract;
String purpose;
String credit[*];
String supplemental_information;
};
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;
};
record Light_Colour_Value{
Colour_Model_Value ambient_colour_value,
Colour_Model_Value diffuse_colour_value,
Colour_Model_Value specular_colour_value,
};
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;
};
record Light_Source{
Boolean apply_to_children;
Boolean override_positional_lights;
Boolean override_infinite_lights;
Boolean active_light_value;
};
record Location{
Float x;
Float y;
Float z;
};
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)
};
record Matrix_3x3{
Float mat[3][3];
};
record Matrix_4x4{
Float mat[4][4];
};
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
};
record Property_Set{
Integer primary_table_index;
Integer table_size;
String table_usage;
Boolean regular;
Identification identification;
};
record Season(Time_Interval_Type time_interval_type){
Season_Type season_type;
Time_Interval time_interval;
};
record Spatial_Index_Data{
Integer row_index;
Integer column_index;
Geometry_Representation geometry_representation[*];
};
record Spatial_Resolution_LOD_Data{
Float spatial_resolution;
Spatial_Index_Spacing_Unit unit;
};
record Texture_UV{
Float u;
Float v;
};
record Time_D_Value{
Integer day;
};
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);
};
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)
};
record Time_M_Value{
Month month;
};
record Time_MD_H_Value{
Month month;
Integer day;
Integer hour;
};
record Time_MD_HM_Value{
Month month;
Integer day;
Integer hour;
Integer minutes;
};
record Time_MD_HMS_Value{
Month month;
Integer day;
Integer hour;
Integer minutes;
Float seconds;
};
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
};
record Time_Y_Value{
Integer year;
};
record Time_YD_H_Value{
Integer year;
Integer day_of_year;
Integer hour;
};
record Time_YD_HM_Value{
Integer year;
Integer day_of_year;
Integer hour;
Integer minutes;
};
record Time_YD_HMS_Value{
Integer year;
Integer day_of_year;
Integer hour;
Integer minutes;
Float seconds;
};
record Time_YD_Value{
Integer year;
Integer day_of_year;
};
record Time_YMD_H_Value{
Integer year;
Month month;
Integer day;
Integer hour;
};
record Time_YMD_HM_Value{
Integer year;
Month month;
Integer day;
Integer hour;
Integer minutes;
};
record Time_YMD_HMS_Value{
Integer year;
Month month;
Integer day;
Integer hour;
Integer minutes;
Float seconds;
};
record Time_YMD_Value{
Integer year;
Month month;
Integer day;
};
record Vector{
float x;
float y;
float z;
};
record Volume_LOD_Data(Volume_Type volume_type){
(SPHERE: Sphere sphere),
(CYLINDER: Cylinder cylinder),
(PARALLELEPIPED: Parallelepiped parallelepiped)
Location center;
};
record Point{
Location location;
};
record Line{
Location begin;
Location end;
Edge_Direction edge_direction[*];
};
record Arc{
Location center;
Location begin;
Location end;
Edge_Direction edge_direction[*];
};
record Polygon{
Location vertex[*];
Location face_normal;
Location vertex_normal[*];
Texture_UV uv[*];
Edge_Direction edge_direction[*];
};
record Ellipse{
Location center;
Location major_axis_length;
Location minor_axis_length;
};
record Mesh{
Integer mesh_face_count;
Integer maximum_vertices_per_face;
Boolean adjacent_face_table_present;
Location vertex[*];
Location vertex_normal[*];
Texture_UV uv[*];
};
record Polyhedron{
ScriptPolygon polygon[*];
Face_Direction face_direction[*];
};
record Sphere{
Location bottom_center;
Float radius;
};
record Cylinder{
Location bottom_center;
Float major_axis_radius;
Float minor_axis_radius;
Float cylinder_length;
};
record Parallelepiped{
Location bottom_center;
Float width;
Float depth;
Float height;
};
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;
};
record Point_Light{
Base_Positional_Light base_positional_light;
Location position;
Light_Colour_Value light_colour_value;
};
record Spot_Light{
Base_Positional_Light base_positional_light;
Location position;
Light_Colour_Value light_colour_value;
Float horizontal_width;
Float vertical_width;
};
record Directional_Light{
Base_Positional_Light light;
Location position;
Light_Colour_Value light_colour_value;
};
record World_Transformation{
Location translation;
Matrix_3x3 world3x3;
};
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;
};
record Colour{
Colour_Model_Value ambient_colour_value;
};
record Matrial{
Primitive_Colour_Value primitive_colour_value;
Float translucency;
Float colour_shininess;
};
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;
};
record Polygon_Texture{
ScriptPolygon polygon;
Image_Mapping_Function image_mapping_function;
ScriptImage assosiated_image;
};
record Polyhedron_Texture{
ScriptPolyhedron polyhedron;
Image_Mapping_Function image_mapping_function;
Image assosiated_image;
};
record Mesh_Texture{
ScriptMesh mesh;
Image_Mapping_Function image_mapping_function;
Image assosiated_image;
};
record Blend_Directional_Light{
Light_Rendering_Properties light_rendering_properties;
Directional_Light directional_light;
Float upper_plane_angular_offset;
Float lower_plane_angular_offset;
};
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;
};
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;
};
record Moving_Light{
Light_Rendering_Properties light_rendering_properties;
Float speed;
Float delay;
};
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;
};
record Spherical_Volume_Light{
Light_Rendering_Properties light_rendering_properties;
Boolean use_full_intensity;
Float minimum_colour_intensity;
Float radius;
Location position;
};
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;
};
record Base_Structure{
String transmittal_name;
Time_Significance time_significance;
Identification identification;
Vector minimum_corner;
Vector maximum_corner;
};
record Colour_Group{
Colour colour[*];
Identification identification;
};
record Image_Group{
Image image[*];
Identification identification;
};
record Image_Group{
Model model[*];
Identification identification;
};
record Model(Template_Type template_type){
Geometry_Representation geometry_representation;
String name;
Identification identification;
Local_Transformation local_transformation;
};
record Material_Group{
Property_Set property_set[*];
Matrial material[*];
};
record Light_Rendering_Group{
Property_Set property_set[*];
Light_Rendering_Properties light_rendering_properties[*];
};
record Rendering_Property_Group{
Property_Set property_set[*];
ScriptRendering_Property rendering_property[*];
};
record Texture_Group{
Property_Set property_set[*];
Image_Mapping_Function image_mapping_function[*];
};
record Model_Instance{
Model model;
Integer instance_index;
};
record Property_Instance{
Property_Set property_set;
Integer instance_index;
};
record Colour_Instance{
ScriptColour_Group colour_group;
Integer instance_ index;
};
record LOD(LOD_Data_Type lod_data_type){
LOD_Data lod_data;
Geometry_Representation geometry_representation[*];
};
record Time{
Time_Significance time_significance;
Time_Data time_data;
};
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[*];
};
record Static{
Ordering_Reason ordering_reason;
Geometry_Representation geometry_representation[*];
};
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