The table of contents contained in Table 5.1 lists each of the data types used by SEDRIS.
This clause specifies the fundamental data types used within SEDRIS 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.3 DRM class specifications use the fundamental data types as the building blocks for creating SEDRIS objects. The API specified in 7 Application program interface (API) uses both the data types and data class specifications to pass information between the application program and the SEDRIS transmittal.
More complex data types are formed from simple data types. These simple data types represent single pieces of information such as numbers, alphanumeric characters including strings of these, Booleans and other individual data constructs.
There are two basic categories of numbers that are represented in the fundamental data types. These are integer numbers and floating point numbers.
Several data types for integer numbers are provided. There are both general integer and non-negative integer data types. These are intended to correspond to signed and unsigned integer data types in programming languages. The following represent the three general integer data types:
Byte
Short_Integer
Integer
The following are the corresponding non-negative integer data types:
Byte_Unsigned
Short_Integer_Unsigned
Integer_Unsigned
The following are the corresponding positive integer data types:
Byte_Positive
Short_Integer_Positive
Integer_Positive
All implementations that conform to this standard shall support at least the minimum range specified in Table 5.2.
Table 5.2 — Minimum value ranges for integer data types
Data type |
Value range |
---|---|
Byte |
[-127, 127] |
Byte_Unsigned |
[0, 255] |
Byte_Positive |
[1, 255] |
Short_Integer |
[-32767, 32767] |
Short_Integer_Unsigned |
[0, 65535] |
Short_Integer_Positive |
[1, 65535] |
Integer |
[-2147483647, 2147483647] |
Integer_Unsigned |
[0, 4294967295] |
Integer_Positive |
[1, 4294967295] |
There is one numeric data type specified in 2.[I18025] that is used in this standard:
EDCS_Integer
This data type is equivalent to the Integer data type specified above.
There are two precisions of floating point numbers specified as fundamental data types:
Float
Long_Float
These correspond to the single and double precision floating point types specified by IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems (see 2.[IEC60559]). 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.
Alphanumeric characters are encoded as UTF-8 as specified in ISO/IEC 10646-1 (otherwise known as Unicode—see 2.[I10646-1]). UTF-8 supports Latin characters as specified in ISO/IEC 646 but also has the ability of representing international characters. Each character is comprised of 1 through 6 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.278).
The fundamental data type for representing characters is:
Character
The String data type is not a basic fundamental data type. Instead, it is a structured fundamental data type as specified in 5.3.3.278 String.
Enumerated data types are fundamental data types whose values are specified from an ordered list of names. 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 SEDRIS are specified below.
This data type is used to specify the mode in which a SEDRIS transmittal can be accessed. The supported access modes are shown in Table 5.3:
Table 5.3 — 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 content. |
Access_Mode ::= (
READ_ONLY,
UPDATE,
CREATE )
Boolean data types have two values: FALSE and TRUE. The fundamental data type for representing a Boolean value is shown in Table 5.4:
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 )
This data type specifies how to evaluate the field values of a given branch’s link object where that link object itself specifies a range of values. This data type is used when evaluating the branches of a <DRM Aggregate Feature> or <DRM Aggregate Geometry> instance. Valid values are described in Table 5.5.
Table 5.5 — Branch_Range_Matching values
Value |
Description |
---|---|
EXACT |
For a match to be successful, the search branch shall match exactly the found branch. |
FULL_CONTAINMENT |
For a match to be successful, the search branch shall be completely contained within the found branch. |
INTERSECTION |
For a match to be successful, the search branch shall intersect the found branch. |
Branch_Range_Matching ::= (
EXACT,
FULL_CONTAINMENT,
INTERSECTION )
This data type specifies the colour inheritance/overload rule. Allowable values for Colour_Binding are specified in Table 5.6.
Table 5.6 — Colour_Binding values
Value |
Description |
---|---|
NORMAL |
The colour of a geometry attribute is specified as the default SEDRIS attribute binding. Attributes specified by a component will overload its parent (i.e., the last colour wins). |
PARENT_OVERRIDE |
This setting allows the given <DRM Geometry> instance to override the default SEDRIS attribute binding; that is, to override any <DRM Colour> instances specified by objects in its component tree. |
Colour_Binding ::= (
NORMAL,
PARENT_OVERRIDE )
This data type specifies which level (or levels) of detail are to be traversed. Valid values are described in Table 5.7.
Table 5.7 — 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 )
This data type specifies whether the classes of <DRM Aggregate Feature> and <DRM Aggregate Geometry> instances and their components are included or excluded. Valid values are described in Table 5.8.
Table 5.8 — 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 )
This data type indicates the level of implementation of IDs. Valid values are described in Table 5.9.
Table 5.9 — ID_Implementation_Level values
Value |
Description |
---|---|
NONE |
No IDs are provided. |
UNIQUE |
IDs that are unique between the opening and closing of a transmittal are provided. |
UNIQUE_AND_PERSISTENT |
Unique and persistent IDs are provided. |
ID_Implementation_Level ::= (
NONE,
UNIQUE,
UNIQUE_AND_PERSISTENT )
This data type specifies the manner in which an image layer is to be scanned. Table 5.10 specifies the allowable values and the corresponding scan directions.
Table 5.10 — 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 |
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 X direction and H image elements in the Y direction.
EXAMPLE A scan direction of RIGHT_UP means that the image data is stored such that the first image element in memory corresponds to the (0 0) coordinate of this 2D space, and the next image elements should be displayed on the positively increasing X axis (the minor scan), until W image elements are displayed (W 0). The next image element will correspond to the (0 1) coordinate of the 2D space. Once the image element (W 1) is reached, the scan direction will continue to move from bottom to top on the positively increasing Y axis, for each successive scan line, until H lines have been accessed.
Image_Scan_Direction ::= (
RIGHT_UP,
RIGHT_DOWN,
DOWN_RIGHT,
DOWN_LEFT,
LEFT_UP,
LEFT_DOWN,
UP_RIGHT,
UP_LEFT )
This data type specifies the manner in which image depth is to be scanned. Table 5.11 specifies the allowable values and corresponding scan direction.
Table 5.11 — 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 |
Following the example in 5.2.4.9 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.4.9 Image_Scan_Direction are displayed starting at Z=0 and in the direction of the positive Z axis.
Image_Scan_Direction_Z ::= (
Z_NONE,
Z_BACK,
Z_FRONT )
This data type specifies how identified objects relate to the search boundary. Valid values are described in Table 5.12
Table 5.12 —Inclusion_Choice 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.
Inclusion_Choice ::= (
FULLY_INCLUDED,
PARTIALLY_INCLUDED )
This data type specifies the type of interval for the various interval data types. Valid values are described in Table 5.13.
Table 5.13 — Interval_Type values
Value |
Description |
---|---|
OPEN |
The interval does not include the value at each end of the interval. |
CLOSED |
The interval includes the value at each end of the interval. |
LOWER_CLOSED_UPPER_OPEN |
The end value of lowest value is included but the end value of highest value is not included. |
UPPER_CLOSED_LOWER_OPEN |
The end value of lowest value is not included but the end value of highest value is included. |
Interval_Type ::= (
OPEN,
CLOSED,
LOWER_CLOSED_UPPER_OPEN,
UPPER_CLOSED_LOWER_OPEN )
This data type specifies the desired traversal for an iterator or function when an Inter-Transmittal Reference (ITR) is encountered as specified in Table 5.14.
Table 5.14 — ITR_Behaviour values
Value |
Description |
---|---|
RESOLVE |
Automatically resolve ITR references as they are encountered. A SEDRIS transmittal that has been opened in this way cannot be updated. The transmittal shall be explicitly opened for writing or modification to do this. |
REPORT |
Any 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 )
This data type specifies which axis to rotate around, scale by, or translate along. Allowable values are specified in Table 5.15.
Table 5.15 — LSR_Transformation_Axis values
Value |
Description |
---|---|
X |
The X axis is the axis around which a rotation is computed and along which a scale or translation is computed. |
Y |
The Y axis is the axis around which a rotation is computed and along which a scale or translation is computed. |
Z |
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 ::= (
X,
Y,
Z,
ALL,
AXIS_REFERENCE_VECTOR )
This data type specifies how a <DRM Model> is referenced within a transmittal. Valid values are described in Table 5.16.
Table 5.16 — Model_Reference_Type values
Value |
Description |
---|---|
COMPONENT |
The <DRM Model> can be referenced only as a component of other <DRM Model>s. In this case, the <DRM Model> cannot be referenced directly from <DRM Environment Root>. |
ROOT |
The <DRM Model> cannot be instanced by any other <DRM Model>. In this case, the <DRM Model> can be referenced from an <DRM Environment Root>. |
ROOT_AND_COMPONENT |
The <DRM Model> can be instanced both by other <DRM Model>s and from a <DRM Environment Root>. |
Model_Reference_Type ::= (
COMPONENT,
ROOT,
ROOT_AND_COMPONENT )
Month data types represent each month of the calendar year. Valid values are described in Table 5.17.
Value |
Description |
---|---|
JANUARY |
The time period in question is in January. |
FEBRUARY |
The time period in question is in February. |
MARCH |
The time period in question is in March. |
APRIL |
The time period in question is in April. |
MAY |
The time period in question is in May. |
JUNE |
The time period in question is in June. |
JULY |
The time period in question is in July. |
AUGUST |
The time period in question is in August. |
SEPTEMBER |
The time period in question is in September. |
OCTOBER |
The time period in question is in October. |
NOVEMBER |
The time period in question is in November. |
DECEMBER |
The time period in question is in December. |
Month ::= (
JANUARY,
FEBRUARY,
MARCH,
APRIL,
MAY,
JUNE,
JULY,
AUGUST,
SEPTEMBER,
OCTOBER,
NOVEMBER,
DECEMBER )
This data type indicates which octant contains the data of interest. It is used by <DRM Octant Data> to specify which octant of an oct tree is represented by the associated <DRM Feature Hierarchy> (for an <DRM Octant Related Features>) or <DRM Geometry Hierarchy> (for an <DRM Octant Related Geometry>).
The identification of the octants is as shown in Figure 5.3 with the naming convention being in respect to a viewer at point “f” directly facing point “h”. Additional information may be found in [SAMET].
Octant ::= (
UPPER_LEFT_FRONT,
UPPER_LEFT_BACK,
LOWER_LEFT_FRONT,
LOWER_LEFT_BACK,
UPPER_RIGHT_FRONT,
UPPER_RIGHT_BACK,
LOWER_RIGHT_FRONT,
LOWER_RIGHT_BACK )
This data type specifies the form of the display used to render a set of points of light. Valid values are described in Table 5.18.
Table 5.18 — 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 )
This data type specifies whether certain items are present within one or more <DRM Environment Root>s and/or one or more <DRM Model>s within the scope of a <DRM Transmittal Root> being described. Valid values are described in Table 5.19.
Table 5.19 — 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>s and one or more <DRM Model>instances. |
Present_In ::= (
NONE,
ENVIRONMENT_ROOT,
MODELS,
ENVIRONMENT_ROOT_AND_MODELS )
This data type is used by <DRM Quadrant Data> to specify which quadrant of a quad tree is represented by the associated <DRM Feature Hierarchy> (for a <DRM Quadrant Related Features>) or <DRM Geometry Hierarchy> (for a <DRM Quadrant Related Geometry>).
The identification of the quadrants is as shown in Figure 5.3 with the naming convention being in respect to a viewer at point “c” directly facing point “d”. Additional information may be found in [SAMET].
Quadrant ::= (
LEFT_FRONT,
LEFT_BACK,
RIGHT_FRONT,
RIGHT_BACK )
This data type is used by a <DRM Reference Surface> to specify exactly one element from a ray/surface intersection set. Valid values are described in Table 5.20.
The elevation resolution process for a <DRM Location 2D> is as follows.
A given <DRM Location 2D> corresponds to the (unique) ray which is:
The intersection of this ray with the resolution surface specifies the corresponding <DRM Location 3D>. This assumes, however, that the ray/surface intersection set contains exactly one element. In the case when the intersection set contains more than one intersection element as shown in Figure 5.5, the Reference_Surface_Elevation_Select value specifies which element to choose from that set.
Table 5.20 — Reference_Surface_Elevation_Select values
Value |
Description |
---|---|
CLOSEST_TO_ORM_CENTRE |
The intersection element to use is the one closest to the object reference model centre. |
CLOSEST_TO_VERTICAL_DATUM |
The intersection element to use is the one closest to the vertical datum. |
HIGHEST |
The intersection element to use is the one with the highest value. |
Reference_Surface_Elevation_Select ::= (
CLOSEST_TO_ORM_CENTRE,
CLOSEST_TO_VERTICAL_DATUM,
HIGHEST )
This data type is used by a <DRM Reference Surface> whose associated <DRM Geometry Hierarchy> contains <DRM Level Of Detail Related Geometry> to select which branch of the <DRM Level Of Detail Related Geometry> is to be used to resolve <DRM Location 2D> objects, when more than one branch could apply to a given <DRM Location 2D>. This data type is not used for <DRM Continuous Level Of Detail Related Geometry>. Valid values are described in Table 5.21.
Table 5.21 — Reference_Surface_LOD_Select values
Value |
Description |
---|---|
FULL |
The full resolution level is used to resolve the object. |
LEAST_DETAILED |
The least detailed resolution is used to resolve the object. |
Reference_Surface_LOD_Select ::= (
FULL,
LEAST_DETAILED )
This data type is used to specify the function results of API functions. The supported values are shown in Table 5.22.
Table 5.22 — Return_Code values
Value |
Description |
---|---|
FAILED |
The function failed to carry out the operation. |
SUCCEEDED |
The function successfully carried out the operation. |
Return_Code ::= (
FAILED,
SUCCEEDED )
This data type specifies whether a spatial search area has full or partial closure. Partial closure allows the search area to be part of a tessellation; it can then be guaranteed that any single point is inside a unique component of the tessellation. Valid values are described in Table 5.23.
Table 5.23 — Search_Bounds_Closure values
Value |
Description |
---|---|
FULLY_CLOSED |
The spatial search area is fully closed. |
PARTIAL |
The spatial search area is partially closed. |
Search_Bounds_Closure ::= (
FULLY_CLOSED,
PARTIAL )
This data type specifies whether a search will return two-dimensional objects, if they are present. To ignore <DRM Location 2D> instances, search dimension value THREE_DIMENSIONAL_ONLY should be specified. All other searches consider <DRM Location 2D> instances in evaluating 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 should be specified. All other searches will consider the “height” components of <DRM Location 3D> instances when evaluating them. Valid values are described in Table 5.24.
Table 5.24 — Search_Dimension values
Value |
Description |
---|---|
TWO_DIMENSIONAL |
Only two-dimensional objects will be returned. |
THREE_DIMENSIONAL_ONLY |
Only three-dimensional objects will be returned. |
TWO_DIMENSIONAL_OR_THREE_DIMENSIONAL |
Both two-dimensional and three-dimensional objects will be returned. |
Search_Dimension ::= (
TWO_DIMENSIONAL,
THREE_DIMENSIONAL_ONLY,
TWO_DIMENSIONAL_OR_THREE_DIMENSIONAL )
This data type specifies seasons of the year. Seasons may be divided either into four seasons or two seasons depending on the region. Valid values are described in Table 5.25.
Value |
Description |
---|---|
SPRING |
The time period is in Spring. |
SUMMER |
The time period is in Summer. |
AUTUMN |
The time period is in Autumn. |
WINTER |
The time period is in Winter. |
DRY |
The time period is in the dry season. |
WET |
The time period is in the wet season. |
Season ::= (
SPRING,
SUMMER,
AUTUMN,
WINTER,
DRY,
WET )
This data type specifies the desired traversal order for various types of components that already have a logical ordering. Valid values are described in Table 5.26.
Table 5.26 — 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 )
This data type specifies the behaviour state control when there is a state value that is not supported in the <DRM State Data> of a <DRM State Related Features> or <DRM State Related Geometry>. Allowable values are specified in Table 5.27.
Table 5.27 — State_Mismatch_Behaviour values
Value |
Description |
---|---|
LAST |
Remain on last state. |
DEFAULT |
Use the default state. |
NONE |
Display nothing, like an off switch. |
State_Mismatch_Behaviour ::= (
LAST,
DEFAULT,
NONE )
This data type enumerates various times of day. Allowable values are described in Table 5.28.
Table 5.28 — Time_Of_Day values
Value |
Description |
---|---|
DAWN |
The time period is at dawn. |
MORNING |
The time period is in the morning. |
DAY |
The time period is during the day. |
AFTERNOON |
The time period is in the afternoon. |
DUSK |
The time period is at dusk. |
EVENING |
The time period is in the evening. |
NIGHT |
The time period is at night. |
Time_Of_Day ::= (
DAWN,
MORNING,
DAY,
AFTERNOON,
DUSK,
EVENING,
NIGHT )
Selection data types are similar to enumerated data types but do not form a closed end set of entries. Selection data types are all specified to be of type Short_Integer but with specific meanings attached to each value. The set of selections can be augmented by assigning meanings to additional values. Standardization of additional meanings may occur through amendment to this standard or through registration. 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. Standard names for the meanings are specified for clarity. Such names are presented below in upper case.
Non-standard meanings provided by an implementation shall be assigned to negative values. Use of such non-standard meanings in a transmittal indicates that that transmittal does not conform to this part of ISO/IEC 18023. These values are made available solely to test new concepts prior to standardization or registration.
This data type specifies the position of a <DRM Regular Axis> with respect to the axis interval. Allowable values are in Table 5.29.
Table 5.29 — Axis_Alignment values
Value |
Description |
---|---|
NONE |
Tick mark is representative of all points in the interval, and thus has no particular alignment with respect to the interval. |
LOWER |
Tick mark is representative of the lower interval value. |
MEDIAN |
Tick mark is representative of the median value of the interval. |
UPPER |
Tick mark is representative of the upper interval value. |
GEOMETRIC_MEAN |
Tick mark is representative of the geometric mean of the interval values. This kind of axis alignment is intended for use primarily with GEOMETRIC spacing. |
Axis_Alignment ::= (
< 1 : implementation dependent,
1 : NONE,
2 : LOWER,
3 : MEDIAN,
4 : UPPER,
5 : GEOMETRY_MEAN,
[6,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of projection to be used when viewing a scene. Valid values are described in Table 5.30.
Table 5.30 — Camera_Projection_Type values
Value |
Description |
---|---|
ORTHOGRAPHIC |
The projection is a parallel projection in which the projection direction is perpendicular to the direction of the view. |
PERSPECTIVE |
The projection is a perspective projection in which all projectors converge to a single point at the viewer. |
Camera_Projection_Type ::= (
< 1 : implementation dependent,
1 : ORTHOGRAPHIC,
2 : PERSPECTIVE,
[3,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data specifies the role of the responsible party and is specified in ISO 19115 (see [I19115]).
This data type specifies how colour is applied to an object. The various methods are applied as follows:
Distance blend colour is used to model the distortion of colour due to distance from the viewer. (For instance, mountains in the distance appear to be tinted blue, an effect that increases with increasing distance as long as the mountains are still visible.) This is applicable mainly to objects organized by <DRM Distance Level Of Detail Data> (i.e., distance from the viewer) in level of detail related aggregations, since the distance that the object is visible shall be finite. The equation to determine the desired component of the final displayed colour is:
C = PCC*((x-y)/y) + DBCC×(x/y)
where
x is the distance to the object.
y is the total distance that the object is visible.
PCC is the colour of the PRIMARY_COLOUR <DRM Colour> component.
DBCC is the colour of the DISTANCE_BLEND_COLOUR <DRM Colour> component.
Distance blend colour dominates more as viewing distance increases, while primary colour dominates more as viewing distance decreases.
Image blend colour helps determine the appearance of an object that has both a <DRM Colour> and an <DRM Image Mapping Function> whose image_mapping_method is set to blending.
Valid values are described in Table 5.31.
Table 5.31 — Colour_Mapping values
Value |
Description |
---|---|
FRONT_PRIMARY |
The front of the object is coloured with the primary colour, when the object’s appearance is not affected by texture maps or viewing distance (that is, distance from the observer to the object). |
FRONT_DISTANCE_BLEND |
The front of the object is coloured using a distance blend algorithm as described above. |
FRONT_IMAGE_BLEND |
The front of the object is coloured using an image blend algorithm as described above. |
BACK_PRIMARY |
The back of the object is coloured with the primary colour, when the object’s appearance is not affected by texture maps or viewing distance (that is, distance from the observer to the object). |
BACK_DISTANCE_BLEND |
The back of the object is coloured with a distance blend algorithm as described above. |
BACK_IMAGE_BLEND |
The back of the object is coloured using an image blend algorithm as described above. |
PRIMARY_LIGHT_RENDERING_BEHAVIOUR |
The object is coloured using the primary colour of the associated <DRM Light Rendering Behaviour>. It cannot be combined with any other colour mapping. |
SECONDARY_LIGHT_RENDERING_BEHAVIOUR |
The object is coloured using the secondary colour of the associated <DRM Light Rendering Behaviour>. It cannot be combined with any other colour mapping. |
Colour_Mapping ::= (
< 1 : implementation dependent,
1 : FRONT_PRIMARY,
2 : FRONT_DISTANCE_BLEND,
3 : FRONT_IMAGE_BLEND,
4 : BACK_PRIMARY,
5 : BACK_DISTANCE_BLEND,
6 : BACK_IMAGE_BLEND,
7 : PRIMARY_LIGHT_RENDERING_BEHAVIOUR,
8 : SECONDARY_LIGHT_RENDERING_BEHAVIOUR,
[9,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies a colour model. Valid values are described in Table 5.32.
Table 5.32 — 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,
1 : RGB,
2 : CMY,
3 : HSV,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type enumerates all types of DRM classes supported by SEDRIS.
DRM_Class ::= (
< 1 : implementation dependent,
1 : NULL,
2 : DRM_2D_LOCATION,
3 : DRM_3D_LOCATION,
4 : DRM_ABSOLUTE_TIME,
5 : DRM_ABSOLUTE_TIME_INTERVAL,
6 : DRM_ACCESS,
7 : DRM_AGGREGATE_FEATURE,
8 : DRM_AGGREGATE_GEOMETRY,
9 : DRM_ALTERNATE_HIERARCHY_RELATED_FEATURES,
10 : DRM_ALTERNATE_HIERARCHY_RELATED_GEOMETRY,
11 : DRM_AMBIENT_COLOUR,
12 : DRM_ANIMATION_BEHAVIOUR,
13 : DRM_ANIMATION_RELATED_GEOMETRY,
14 : DRM_ARC,
15 : DRM_AREAL_FEATURE,
16 : DRM_ATTACHMENT_POINT,
17 : DRM_AXIS,
18 : DRM_AZ_2D_LOCATION,
19 : DRM_BASE_LEVEL_OF_DETAIL_DATA,
20 : DRM_BASE_POSITIONAL_LIGHT,
21 : DRM_BASE_SUMMARY_ITEM,
22 : DRM_BASE_TIME_DATA,
23 : DRM_BLEND_DIRECTIONAL_LIGHT,
24 : DRM_BOUNDING_VOLUME,
25 : DRM_BROWSE_MEDIA,
26 : DRM_CAMERA_POINT,
27 : DRM_CC_3D_LOCATION,
28 : DRM_CD_3D_LOCATION,
29 : DRM_CD_SURFACE_LOCATION,
30 : DRM_CITATION,
31 : DRM_CLASSIFICATION_DATA,
32 : DRM_CLASSIFICATION_RELATED_FEATURES,
33 : DRM_CLASSIFICATION_RELATED_GEOMETRY,
34 : DRM_CM_3D_LOCATION,
35 : DRM_CMY_COLOUR,
36 : DRM_CMY_COLOUR_CONTROL_LINK,
37 : DRM_COLLISION_VOLUME,
38 : DRM_COLOUR,
39 : DRM_COLOUR_DATA,
40 : DRM_COLOUR_INDEX,
41 : DRM_COLOUR_INDEX_CONTROL_LINK,
42 : DRM_COLOUR_SHININESS,
43 : DRM_COLOUR_TABLE,
44 : DRM_COLOUR_TABLE_GROUP,
45 : DRM_COLOUR_TABLE_LIBRARY,
46 : DRM_CONE_DIRECTIONAL_LIGHT,
47 : DRM_CONFORMAL_BEHAVIOUR,
48 : DRM_CONTACT_POINT,
49 : DRM_CONTINUOUS_LEVEL_OF_DETAIL_RELATED_GEOMETRY,
50 : DRM_CONTROL_LINK,
51 : DRM_CROSS_REFERENCE,
52 : DRM_CYLINDRICAL_VOLUME_EXTENT,
53 : DRM_DATA_QUALITY,
54 : DRM_DATA_TABLE,
55 : DRM_DATA_TABLE_LIBRARY,
56 : DRM_DESCRIPTION,
57 : DRM_DIFFUSE_COLOUR,
58 : DRM_DIRECTIONAL_LIGHT_BEHAVIOUR,
59 : DRM_DISTANCE_LEVEL_OF_DETAIL_DATA,
60 : DRM_DRM_CLASS_SUMMARY_ITEM,
61 : DRM_EC_AUGMENTED_3D_LOCATION,
62 : DRM_EC_SURFACE_LOCATION,
63 : DRM_EDCS_USE_SUMMARY_ITEM,
64 : DRM_EDGE_DIRECTION,
65 : DRM_EI_3D_LOCATION,
66 : DRM_ELLIPSE,
67 : DRM_ELLIPTIC_CYLINDER,
68 : DRM_EMISSIVE_COLOUR,
69 : DRM_ENUMERATION_AXIS,
70 : DRM_ENVIRONMENTAL_DOMAIN_SUMMARY,
71 : DRM_ENVIRONMENT_ROOT,
72 : DRM_EXPRESSION,
73 : DRM_FACE_DIRECTION,
74 : DRM_FADE_RANGE,
75 : DRM_FEATURE,
76 : DRM_FEATURE_EDGE,
77 : DRM_FEATURE_FACE,
78 : DRM_FEATURE_FACE_RING,
79 : DRM_FEATURE_HIERARCHY,
80 : DRM_FEATURE_MODEL,
81 : DRM_FEATURE_MODEL_INSTANCE,
82 : DRM_FEATURE_NODE,
83 : DRM_FEATURE_TOPOLOGY,
84 : DRM_FEATURE_TOPOLOGY_HIERARCHY,
85 : DRM_FEATURE_VOLUME,
86 : DRM_FEATURE_VOLUME_SHELL,
87 : DRM_FINITE_ELEMENT_MESH,
88 : DRM_FLASHING_LIGHT_BEHAVIOUR,
89 : DRM_FUNCTION,
90 : DRM_GEOMETRIC_CENTRE,
91 : DRM_GEOMETRY,
92 : DRM_GEOMETRY_EDGE,
93 : DRM_GEOMETRY_FACE,
94 : DRM_GEOMETRY_HIERARCHY,
95 : DRM_GEOMETRY_MODEL,
96 : DRM_GEOMETRY_MODEL_INSTANCE,
97 : DRM_GEOMETRY_NODE,
98 : DRM_GEOMETRY_TOPOLOGY,
99 : DRM_GEOMETRY_TOPOLOGY_HIERARCHY,
100 : DRM_GEOMETRY_VOLUME,
101 : DRM_GRID_OVERLAP,
102 : DRM_HAEC_3D_LOCATION,
103 : DRM_HEEC_3D_LOCATION,
104 : DRM_HEEQ_3D_LOCATION,
105 : DRM_HIERARCHY_DATA
106 : DRM_HIERARCHY_SUMMARY_ITEM,
107 : DRM_HSV_COLOUR,
108 : DRM_HSV_COLOUR_CONTROL_LINK,
109 : DRM_ICON,
110 : DRM_IMAGE,
111 : DRM_IMAGE_ANCHOR,
112 : DRM_IMAGE_LIBRARY,
113 : DRM_IMAGE_LOOKUP,
114 : DRM_IMAGE_MAPPING_FUNCTION,
115 : DRM_INDEX_LEVEL_OF_DETAIL_DATA,
116 : DRM_INFINITE_LIGHT,
117 : DRM_INLINE_COLOUR,
118 : DRM_IN_OUT,
119 : DRM_INTERFACE_TEMPLATE,
120 : DRM_INTERVAL_AXIS,
121 : DRM_IRREGULAR_AXIS,
122 : DRM_KEYWORDS,
123 : DRM_LABEL,
124 : DRM_LCC_AUGMENTED_3D_LOCATION,
125 : DRM_LCC_SURFACE_LOCATION,
126 : DRM_LEVEL_OF_DETAIL_RELATED_FEATURES,
127 : DRM_LEVEL_OF_DETAIL_RELATED_GEOMETRY,
128 : DRM_LIBRARY,
129 : DRM_LIGHT_RENDERING_BEHAVIOUR,
130 : DRM_LIGHT_RENDERING_PROPERTIES,
131 : DRM_LIGHT_RENDERING_PROPERTIES_CONTROL_LINK,
132 : DRM_LIGHT_SOURCE,
133 : DRM_LIGHT_SOURCE_CONTROL_LINK,
134 : DRM_LINE,
135 : DRM_LINEAGE,
136 : DRM_LINEAR_FEATURE,
137 : DRM_LINEAR_GEOMETRY,
138 : DRM_LITERAL,
139 : DRM_LOBE_DATA,
140 : DRM_LOCAL_4X4,
141 : DRM_LOCATION,
142 : DRM_LSR_2D_LOCATION,
143 : DRM_LSR_3D_LOCATION,
144 : DRM_LSR_3D_LOCATION_CONTROL_LINK,
145 : DRM_LSR_TRANSFORMATION,
146 : DRM_LSR_TRANSFORMATION_STEP,
147 : DRM_LTAS_3D_LOCATION,
148 : DRM_LTAS_SURFACE_LOCATION,
149 : DRM_LTC_3D_LOCATION,
150 : DRM_LTC_SURFACE_LOCATION,
151 : DRM_LTE_3D_LOCATION,
152 : DRM_LTE_SURFACE_LOCATION,
153 : DRM_M_AUGMENTED_3D_LOCATION,
154 : DRM_M_SURFACE_LOCATION,
155 : DRM_MAP_SCALE_LEVEL_OF_DETAIL_DATA,
156 : DRM_MESH_FACE_TABLE,
157 : DRM_MODEL,
158 : DRM_MODEL_INSTANCE_TEMPLATE_INDEX,
159 : DRM_MODEL_LIBRARY,
160 : DRM_MOVING_LIGHT_BEHAVIOUR,
161 : DRM_OCTANT_DATA,
162 : DRM_OCTANT_RELATED_FEATURES,
163 : DRM_OCTANT_RELATED_GEOMETRY,
164 : DRM_OM_AUGMENTED_3D_LOCATION,
165 : DRM_OM_SURFACE_LOCATION,
166 : DRM_OVERLOAD_PRIORITY_INDEX,
167 : DRM_PARALLELEPIPED_VOLUME_EXTENT,
168 : DRM_PERIMETER_DATA,
169 : DRM_PERIMETER_RELATED_FEATURE_TOPOLOGY,
170 : DRM_PERIMETER_RELATED_FEATURES,
171 : DRM_PERIMETER_RELATED_GEOMETRY,
172 : DRM_PERIMETER_RELATED_GEOMETRY_TOPOLOGY,
173 : DRM_POINT,
174 : DRM_POINT_FEATURE,
175 : DRM_POLAR_2D_LOCATION,
176 : DRM_POLYGON,
177 : DRM_POLYGON_CONTROL_LINK,
178 : DRM_POLYHEDRON,
179 : DRM_POSITIONAL_LIGHT,
180 : DRM_PREDEFINED_FUNCTION,
181 : DRM_PRESENTATION_DOMAIN,
182 : DRM_PRIMITIVE_COLOUR,
183 : DRM_PRIMITIVE_FEATURE,
184 : DRM_PRIMITIVE_GEOMETRY,
185 : DRM_PRIMITIVE_SUMMARY_ITEM,
186 : DRM_PROCESS_STEP,
187 : DRM_PROPERTY,
188 : DRM_PROPERTY_CHARACTERISTIC,
189 : DRM_PROPERTY_DESCRIPTION,
190 : DRM_PROPERTY_GRID,
191 : DRM_PROPERTY_GRID_HOOK_POINT,
192 : DRM_PROPERTY_SET,
193 : DRM_PROPERTY_SET_INDEX,
194 : DRM_PROPERTY_SET_INDEX_CONTROL_LINK,
195 : DRM_PROPERTY_SET_TABLE,
196 : DRM_PROPERTY_SET_TABLE_GROUP,
197 : DRM_PROPERTY_SET_TABLE_LIBRARY,
198 : DRM_PROPERTY_TABLE,
199 : DRM_PROPERTY_TABLE_REFERENCE,
200 : DRM_PROPERTY_TABLE_REFERENCE_CONTROL_LINK,
201 : DRM_PROPERTY_VALUE,
202 : DRM_PS_AUGMENTED_3D_LOCATION,
203 : DRM_PS_SURFACE_LOCATION,
204 : DRM_PSEUDO_CODE_FUNCTION,
205 : DRM_PYRAMID_DIRECTIONAL_LIGHT,
206 : DRM_QUADRANT_DATA,
207 : DRM_QUADRANT_RELATED_FEATURES,
208 : DRM_QUADRANT_RELATED_GEOMETRY,
209 : DRM_REFERENCE_ORIGIN,
210 : DRM_REFERENCE_SURFACE,
211 : DRM_REFERENCE_VECTOR,
212 : DRM_REFERENCE_VECTOR_CONTROL_LINK,
213 : DRM_REGULAR_AXIS,
214 : DRM_RELATIVE_TIME,
215 : DRM_RELATIVE_TIME_INTERVAL,
216 : DRM_RENDERING_PRIORITY_LEVEL,
217 : DRM_RENDERING_PROPERTIES,
218 : DRM_RGB_COLOUR,
219 : DRM_RGB_COLOUR_CONTROL_LINK,
220 : DRM_ROTATING_LIGHT_BEHAVIOUR,
221 : DRM_ROTATION,
222 : DRM_ROTATION_CONTROL_LINK,
223 : DRM_SCALE,
224 : DRM_SCALE_CONTROL_LINK,
225 : DRM_SEASON,
226 : DRM_SEC_3D_LOCATION,
227 : DRM_SEDRIS_ABSTRACT_BASE,
228 : DRM_SEPARATING_PLANE,
229 : DRM_SEPARATING_PLANE_DATA,
230 : DRM_SEPARATING_PLANE_RELATED_GEOMETRY,
231 : DRM_SEPARATING_PLANE_RELATIONS,
232 : DRM_SEQ_3D_LOCATION,
233 : DRM_SM_3D_LOCATION,
234 : DRM_SMS_3D_LOCATION,
235 : DRM_SOUND,
236 : DRM_SOUND_INSTANCE,
237 : DRM_SOUND_INSTANCE_CONTROL_LINK,
238 : DRM_SOUND_LIBRARY,
239 : DRM_SOUND_VOLUME,
240 : DRM_SOURCE,
241 : DRM_SPATIAL_EXTENT,
242 : DRM_SPATIAL_INDEX_DATA,
243 : DRM_SPATIAL_INDEX_RELATED_FEATURE_TOPOLOGY,
244 : DRM_SPATIAL_INDEX_RELATED_FEATURES,
245 : DRM_SPATIAL_INDEX_RELATED_GEOMETRY,
246 : DRM_SPATIAL_INDEX_RELATED_GEOMETRY_TOPOLOGY,
247 : DRM_SPATIAL_RESOLUTION_LEVEL_OF_DETAIL_DATA,
248 : DRM_SPECULAR_COLOUR,
249 : DRM_SPHERICAL_VOLUME_EXTENT,
250 : DRM_SPOT_LIGHT,
251 : DRM_SRF_SUMMARY,
252 : DRM_STAMP_BEHAVIOUR,
253 : DRM_STATE_CONTROL_LINK,
254 : DRM_STATE_DATA,
255 : DRM_STATE_RELATED_FEATURES,
256 : DRM_STATE_RELATED_GEOMETRY,
257 : DRM_STROBING_LIGHT_BEHAVIOUR,
258 : DRM_SURFACE_GEOMETRY,
259 : DRM_SURFACE_LOCATION,
260 : DRM_SYMBOL,
261 : DRM_SYMBOL_LIBRARY,
262 : DRM_TABLE_PROPERTY_DESCRIPTION,
263 : DRM_TACK_POINT,
264 : DRM_TEXT,
265 : DRM_TEXTURE_COORDINATE,
266 : DRM_TEXTURE_COORDINATE_CONTROL_LINK,
267 : DRM_TIME_CONSTRAINTS_DATA,
268 : DRM_TIME_INTERVAL,
269 : DRM_TIME_OF_DAY,
270 : DRM_TIME_POINT,
271 : DRM_TIME_RELATED_FEATURES,
272 : DRM_TIME_RELATED_GEOMETRY,
273 : DRM_TM_AUGMENTED_3D_LOCATION,
274 : DRM_TM_SURFACE_LOCATION,
275 : DRM_TRANSFORMATION,
276 : DRM_TRANSLATION,
277 : DRM_TRANSLATION_CONTROL_LINK,
278 : DRM_TRANSLUCENCY,
279 : DRM_TRANSLUCENCY_CONTROL_LINK,
280 : DRM_TRANSMITTAL_ROOT,
281 : DRM_TRANSMITTAL_SUMMARY,
282 : DRM_TWINKLING_LIGHT_BEHAVIOUR,
283 : DRM_UNION_OF_FEATURE_TOPOLOGY,
284 : DRM_UNION_OF_FEATURES,
285 : DRM_UNION_OF_GEOMETRY,
286 : DRM_UNION_OF_GEOMETRY_HIERARCHY,
287 : DRM_UNION_OF_GEOMETRY_TOPOLOGY,
288 : DRM_UNION_OF_PRIMITIVE_GEOMETRY,
289 : DRM_VARIABLE,
290 : DRM_VERTEX,
291 : DRM_VOLUME,
292 : DRM_VOLUME_EXTENT,
293 : DRM_VOLUME_GEOMETRY,
294 : DRM_VOLUME_LEVEL_OF_DETAIL_DATA,
295 : DRM_VOLUME_LIGHT_BEHAVIOUR,
296 : DRM_WORLD_TRANSFORMATION
[297,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the attribute being used.
The specification is in ISO/IEC 18025—Environmental Data Coding Specification (EDCS) (see 2.[I18025]).
This data type specifies the classification of an object.
The specification is in ISO/IEC 18025—Environmental Data Coding Specification (EDCS) (see 2.[I18025]).
This data type specifies the scale factor code for the unit of distance measure being used.
The specification is in ISO/IEC 18025—Environmental Data Coding Specification (EDCS) (see 2.[I18025]).
This data type specifies the unit of distance measure being used.
The specification is in ISO/IEC 18025—Environmental Data Coding Specification (EDCS) (see 2.[I18025]).
This data type specifies the value characteristics of an attribute value.
The specification is in ISO/IEC 18025—Environmental Data Coding Specification (EDCS) (see 2.[I18025]).
This data type specifies the type of element code used in an Element_Type variant record. Valid values are described in Table 5.33.
Table 5.33 — Element_Type_Code values
Value |
Description |
---|---|
ATTRIBUTE |
The element represents an attribute. |
INDEX |
The element represents an index. |
VARIABLE |
The element represents a variable. |
Element_Type_Code ::= (
< 1 : implementation_dependent,
1 : ATTRIBUTE,
2 : INDEX,
3 : VARIABLE,
[ 4,1000 ] : reserved for future standardization,
> 1000 : reserved for registration )
This data type supports specifying a particular SEDRIS enumerated type that may be a search target. Only enumerated data types used in DRM class instance fields are applicable.
Enumerated_Or_Selection_Type ::= (
< 1 : implementation_dependent,
1 : NULL_TYPE,
2 : AXIS_ALIGNMENT,
3 : CAMERA_PROJECTION_TYPE,
4 : COLOUR_BINDING,
5 : COLOUR_MAPPING,
6 : COLOUR_MODEL,
7 : DISPLAY_SIDE,
8 : DISPLAY_STYLE,
9 : DISPLAY_TYPE,
10 : DRM_CLASS,
11 : FEATURE_UNION_REASON,
12 : GRID_OVERLAP_OPERATOR,
13 : IMAGE_COMPONENT,
14 : IMAGE_MAPPING_METHOD,
15 : IMAGE_PROJECTION_TYPE,
16 : IMAGE_SCAN_DIRECTION,
17 : IMAGE_SCAN_DIRECTION_Z,
18 : IMAGE_SIGNATURE,
19 : IMAGE_WRAP,
20 : INTERPOLATION_TYPE,
21 : LOD_DATA_TYPE,
22 : LOOKUP_SIGNATURE,
23 : LOOKUP_TYPE,
24 : LSR_TRANSFORMATION_AXIS,
25 : MODEL_REFERENCE_TYPE,
26 : MONTH,
27 : MULTIPLICITY_CODE,
28 : OCTANT,
29 : ORDERING_REASON,
30 : PIXEL_FILL_METHOD,
31 : PRESPECIFIED_FUNCTION,
32 : PRESENT_IN,
33 : PROPERTY_DATA_VALUE_TYPE,
34 : QUADRANT,
35 : REFERENCE_VECTOR_TYPE,
36 : REFERENCE_SURFACE_ELEVATION_SELECT,
37 : REFERENCE_SURFACE_LOD_SELECT,
38 : SEASON,
39 : SHADING_METHOD,
40 : SPACING_TYPE,
41 : SPATIAL_INDEX_SPACING_UNIT,
42 : STATE_MISMATCH_BEHAVIOUR,
43 : TIME_DATA_TYPE,
44 : TIME_OF_DAY,
45 : TIME_SIGNIFICANCE,
[46,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type is used to indicate, if a <DRM Feature Hierarchy> instance is present, the level of feature topology that is present. Allowable values are in Table 5.34.
Table 5.34 — Feature_Topology_Level values
Feature_Topology_Level ::= (
< 1 : implementation_dependent,
1 : ZERO,
2 : ONE,
3 : TWO,
4 : THREE,
5 : FOUR,
[6,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the style of font to be used. Allowable values are described in Table 5.35. A font family that has other styles should map those into the most appropriate of the styles available including those styles that may have been registered and are supported by the implementation.
Table 5.35 — Font_Style values
Value |
Description |
---|---|
NORMAL |
The text is displayed using the normal form specified by the font family. |
BOLD |
The text is displayed using the bold form specified by the font family. |
ITALIC |
The text is displayed using the italic form specified by the font family. |
BOLD_ITALIC |
The text is displayed using the form specified by the font family that is both bold and italic. |
Font_Style ::= (
< 1 : implementation_dependent,
1 : NORMAL,
2 : BOLD,
3 : ITALIC,
4 : BOLD_ITALIC,
[5,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the reason for specify a <DRM Geometric Centre> instance. Allowable values are in Table 5.37.
Table 5.35 — Geometric_Centre_Code values
Value |
Description |
---|---|
CENTRE_OF_BUOYANCY |
The text is displayed using the normal form specified by the font family. |
CENTRE_OF_MASS |
The text is displayed using the bold form specified by the font family. |
CENTRE_OF_PRESSURE |
The text is displayed using the italic form specified by the font family. |
Geometric_Centre_Code ::= (
< 1 : implementation_dependent,
1 : CENTRE_OF_BUOYANCY,
2 : CENTRE_OF_MASS,
3 : CENTRE_OF_PRESSURE,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the level of geometry topology if a geometry hierarchy is present. Allowable values are in Table 5.37.
Table 5.37 — Geometry_Topology_Level values
Geometry_Topology_Level ::=(
< 1 : implementation_dependent,
1 : ZERO,
2 : ONE,
3 : TWO,
4 : THREE,
5 : FOUR,
[6,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies how overlapping <DRM Property Grid> should be interpreted. Valid values are described in Table 5.38.
Table 5.38 — Grid_Overlap_Operator values
Value |
Description |
---|---|
BASE |
The base value is used. |
REPLACE |
The base value is replaced by the overlapped value. |
MERGE |
The base value is merged with the overlapped value. |
ADD |
The overlapped value is added to the base value. |
AVERAGE |
The overlapped value and the base value are averaged. |
Grid_Overlap_Operator ::= (
< 1 : implementation_dependent,
1 : BASE,
2 : REPLACE,
3 : MERGE,
4 : ADD,
5 : AVERAGE ,
[6,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type indicates whether the components of a texel for an Image are represented as signed integers, unsigned integers, or as floating point numbers. Valid values are described in Table 5.39.
Table 5.39 — Image_Component_Type values
Value |
Description |
---|---|
SIGNED_INTEGER |
Each texel is represented by signed integer values. |
UNSIGNED_INTEGER |
Each texel is represented by unsigned integer values. |
FLOATING_POINT |
Each texel is represented by floating point values. |
Image_Component_Type ::= (
< 1 : implementation_dependent,
1 : SIGNED_INTEGER,
2 : UNSIGNED_INTEGER,
3 : FLOATING_POINT,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data types specifies how the image is blended with the background when the image is being used as a texture map. Allowable values are specified in Table 5.40.
Table 5.40 — Image_Mapping_Method values
Value |
Description |
---|---|
REPLACE |
For REPLACEimage mapping method, no calculations are needed; the colour and alpha (derived from <DRM Translucency>) of the <DRM Image> completely replace the original colour and alpha of the object (if any). |
DECAL |
For DECAL image mapping method, the <DRM Image> is essentially rendered on top of anything already there, like a decal (hence the name). For Type 1 and Type 2: the results are not specified. For Type 3: displayed colour = image colour and displayed alpha = original object alpha. For Type 4: displayed Colour = (1 - image alpha) × original object colour + (image alpha × image colour) and displayed alpha = original object alpha. |
MODULATE |
For MODULATE image mapping method, the <DRM Image>’s luminance (or colour) and alpha are linearly combined with those of the original object. For Type 1 Luminance: displayed colour = image luminance × original object colour and displayed alpha = original object alpha. For Type 1 Alpha: displayed colour = original object colour and displayed alpha = original object alpha × image alpha. For Type 2: displayed colour
= image luminance ´and
displayed alpha = image alpha ´
For Type 3: displayed colour
= image colour × original object colour and displayed alpha
= original object alpha. For Type 4: displayed colour
= image colour × original object colour and displayed alpha = image alpha × original object alpha. |
BLEND |
For BLEND image mapping method, the image blend colour of the object determines how the <DRM Image> is combined with the object’s primary colour. For Type 1 Luminance: displayed colour = (1 - image luminance) × original object colour + (image luminance × blend colour) and displayed alpha = original object alpha. For Type 1 Alpha: displayed colour = original object colour and displayed alpha = original object alpha × image alpha. For Type 2: Displayed Colour = (1 - image luminance) × original object colour + (image luminance × blend colour) and displayed alpha = original object alpha × image alpha. For Type 3: displayed colour = (1 - image colour) × original object colour + (blend colour × image colour) and displayed alpha = original object alpha. For Type 4: displayed colour = (1 - image colour) × original object colour + (blend colour × image colour) and displayed alpha = original object alpha × image alpha. |
Image_Mapping_Method ::= (
< 1 : implementation_dependent,
1 : REPLACE,
2 : DECAL,
3 : MODULATE,
4 : BLEND,
[5,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the projection to be used when texture mapping an image to a polygon. Allowable values are in Table 5.41.
Table 5.41—Image_Projection_Type values
Value |
Description |
---|---|
PLANAR |
Used when applying a <DRM Image> to a planar surface. |
CYLINDRICAL |
Used when warping the <DRM Image> to a cylindrical shape. For this case, the textured object does not have <DRM Texture Coordinate> s or <DRM Tack Point> s; <DRM Image Anchor> s are provided by either the <DRM Image Mapping Function> or the <DRM Image> itself. |
SPHERICAL |
Used when warping the <DRM Image> to a spherical shape. For this case, the textured object does not have <DRM Texture Coordinate> s or <DRM Tack Point> s ; <DRM Image Anchor> s are provided by either the <DRM Image Mapping Function> or the <DRM Image> itself. |
Image_Projection_Type ::= (
< 1 : implementation_dependent,
1 : PLANAR,
2 : CYLINDRICAL,
3 : SPHERICAL ,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies properties about an image. Allowable values are specified in Table 5.42.
Table 5.42 — Image_Signature values
Value |
Description |
---|---|
ALPHA |
This value is used to indicate that each texel in the <DRM Image> instance consists of an alpha value, representing the coverage of the texel. An alpha of 0 indicates that the texel is transparent, while an alpha of 1.0 indicates that the texel constitutes part of the important content of the <DRM Image> instance. A <DRM Image> instance with this signature may be called an alpha channel or an alpha map. For further details, see [FOLEY]. Note that an alpha map can be composited with:
FURTHER CONSTRAINTS:
|
LUMINANCE |
This value is used to indicate that the <DRM Image> instance specifies only luminance (also termed intensity) values that form a grey scale image, with no colour values. (The effect is that of a black and white television.) A LUMINANCE <DRM Image> instance can be composited with a compatible ALPHA image to produce a LUMINANCE_AND_ALPHA <DRM Image> instance. EXAMPLE An example of ompositing LUMINANCE <DRM Image> instances is the case of large areas of terrain <DRM Polygon> instances, where the same textures for dirt are repeated over and over. To avoid creating a “quilt” effect on the terrain, a LUMINANCE <DRM Image> instance can be composited with the terrain (using different offsets at different locations to make the effect appear random) to “dirty” the textures and give the terrain a more realistic appearance. FURTHER CONSTRAINTS: bits_of_luminance shall equal the size per texel (in bits); all other bits_of_xxx fields (and their corresponding minimum_value_of_xxx and maximum_value_of_xxx fields) shall be zero. |
COLOUR_COORDINATE_1 |
This value is used to indicate that each texel in the <DRM Image> instance consists of one colour component, namely the first for its colour model (G for RGB, M for CMY , or S for HSV ). The first colour component of the colour model shall be the only value in the texel. Note that a COLOUR_COORDINATE_1 <DRM Image> instance can be composited with compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3 <DRM Image> instances of the same dimensions to produce a 123_COLOUR <DRM Image> instance. (These can also be composited with a compatible alpha map to produce a 123COLOUR_ALPHA map.) FURTHER CONSTRAINTS:
EXAMPLES: An RGB texel shall have red as the texel value. A CMY texel shall have cyan as the texel value. An HSV texel shall have hue as the
texel value. |
COLOUR_COORDINATE_2 |
This value is used to indicate that each texel in the <DRM Image> instance consists of one colour component, namely the second for its colour model (G for RGB, M for CMY , or S for HSV). The second colour component of the colour model shall be the only value in the texel. Note that a COLOUR_COORDINATE_1 <DRM Image> instance can be composited with compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3 <DRM Image> instances of the same dimensions to produce a 123_COLOUR <DRM Image> instance. (These can also be composited with a compatible alpha map to produce a 123COLOUR_ALPHA map.) FURTHER CONSTRAINTS:
|
COLOUR_COORDINATE_3 |
This value is used to indicate that each texel in the <DRM Image> instance consists of one colour component, namely the third for its colour model (B for RGB, Y for CMY , or V for HSV ). The third colour component of the colour model shall be the only value in the texel. Note that a COLOUR_COORDINATE_1 <DRM Image> instance can be composited with compatible COLOUR_COORDINATE_2 and COLOUR_COORDINATE_3 <DRM Image> instances of the same dimensions to produce a 123_COLOUR <DRM Image> instance. (These can also be composited with a compatible alpha map to produce a 123COLOUR_ALPHA map.) FURTHER CONSTRAINTS:
EXAMPLES An RGB texel shall have blue as the texel value. A CMY texel shall have yellow as the texel value. An HSV texel shall have brightness
value as the texel value. |
BUMP_MAP_HEIGHT |
This value is used to indicate that the <DRM Image> instance represents a 2D height bump map (or just height map), specifying information used to modify the surface normals of a smooth surface. When used with a ray-tracing technique, bump mapping introduces variations in intensity across the surface, so that it simulates a rough, wrinkled, or dimpled surface (e.g., the surface of the ocean). A UV type of bump map can be derived from a height bump map by omputing the texel gradients in both the X and Y directions. Rather than manipulating the colour of a flat surface, bump mapping modifies the physical texture of the surface. For a description of bump mapping, see Section 7.8 “Bump Mapping” of [WATT]. FURTHER CONSTRAINTS:
|
EDCS_CLASSIFICATION_CODE |
This value is used to indicate that each texel in the <DRM Image> consists of one ECC value. FURTHER CONSTRAINTS:
|
LUMINANCE_AND_ALPHA |
This value is used to indicate that the <DRM Image> instance is (functionally) a composite of a luminance <DRM Image> instance and an alpha <DRM Image> instance (see ALPHA and LUMINANCE ). Each texel consists of an intensity value followed by an alpha value. No other ordering is possible with this signature. A LUMINANCE_AND_ALPHA <DRM Image> instance can be down-sampled to produce an ALPHA <DRM Image> instance and a LUMINANCE <DRM Image> instance. FURTHER CONSTRAINTS:
|
123COLOUR |
This value is used to indicate that each texel in the <DRM Image> instance consists of three colour components (RGB, CMY, or HSV). The first colour component of the colour model shall be the first value in the texel, the second colour component of the colour model shall be the second value in the texel, and the third colour component of the colour model shall be the third value in the texel. No other ordering is possible with this signature. Note that a 123COLOUR <DRM Image> instance can be down-sampled to produce a COLOUR_COORDINATE_1, COLOUR_COORDINATE_2, or COLOUR_COORDINATE_3 <DRM Image> instance. FURTHER CONSTRAINTS:
EXAMPLES An RGB texel shall have red as the first value in the texel, green next and finally blue. A CMY texel shall have cyan as the first value in the texel, magenta next, and finally yellow. An HSV texel shall have hue as the
first value in the texel, saturation next and finally brightness value. |
123COLOUR_ALPHA |
This value is used to indicate that each texel in the <DRM Image> instance consists of three colour components (RGB, CMY, or HSV) and an alpha value. The first colour component of the colour model shall be the first value in the texel, the second colour component of the colour model shall be the second value in the texel, the third colour component of the colour model shall be the third value in the texel, and the alpha value shall be the last value in the texel. No other ordering is possible with this signature. Note that a 123COLOUR_ALPHA <DRM Image> instance can be down-sampled to produce a COLOUR_COORDINATE_1, COLOUR_COORDINATE_2, COLOUR_COORDINATE_3, and/or ALPHA <DRM Image> instances. FURTHER CONSTRAINTS:
EXAMPLES An RGBA texel shall have red as the first value in the texel, green next, then blue, and finally alpha. A CMYA texel shall have cyan as the first value in the texel, magenta next, then yellow, and finally alpha. An HSVA texel shall have hue as the
first value in the texel, saturation next, then brightness value, and finally
alpha. |
ONE_MATERIAL |
This value is used to indicate that each texel in the <DRM Image> instance consists of one value, an index into the <DRM Property Table> instances referenced by this <DRM Image> instance. These <DRM Property Table> instances describe the material. Normally, a <DRM Property Table Reference> instance is used to find the corresponding <DRM Property Table> instance’s data_table_type, to which the <DRM Axis> instance is referred, and which hash value measurement along that <DRM Axis> instance is being referenced. The bits_of_material_1 field is used in place of the <DRM Property Table Reference> instance’s index_on_axisfield. See the examples for the <DRM Image> class. FURTHER CONSTRAINTS:
|
TWO_MATERIALS |
This value is used to indicate that each texel in the <DRM Image> instance represents a linear combination of two materials in the <DRM Property Table> instances referenced by this <DRM Image> instance. That is, each texel consists of three values: two indexes into the <DRM Property Table> instances referenced by this <DRM Image> instance, and the percentage (an integer between 0% and 100%) of material_2. These <DRM Property Table> instances describe the materials. Normally, a <DRM Property Table Reference> instance is used to find the corresponding <DRM Property Table> instance’s data_table_type, to which the <DRM Axis> instance is referred, and which hash value measurement along that <DRM Axis> instance is being referenced. The bits_of_material_1 and bits_of_material_2 fields are used in place of the <DRM Property Table Reference> instances’ index_on_axis fields. See the examples for the <DRM Image> class. FURTHER CONSTRAINTS:
|
THREE_MATERIALS |
This value is used to indicate that each texel in the <DRM Image> instance represents a linear combination of three materials in the <DRM Property Table> instances referenced by this <DRM Image> instance . That is, each texel consists of four values: three indices into the <DRM Property Table> instances referenced by this <DRM Image> instance , and the percentages (integers between 0% and 100%) of material_2 and material_3. These <DRM Property Table> instances describe the materials. Normally, a <DRM Property Table Reference> instance is used to find the corresponding <DRM Property Table> instance’s data_table_type, to which a <DRM Axis> instance is referred, and which hash value measurement along that <DRM Axis> instance is being referenced. The bits_of_material_1, bits_of_material_2, and bits_of_material_3 fields are used in place of the <DRM Property Table Reference> instances’ index_on_axis fields. See the examples for the <DRM Image> class. FURTHER CONSTRAINTS:
|
IMAGE_INDEX |
This is used to indicate that the <DRM Image> instance consists of references to other <DRM Image> instances (i.e., each texel within the <DRM Image> instance is the index of another <DRM Image> instance). This mechanism allows an <DRM Image> instance to define high-resolution insets. Each texel is to be replaced by the entire <DRM Image> instance identified by the <DRM Image> instance whose index is specified by that texel. This allows data providers to create a large <DRM Image> instance formed by many smaller <DRM Image> instances. The index is an index into the <DRM Image Library> instance containing this <DRM Image> instance. FURTHER CONSTRAINTS:
|
BUMP_MAP_UV |
This value is used to indicate that the <DRM Image> instance represents a bump map in UV space, specifying information used to modify the surface normals of a smooth surface. See BUMP_MAP_HEIGHT for further information on bump maps. FURTHER CONSTRAINTS:
|
Image_Signature ::= (
< 1 : implementation_dependent,
1 : ALPHA,
2 : LUMINANCE,
3 : COLOUR_COORDINATE_1,
4 : COLOUR_COORDINATE_2,
5 : COLOUR_COORDINATE_3,
6 : BUMP,
7 : BUMP_MAP_HEIGHT,
8 : EDCS_CLASSIFICATION_CODE,
9 : LUMINANCE_AND_ALPHA,
10 : 123COLOUR,
11 : 123COLOUR_ALPHA,
12 : ONE_MATERIAL,
13 : TWO_MATERIALS,
14 : THREE_MATERIALS,
15 : IMAGE_INDEX,
16 : BUMP_MAP_UV,
[17,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies how texture mapping is handled when the boundary of an image is reached. Allowable values are specified in Table 5.43.
Table 5.43 — Image_Wrap values
Value |
Description |
---|---|
CLAMP |
Texture coordinates in the image space are clamped to the value range [0.0, 1.0]. Negative texture coordinate values are mapped to 0.0, while values greater than 1.0 are mapped to 1.0. |
REPEAT |
The image space is considered to extend to infinity; the image is repeated in a tiled manner. |
Image_Wrap ::= (
< 1 : implementation_dependent,
1 : CLAMP,
2 : REPEAT,
[3,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of index used in an Element_Type variant record. Each value has a specific meaning and usage as specified in Table 5.44
Table 5.44 — Index_Code values
Value |
Description |
---|---|
DATA_TABLE_COMPONENT |
Used to allow a <DRM Data Table> to reference its ith ordered <DRM Data Table> component, where i is the value of the index being specified. |
PROP_TABLE_REF_COMPONENT |
Used to allow a <DRM Data Table> to reference its ith ordered <DRM Property Table Reference> component, where i is the value of the index being specified. |
DATA_TABLE_LIBRARY |
Used to allow a <DRM Data Table> to reference the ith <DRM Data Table> in its transmittal’s <Data Table Library>, where i is the value of the index being specified. |
IMAGE_MAPPING_FUNCTION |
Used to allow a <DRM Data Table> cell to reference the ith ordered <DRM Image Mapping Function> component of the <DRM Data Table>. |
ADJACENT_MESH_FACE |
Used to specify the index of a mesh face in a <DRM Mesh Face Table> , specifically as the code of its (optional) second <DRM Table Property Description>. |
ADJACENT_SOLID_ELEMENT |
Used to specify the index of an adjacent mesh solid in a <DRM Finite Element Mesh>’s ECC_SOLID_ELEMENT <DRM Property Table> ’s second <DRM Table Property Description>. |
MESH_FACE |
Used to specify the index of a mesh face in a <DRM Mesh Face Table>, specifically as the axis_type of its first <DRM Regular Axis>. |
MESH_NODE |
Used to specify the index of a mesh node in a <DRM Mesh Face Table>, specifically as the axis_type of its second <DRM Regular Axis>. |
MESH_VERTEX |
Used to identify the index of a mesh vertex in the ordered <DRM Vertex> list of a <DRM Finite Element Mesh>, specifically as the axis_type of the first <DRM Regular Axis> in a <DRM Property Table> classified as ECC_MESH_NODE_PROPERTY_SET or ECC_MESH_FACE_PROPERTY_SET. |
SOLID_ELEMENT |
Used to identify the index of a mesh solid (three-dimensional) element in a <DRM Mesh Face Table>, specifically as the axis_type of the first <DRM Regular Axis> in a <DRM Property Table> classified as ECC_SOLID_ELEMENT or ECC_MESH_SOLID_PROPERTY_SET. |
SOLID_FACE |
Used to identify the index of a mesh solid (two-dimensional) face in a <DRM Property Table>, specifically as the axis_type of the second <DRM Regular Axis> in a <DRM Property Table> classified as ECC_MESH_SOLID_SET. |
Index_Code ::= (
< 1 : implementation_dependent,
1 : DATA_TABLE_COMPONENT,
2 : PROP_TABLE_REF_COMPONENT,
3 : DATA_TABLE_LIBRARY,
4 : IMAGE_MAPPING_FUNCTION,
5 : ADJACENT_MESH_FACE,
6 : ADJACENT_SOLID_ELEMENT,
7 : MESH_FACE,
8 : MESH_NODE,
9 : MESH_VERTEX,
10 : SOLID_ELEMENT,
11 : SOLID_FACE,<
[12,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the manner in which cell values are interpolated to produce a point between grid points. Allowable values are specified in Table 5.45.
Table 5.45 — Interpolation_Type values
Value |
Description .. |
---|---|
DISALLOWED |
Interpolation is disallowed by the data provider. |
NOT_SUPPLIED |
No preferred interpolation method was supplied. |
METADATA_SPECIFIED |
The metadata for the <DRM Data Table> aggregate associated with the <DRM Axis> specifies the data provider’s preferred interpolation method. |
LINEAR |
Interpolation is linear (the most common default). |
NEAREST_NEIGHBOUR |
Interpolation is by nearest neighbour. |
DIAGONALIZATION |
A data point is interpolated by taking the four adjacent data points and dividing them into two triangular facets using a diagonal of the data cell. The diagonal to be used shall be provided as part of the cell data of a <DRM Data Table> instance by specifying a <DRM Table Property Description> instance with a value of EAC_GRID_DIAGONALIZATION. The EE code specifying either the lower-left to upper-right diagonal or the upper-left to lower-right diagonal shall be stored in the cell data. |
OAML_DBDB_SPLINE_FIT |
This enumerant represents a spline-fitting technique, specifically that used to support data derived from the U. S. Navy’s Oceanographic and Atmospheric Library (OAML). More specifically, it is used to support Digital Bathymetric Database (DBDB) OAML tables. One common use is within OAML-derived tables representing bathymetry. |
OAML_GDEM_POLYN_DEFORMATION |
Exists to support tables derived from data from the U. S. Navy’s Oceanographic and Atmospheric Library (OAML). Specifically, this enumerant exists to support the Generalized Digital Environmental Model, known as GDEM, which is a 4-dimensional steady-state digital model of ocean temperature and salinity, consisting of gridded sets of coefficients with very specific grid spacing values. This interpolation method uses polynomial deformation. One common use of this method is within tables representing sound speed profiles. |
BICUBIC_SPLINE |
Bicubic spline interpolation uses sixteen known data points to estimate the unknown value of c at a given a,b by fitting a bicubic surface to the sixteen closest data points and then evaluating for c. For more information, see [PRENTER]. |
KRIGING |
KRIGING is an interpolation method that predicts unknown values from data observed at known locations. This method uses variograms to express the spatial variation, and it minimizes the error of predicted values that are estimated by spatial distribution of the predicted values. Kriging interpolation estimates the unknown value using a weighted linear combination of the available sample. The weights for the linear combination are calculated by deriving the function of the data variogram and evaluating this function over the set of points in the data. For more information refer to [OLIVER]. |
LAGRANGIAN |
Lagrangian interpolation uses a specified number of existing points to fit a polynomial of degree one less than the number of points. For more information, see [ZWIL]. |
QUADRATIC |
Quadratic interpolation uses three known data points to estimate the unknown value of y at a given x by fitting a parabolic arc (quadratic equation) to the three data points and then evaluating for y. |
Interpolation_Type ::= (
< 1 : implementation_dependent,
1 : DISALLOWED,
2 : NOT_SUPPLIED,
3 : METADATA_SPECIFIED,
4 : LINEAR,
5 : NEAREST_NEIGHBOR,
6 : DIAGONALIZATION,
7 : OAML_DBDB_SPLINE_FIT,
8 : OAML_GDEM_POLYN_DEFORMATION,
9 : BICUBIC_SPLINE,
10 : KRIGING,
11 : LEGRANGIAN,
12 : QUADRATIC,
[12,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type corresponds to the MD_KeywordTypeCode specified in 2.[I19115] and is used to specify methods for grouping similar keywards in a <DRM Keywords> instance. Allowable values are specified in Table 5.46.
Table 5.46 — Keyword_Type_Code values
Value |
Description |
---|---|
DISCIPLINE |
Each entry in the semicolon-separated keyword list is the name of a branch of instruction or specialized learning being described by the given <DRM Keywords> object. |
PLACE |
Each entry in the semicolon-separated keyword list is the geographic name of a location being described by the given <DRM Keywords> object. |
STRATUM |
Each entry in the semicolon-separated keyword list is the name of layer of a deposited substance being described by the given <DRM Keywords> object. |
TEMPORAL |
Each entry in the semicolon-separated keyword list is the name of a time period related to the environmental object being described by the given <DRM Keywords> object. |
Keyword_Type_Code ::= (
< 1 : implementation_dependent,
1 : DISCIPLINE,
2 : PLACE,
3 : STRATUM,
4 : TEMPORAL,
[5,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the “type” of <Base Level Of Detail Data> being used to organize a <DRM Level Of Detail Related Features> or <DRM Level Of Detail Related Geometry> aggregate. The selection identifies the criteria by which the levels are specified. Valid values are described in Table 5.47.
Table 5.47 — LOD_Data_Type values
Value |
Description .. |
---|---|
DISTANCE |
Each level represents data as viewed from a different distance. |
INDEX |
Each level represents data selected by an index. |
MAP_SCALE |
Each level represents data for presentation at a different map scale. |
VOLUME |
Each level represents data that occupies a different volume. |
SPATIAL_RESOLUTION |
Each level represents data that is specified for a specific spatial resolution. |
LOD_Data_Type ::= (
< 1 : implementation_dependent,
1 : DISTANCE,
2 : INDEX,
3 : MAP_SCALE,
4 : VOLUME,
5 : SPATIAL_RESOLUTION,
[5,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies which axes are used for lookup. Allowable values are specified in Table 5.48.
Table 5.48 — Lookup_Signature values
Value |
Description .. |
---|---|
I |
One lookup axis, intensity. |
I_AND_ALPHA |
Two lookup axes, intensity and alpha. |
ALPHA |
One lookup axis, alpha. |
RGB |
Three lookup axes: red, green, and blue. |
RGB_ALPHA |
Four lookup axes: red, green, blue, and alpha. |
Lookup_Signature ::= (
< 1 : implementation_dependent,
1 : I,
2 : IA,
3 : A,
4 : RGB,
5 : RGB_ALPHA,
[6,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the manner of conversion needed during a lookup. Allowable values are specified in Table 5.49.
Table 5.49 — Lookup_Type values
Value |
Description .. |
---|---|
YIQ_TO_RGB |
This lookup type is valid only when the <DRM Image Lookup> instance’s lookup table signature is RGB. This value converts the three colour components of a texel into three indices that are used to derive intermediate values that are recombined into a single RGB triplet:
Next, the I index is derived from the original texel RGB triplet by the equation: I_index = (0.49804 × red_component) - (0.22896 × green_component) - (0.26908 × blue_component) This index points to another RGB triplet in the lookup table. This triplet is used to derive the intermediate I value by the equation: I = (0.49804 × red_component) - (0.22896 × green_component) - (0.26908 × blue_component) The original RGB texel is used to generate the Q index by the equation: q_index = (0.20093 × red_component) - (0.49804 × green_component) + (0.29711 × blue_component) This index points to another RGB triplet in the lookup table. This triplet is used to derive the intermediate Q value by the equation: Q = (0.20093 × red_component) - (0.49804 × green_component) + (0.29711 × blue_component) Finally the intermediate Y, I, and Q values are combined to create the final displayed RGB triplet. The RGB triplet is derived by the equations: R = Y + (1.14423568 × I ) + (0.65258974 × Q ) |
YIQ_TO_ALPHA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is ALPHA and the referenced <DRM Image> instance has an image_signature value of 123Colour. This value converts the three colour components of a texel into three indices that are used to derive intermediate values that are recombined into a single alpha value. The converions occurs as follows:
|
I_TO_I |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is I. The Intensity component I in the image is a pointer to the Intensity value of the ith element in the lookup table. |
I_TO_ALPHA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is ALPHA. The Intensity component I in the image is a pointer to the Alpha value of the ith element in the lookup table. |
I_TO_IA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is I_AND_ALPHA. The I component in the image is a pointer to the I and Alpha values of the ith element in the lookup table. |
IA_TO_IA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is I_AND_ALPHA. The I component in the image is a pointer to the I value of the ith element in the lookup table. The alpha component A in the image is a pointer to the alpha value of the ith element in the lookup table. |
I_TO_RGB |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is RGB. The I component is a pointer to the ith element of the lookup table that contains the R, G, and B, values. |
RGB_TO_RGB |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is RGB. The R component is a pointer to the R value of the ith element of the lookup table. The G component is a pointer to the G value of the ith element of the lookup table. The B component is a pointer to the B value of the ith element of the lookup table. |
I_TO_RGBA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is RGB_ALPHA. The I component is a pointer to the ith element of the lookup table that contains the R, G, B, and Alpha values. |
IA_TO_RGBA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is RGB_ALPHA. The I component is a pointer to the ith element of the lookup table that contains the R, G, and B values. The alpha component A in the image is a pointer to the alpha value of the ith element of the lookup table. |
RGB_TO_RGB_ALPHA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is RGB_ALPHA. The R component is a pointer to the R value of the ith element of the lookup table that contains the R value. The G component is a pointer to the G value of the ith element of the lookup table. The B component is a pointer to the B value of the ith element of the lookup table. The A component is a pointer to the Alpha value of the ith element of the lookup table. |
RGB_ALPHA_TO_RGB_ALPHA |
This lookup type is valid only when the <DRM Image Lookup> instance ’s lookup table signature is RGB_ALPHA. The R component is a pointer to the R value of the ith element of the lookup table. The G component is a pointer to the G value of the ith element of the lookup table. The B component is a pointer to the B value of the ith element of the lookup table. The A component is a pointer to the Alpha value of the ith element of the lookup table. |
Lookup_Type ::= (
< 1 : implementation_dependent,
1 : YIQ_TO_RGB,
2 : YIQ_TO_ALPHA,
3 : I_TO_I,
4 : I_TO_ALPHA,
5 : I_TO_IA,
6 : IA_TO_IA,
7 : I_TO_RGB,
8 : RGB_TO_RGB,
9 : I_TO_RGBA,
10 : IA_TO_RGBA,
11 : RGB_TO_RGBA,
12 : RGBA_TO_RGBA,
[13,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the format of media files used by the <DRM_Browse_Media> DRM class. Allowable values are specified in Table 5.50. Information about each format is in Annex C Media format references. Support of all media types is optional. However, if a media type is supported by an implementation, that support shall conform to the specifications referenced in Annex C Media format references.
Table 5.50 — Media_Format values
Value |
Description |
---|---|
AVI |
Audio Video Interleave |
BMP |
Bitmap Graphics |
GIF |
Graphic Interchange Format |
JPEG |
Joint Photographic Experts Group |
HTML |
Hyper Text Markup Language |
RIFF |
Resource Interchange File Format |
RGB |
Red Green Blue |
PNG |
Portable Network Graphics |
QT |
QuickTime |
TIFF |
Tagged Image File Format |
WMF |
Windows Metafile |
XBM |
X BitMap format |
PICT |
Picture - Macintosh graphics file |
NITFS |
National Imagery Transmission Format Standard |
BIIF |
Binary Information Interchange Format |
CGM |
Computer Graphics Metafile |
JPEG2000 |
JPEG 2000 |
SVG |
Scalable Vector Graphics |
VRML |
Virtual Reality Modeling Language |
X3D |
Extensible 3D XML encoding |
X3DV |
Extensible 3D (X3D) Classic VRML encoding |
Media_Format ::= (
< 1 : implementation_dependent,
1 : AVI,
2 : BMP,
3 : GIF,
4 : JPEG,
5 : HTML,
6 : RIFF,
7 : RGB,
8 : PNG,
9 : QT,
10 : TIFF,
11 : WMF,
12 : XBM,
13 : PICT,
14 : NITFS,
15 : BIIF,
16 : CGM,
17 : JPEG2000,
18 : SVG,
19 : VRML,
20 : X3D,
21 : X3DV,
[22,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the reason for ordering. Valid values are described in Table 5.51.
Table 5.51 — Ordering_Reason values
Value |
Description |
---|---|
LAYERED_HIGH_QUALITY_RENDERING |
A layered scheme optimized for high-quality rendering is used in which the first component is always the base of the layer and the other components are decal layers. |
LAYERED_FASTEST_RENDERING |
A layered scheme optimized for fastest rendering is used in which the first component is always the base of the layer and the other components are decal layers. |
FIXED_LISTED |
A fixed rendering order is used, typically for non-depth- buffered or hybrid image generators. |
VIEWER_RANGE |
The layers are ordered according to range to the viewer. |
SHARED_ATTRIBUTE |
The components are layered by some shared attributes. |
NONE |
No reason for the ordering is specified. |
Ordering_Reason ::= (
< 1 : implementation_dependent,
1 : LAYERED_HIGH_QUALITY_RENDERING,
2 : LAYERED_FASTEST_RENDERING,
3 : FIXED_LISTED,
4 : VIEWER_RANGE,
5 : SHARED_ATTRIBUTE,
6 : NONE,
[7,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the colour blending method. Allowable values are specified in Table 5.52.
Table 5.52 — Pixel_Fill_Method values
Value |
Description |
---|---|
CONSTANT |
The geometry polygon colour specifies the constant pixel colour across the geometry. |
BLEND |
Colour or intensity at each <DRM Vertex> instance is used to blend for the geometry fill method. |
Pixel_Fill_Method ::= (
< 1 : implementation_dependent,
1 : CONSTANT,
2 : BLEND,
[3,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type enumerates the various predefined functions that a SEDRIS implementation shall support. In the comments for this data type, the letter A indicates the first argument, the letter B indicates the second argument continuing on as necessary for the number of arguments needed. Allowable values are specified in Table 5.53.
Table 5.53 — Predefined_Function values
Value |
Description .. |
---|---|
ADD |
Definition: A + B This is a binary operator, for which the first of the ordered arguments is “left” of the operator and the second is “right”. |
DIVIDE |
Definition: A / B This is a binary operator, for which the first of the ordered arguments is “left” of the operator and the second is “right”. |
MODULO |
Definition: A modulo B This is a binary operator, for which the first of the ordered arguments is “left” of the operator and the second is “right”. |
MULTIPLY |
Definition: A × B This is a binary operator, for which the first of the ordered arguments is “left” of the operator and the second is “right”. |
SUBTRACT |
Definition: A - B This is a binary operator, for which the first of the ordered arguments is “left” of the operator and the second is “right”. |
COSINE |
Definition: cosine(A) |
SINE |
Definition: sine(A) |
TANGENT |
Definition: tangent(A) |
ARCCOSINE |
Definition: arccosine(A) |
ARCSINE |
Definition: arcsine(A) |
ARCTANGENT |
Definition: arctangent(A) |
ARCTANGENT2 |
Definition: arctangent2(A,B) where A and B are the numerator and denominator of A/B respectively |
HYPOTENUSE |
Definition: hypotenuse(A, B) |
ABSOLUTE |
Definition: |A| : absolute value of “A” |
EXPONENT |
Definition: eA |
LN |
Definition: ln(A) : natural logarithm of “A” |
LOG |
Definition: logB A : logarithm base “B” of “A” |
POWER |
Definition: AB : "A" raised to the "Bth" power |
SQRT |
Definition: sqrt(A) : square root of “A” |
MAXIMUM |
Definition: if (A > B) return A else return B |
MINIMUM |
Definition: if (A < B) return A else return B |
NOT |
Definition: Not (the logical operator) Return Type: Boolean This unary logical operator treats an operand with a value of zero (0) as FALSE, while an operand with a non-zero value is treated as TRUE. |
AND |
Definition: A AND B (the logical operator) Return Type: Boolean This binary logical operator treats its first ordered argument (A) as “left” of the operator, while the second (B) is “right”. An operand with a value of zero (0) is treated as FALSE, while an operand with a non-zero value is treated as TRUE. |
EQUAL |
Definition: A = B (the relation) Return Type: Boolean |
GREATER_THAN |
Definition: A > B (the relation) Return Type: Boolean |
GREATER_THAN_OR_EQUAL |
Definition: A ≥ B (the relation) Return Type: Boolean |
LESS_THAN |
Definition: A < B (the relation) Return Type: Boolean |
LESS_THAN_OR_EQUAL |
Definition: A ≤ B (the relation) Return Type: Boolean |
NOT_EQUAL |
Definition: A ≠ B (the relation) Return Type: Boolean |
OR |
Definition: A OR B (the logical operator) Return Type: Boolean This binary logical operator treats its first ordered argument (A) as “left” of the operator, while the second (B) is “right”. An operand with a value of zero (0) is treated as FALSE, while an operand with a non-zero value is treated as TRUE. |
EXCLUSIVE_OR |
Definition: A XOR B (the Exclusive Or logical operator) This binary logical operator treats its first ordered argument (A) as “left” of the operator, while the second (B) is “right”. An operand with a value of zero (0) is treated as FALSE, while an operand with a non-zero value is treated as TRUE. |
IF |
Definition: if (A return B; else return C This function accepts exactly three arguments: A, B, and C. |
PI |
Definition: The mathematical constant PI (π). |
SIMULATION_TIME |
Definition: Returns time, in floating point seconds, since simulation start. |
SIMULATION_UTIME |
Definition: Returns time, in unsigned microseconds, since simulation start. The value is allowed to overflow and roll back to zero. |
REFERENCE_SURFACE_ELEVATION |
Definition: Returns the elevation value derived from the required <DRM Reference Surface> of the transmittal at the location specified by the arguments. Arguments are interpreted as coordinate values within the SRF of the currently scoped instance of <DRM Environment Root>. Argument order shall match the coordinate order determined by the currently scoped SRF. For this function to be valid, at least one <DRM Reference Surface> shall be specified within the scope of its <DRM Environment Root>. |
CYCLE_TIME |
Definition: Returns a cycling time value in seconds of the kind specified by the arguments. These arguments are: A - a trigger boolean to start the cycle(s); B - cycle length in seconds; C - a function that returns time in seconds (e.g., GMT); D - number of cycles to execute before stopping; E - cycle time at which to start; F - cycle time at which to end; and G - Boolean specifying whether the cycle runs one way (e.g. start > end, start > end) or whether it reverses at the end (e.g. start > end > start). |
TABLE_VALUE |
Definition: Used to allow a <DRM Data Table> to drive a <DRM Control Link>. This function contains a <DRM Property Table Reference> as an argument that references the <DRM Data Table> (usually, this will be a <DRM Property Table>). The values should be stored in cells with a <DRM Property> that is specified by the EDCS Attribute Code (EAC) of the type appropriate for the target <Control Link> that is to be driven. This <DRM Prespecified Function> is contained by the target <DRM Control Link>, and thereby returns the value referenced from the <DRM Property Table> as the value that drives the target <DRM Control Link>. The <DRM Property Table Reference> can itself be controlled using a <DRM Property Table Reference Control Link>, allowing different values to be referenced from the <DRM Property Table>. |
Predefined_Function (
< 1 : implementation_dependent,
1 : ADD,
2 : DIVIDE,
3 : MODULO,
4 : MULTIPLY,
5 : SUBTRACT,
6 : COSINE,
7 : SINE,
8 : TANGENT,
9 : ARCCOSINE,
10 : ARCSINE,
11 : ARCTANGENT,
12 : ARCTANGENT2,
13 : HYPOTENUSE,
14 : ABSOLUTE,
15 : EXPONENT,
16 : LN,
17 : LOG,
18 : POWER,
19 : SQRT,
20 : MAXIMUM,
21 : MINIMUM,
22 : NOT,
23 : AND,
24 : EQUAL,
25 : GREATER_THAN,
26 : GREATER_THAN_OR_EQUAL,
27 : LESS_THAN,
28 : LESS_THAN_OR_EQUAL,
29 : NOT_EQUAL,
30 : OR,
31 : EXCLUSIVE_OR,
32 : IF,
33 : PI,
34 : SIMULATION_TIME,
35 : SIMULATION_UTIME,
36 : TERRAIN_HEIGHT,
37 : CYCLE_TIME,
38 : TABLE_VALUE,
[39,1000] : reserved for future standardization,
> 1000 : reserved for registration )
A list of the types of values that can be stored in a cell within a <DRM Data Table>, stored as the value of a <DRM Property Value>, or used as the value type of an <DRM Expression>. This is also the list used to identify the type of value for a property data value. Valid values are described in .
Table 5.54 — Property_Data_Value_Type values
Value |
Description |
---|---|
BOOLEAN |
The value is specified as a Boolean. |
BYTE |
The value is specified as a byte. |
BYTE_POSITIVE |
The value is specified as a positive byte. |
BYTE_UNSIGNED |
The value is specified as an unsigned byte. |
SHORT_INTEGER |
The value is specified as a short integer. |
SHORT_INTEGER_POSITIVE |
The value is specified as a short positive integer. |
SHORT_INTEGER_UNSIGNED |
The value is specified as a short unsigned integer. |
INTEGER |
The value is specified as an integer. |
INTEGER_POSITIVE |
The value is specified as a positive integer. |
INTEGER_UNSIGNED |
The value is specified as an unsigned integer. |
INTEGER_UNSIGNED_INTERVAL |
The value is specified as an interval of unsigned integers. |
FLOAT |
The value is specified as a floating point number. |
FLOAT_INTERVAL |
The value is specified as an interval of floating point numbers. |
LONG_FLOAT |
The value is specified as a long floating point number. |
STRING |
The value is specified as a string. |
DATA_TABLE_COMPONENT_INDEX |
The value is specified as a data table component index. |
ENUMERANT_CODE |
The value is specified as an EEC. |
VALUE_CHARACTERISTICS_CODE |
The value is specified as an EVC. |
Property_Data_Value_Type ::= (
< 1 : implementation_dependent,
1 : BOOLEAN,
2 : BYTE,
3 : BYTE_POSITIVE,
4 : BYTE_UNSIGNED,
5 : SHORT_INTEGER,
6 : SHORT_INTEGER_POSITIVE,
7 : SHORT_INTEGER_UNSIGNED,
8 : INTEGER,
9 : INTEGER_INTERVAL,
10 : INTEGER_POSITIVE,
11 : INTEGER_UNSIGNED,
12 : INTEGER_UNSIGNED_INTERVAL,
13 : FLOAT,
14 : FLOAT_INTERVAL,
15 : LONG_FLOAT,
16 : STRING,
17 : DATA_TABLE_COMPONENT_INDEX,
18 : DATA_TABLE_LIBRARY_INDEX,
19 : ENUMERANT_CODE,
20 : VALUE_CHARACTERISTICS_CODE,
[21,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of vector being referenced. The various values have the meanings specified in Table 5.55.
Table 5.55 — Reference_Vector_Type values
Value |
Description |
---|---|
CAMERA_FORWARD_AXIS |
The given <DRM Reference Vector> instance is used to specify the “forward” axis of a <DRM Camera Point> instance. |
CAMERA_UP_AXIS |
The given <DRM Reference Vector> instance is used to specify the “up” axis of a <DRM Camera Point> instance |
EMISSIVITY_AZIMUTH |
An azimuth for emissivity cases. If the <DRM Reference Vector> has a <DRM Property Value> component specifying an electromagnetic band, this azimuth applies only to the specified EM band. If such a <DRM Property Value> is not present, this azimuth applies to all emissivity cases. |
EMISSIVITY_NORMAL |
A normal for emissivity cases. If the <DRM Reference Vector> has a <DRM Property Value> component specifying an electromagnetic band, this normal applies only to the specified EM band. If such a <DRM Property Value> is not present, this normal applies to all emissivity cases. |
FACE_NORMAL |
The given <DRM Reference Vector> instance V specifies a vector for a face F, where F corresponds to an aggregate of V and V corresponds to the normal of F at the point specified by V's <DRM Location> component. |
LIGHT_DIRECTION |
The given <DRM Reference Vector> instance V specifies, for an aggregate <DRM Lobe Data> of V, the following:
|
LSR_TRANSFORMATION_AXIS |
The given <DRM Reference Vector> instance V specifies a vector for a <DRM LSR Transformation Step> instance L, where L corresponds to an aggregate of V such that the transformation step specified by L is performed in the direction specified by V. |
MAJOR_AXIS |
Used to specify the major axis of an <DRM Ellipse>, or the major axis of the elliptical cross-section of a <DRM Cylindrical Volume Extent> or <DRM Elliptic Cylinder>. |
MINOR_AXIS |
Used to specify the minor axis of an <DRM Ellipse>, or the minor axis of the elliptical cross-section of a <DRM Cylindrical Volume Extent> or <DRM Elliptic Cylinder>. |
MOVEMENT_DIRECTION |
The given <DRM Reference Vector> instance V specifies, for a given moving object or phenomenon, the direction of motion. |
PARALLELEPIPED_EDGE_DIRECTION |
The given <DRM Reference Vector> instance V specifies, for an aggregate <DRM Parallelepiped Volume Extent>, the orientation of one of the 3 edges that define the parallelepiped volume. |
REFLECTIVITY_AZIMUTH |
An azimuth for reflectivity/transmissivity cases. If the <DRM Reference Vector> has a <DRM Property Value> component specifying an electromagnetic band, this azimuth applies only to the specified EM band. If such a <DRM Property Value> is not present, this azimuth applies to all reflectivity and transmissivity cases. |
REFLECTIVITY_EMISSIVITY_AZIMUTH |
Azimuth for all Reflectivity and/or Emissivity cases. |
REFLECTIVITY_EMISSIVITY_NORMAL |
A normal for reflectivity and emissivity cases. If the <DRM Reference Vector> has a <DRM Property Value> component specifying an electromagnetic band, this normal applies only to the specified EM band. If such a <DRM Property Value> is not present, this normal applies to all reflectivity and emissivity cases. |
REFLECTIVITY_NORMAL |
A normal for reflectivity/transmissivity cases. If the <DRM Reference Vector> has a <DRM Property Value> component specifying an electromagnetic band, this normal applies only to the specified EM band. If such a <DRM Property Value> is not present, this normal applies to all reflectivity and emissivity cases. |
RENDERING_NORMAL |
The given <DRM Reference Vector> instance V specifies a vector for a face F, where F corresponds to an aggregate of V, such that for visualization rendering applications, V shall be used in place of the FACE_NORMAL of F at the point specified by V's <DRM Location> component. |
VERTICAL_AXIS |
The given <DRM Reference Vector> instance V specifies, for an aggregate <DRM Lobe Data> of V, the axis from which the horizontal_width and vertical_width of the lobe are measured. The selector name VERTICAL_AXIS in this context does not imply any constraint on V's orientation with respect to the axes (if any) of the spatial reference frame in which V is specified. |
Reference_Vector_Type ::= (
< 1 : implementation_dependent,
1 : CAMERA_FORWARD_AXIS,
2 : CAMERA_UP_AXIS,
3 : EMISSIVITY_AZIMUTH,
4 : EMISSIVITY_NORMAL,
5 : FACE_NORMAL,
6 : LIGHT_DIRECTION,
7 : LSR_TRANSFORMATION_AXIS,
8 : MAJOR_AXIS,
9 : MINOR_AXIS,
10 : MOVEMENT_DIRECTION,
11 : PARALLELEPIPED_EDGE_DIRECTION,
12 : REFLECTIVITY_AZIMUTH,
13 : REFLECTIVITY_EMISSIVITY_AZIMUTH,
14 : REFLECTIVITY_EMISSIVITY_NORMAL,
15 : REFLECTIVITY_NORMAL,
16 : RENDERING_NORMAL,
17 : VERTICAL_AXIS,
[18,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies whether to use a point search, bounding box search, or exact search for a search boundary. Point search is quickest, but is not guaranteed to be accurate. For a bounding box search, a partial inclusion inclusion_choice (see CreateSpatialSearchBoundary) is guaranteed to include all objects that are partly included in the search area; it may include extra objects. A box search with full inclusion will return only fully included objects, but it may miss some objects. An exact search is guaranteed to be accurate to a small distance. Valid values are described in Table 5.56.
Table 5.56 — Search_Quality values
Value |
Description |
---|---|
POINT |
A point search algorithm is to be used when searching. |
BOUNDING_BOX |
A bounding box search algorithm is to be used when searching. |
EXACT |
An exact search algorithm is to be used when searching. |
Search_Quality ::= (
< 1 : implementation_dependent,
1 : POINT,
2 : BOUNDING_BOX,
3 : EXACT ,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type is used to specify a rule for searching. The rules define different operations that are to be performed to satisfy a search. Table 5.57 specifies the meaning of the various rules:
Table 5.57 — Search_Rule_Type values
Value |
Description |
---|---|
END |
This value specifies the end of a list of rules. |
AND |
This value specifies that the results of the preceding pair of rules will be joined by a logical AND operation. |
OR |
This value specifies that the results of the preceding pair of rules will be joined by a logical OR operation. |
NOT |
This value specifies that logical negation will be applied to the result of the preceding rule. |
OBJECT_AND |
This value specifies that the results of the preceding pair of rules will be joined by a logical AND operation and that both shall be satisfied by the same set of objects. |
PREDICATE |
Objects that satisfy a search rule of this type shall satisfy the specified user-specified function. The signature of the user-specified function shall match that specified by the Predicate function signature (see 5.5.2 Search_Rule_Predicate). This value is valid for all types of iterators and uses the following fields: rule_type: set to PREDICATE. user_function: set to the user-specified function that will be used to filter objects based on whether or not the user-specified function returns TRUE or FALSE when passed an object. value: set to some user-specified data that may be NULL. |
DRM_CLASS |
Objects that satisfy a search rule of this type shall match the specified DRM class. This value is valid for all types of iterators and uses the following Search_Rule fields: rule_type: set to DRM_CLASS. drm_class: the DRM class of the target object. |
FIELD |
Objects that satisfy a search rule of this type shall match the specified DRM class and exactly the specified value for a given field in the fields of the object being tested. (For EDCS_String fields, this means that they shall have the same length and contain the same contents, and string comparisons are case sensitive.) This value is valid for all types of iterators and uses the following fields: rule_type: set to FIELD. drm_class: set to the DRM class of the target object. value: set to a search value (this value will be checked against the value of the specified field in the fields of an object being tested) field_ordinal: set to the ordinal of the chosen field within the fields of the target object. |
FIELD_RANGE |
Objects that satisfy a search rule of this type shall match both the specified DRM class and the specified range of allowable values for a given field in the fields of the object being tested. This value uses the following fields: rule_type: set to FIELD_RANGE. drm_class: set to the DRM class of the target object. value: set to the lower bound of the search values. second_value: set to the upper bound of the search values. field_ordinal: set to the ordinal of the chosen field within the fields of the target object. RESTRICTIONS:
|
FIELD_ARRAY |
Search by an object’s type and by whether the value of a field in the fields of that object matches any element in the search rule’s array. This value is valid for all types of iterators and uses the following fields: rule_type: set to FIELD_ARRAY. drm_class: set to the DRM class of the target object. value: set to an array of search values (each value will be checked against the value of the specified field in the fields of an object being tested). field_ordinal: set to the ordinal of the chosen field within the fields of the given object |
COMPONENT_DRM_CLASS |
Search for objects of a given type that have one or more components of a given type. This value is valid for all types of iterators and uses the following fields: rule_type: set to COMPONENT_DRM_CLASS. drm_class: set to the DRM class of the target object. component_object_drm_class: |
COMPONENT_FIELD |
Objects that satisfy a search rule of this type shall match the specified DRM class and have one or more components of another given DRM class where those components match the specified value for a given field in the fields of the component object being tested. This value is valid for all types of iterators and uses the following fields: rule_type: set to P_COMPONENT_FIELD. drm_class: set to the DRM class of the target object. component_object_drm_class: field_ordinal: set to the ordinal of the chosen field within the fields of the given component object. value: the search value (this value will be checked against the value of the specified field in the fields of the component object being tested). |
COMPONENT_FIELD_RANGE |
Objects that satisfy a search rule of this type shall match the specified DRM class and have one or more components of another given DRM class where the specified field in the fields of each of those components contains a value within the specified range of search values. This value is valid for all types of iterators and uses the following fields: rule_type: set to COMPONENT_FIELD_RANGE. drm_class: set to the DRM class of the target object. component_object_drm_class: field_ordinal: set to the ordinal of the chosen field within the fields of the given component object. value: the lower bound of the search values. second_value: the upper bound of the search values. RESTRICTIONS: Same as for FIELD_RANGE specified earlier in this table. |
COMPONENT_FIELD_ARRAY |
Objects that satisfy a search rule of this type shall match the specified DRM class and have one or more components of another given DRM class where the specified field in the fields of each of those components contains a value matching one of the specified values in the given array. This value is valid for all types of iterators and uses the following fields: rule_type: set to COMPONENT_FIELD_ARRAY. drm_class: set to the DRM class of the target object. component_object_drm_class: field_ordinal: the ordinal of the chosen field within the fields of the targeted component object. value: an array of search values (each value will be checked against the value of the specified field in the fields of an object being tested). |
ASSOCIATION |
Objects that satisfy a search rule of this type shall have associations that can be traversed to one or more other objects. This value is valid for all types of iterators and uses the following fields: rule_type: set to ASSOCIATION. |
ASSOCIATION_DRM_CLASS |
Objects that satisfy a search rule of this type shall have associations that can be traversed to one or more objects belonging to the specified DRM class. This value is valid for all types of iterators and uses the following fields: rule_type: set to ASSOCIATION_DRM_CLASS. drm_class: set to the DRM class of object that shall be at the other end of a traversable association from the target object. |
MAX_SEARCH_DEPTH |
Objects that satisfy a search rule of this type shall be within the specified depth (distance) from the start object of the component iterator using this rule. This rule is valid only for the three types of component iterator:
This rule type uses the following fields: rule_type: set to MAX_SEARCH_DEPTH. max_depth: set to the maximum allowed distance in links followed from the start_object to any object that is trying to satisfy this rule. |
Search_Rule_Type ::= (
< 1 : implementation_dependent,
1 : END,
2 : AND,
3 : OR,
4 : NOT,
5 : OBJECT_AND,
6 : PREDICATE,
7 : DRM_CLASS,
8 : FIELD,
9 : FIELD_RANGE,
10 : FIELD_ARRAY,
11 : COMPONENT_DRM_CLASS,
12 : COMPONENT_FIELD,
13 : COMPONENT_FIELD_RANGE,
14 : COMPONENT_FIELD_ARRAY,
15 : ASSOCIATION,
16 : ASSOCIATION_DRM_CLASS,
17 : MAX_SEARCH_DEPTH,
[18,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of value to be used during searching. Valid values are described in Table 5.58.
Table 5.58 — Search_Value_Type values
Value |
Description |
---|---|
BOOLEAN |
The search value is specified as a Boolean. |
BYTE |
The search value is specified as a byte. |
BYTE_POSITIVE |
The search value is specified as a positive byte. |
BYTE_UNSIGNED |
The search value is specified as an unsigned byte. |
SHORT_INTEGER |
The search value is specified as a short integer. |
SHORT_INTEGER_POSITIVE |
The search value is specified as a short positive integer. |
SHORT_INTEGER_UNSIGNED |
The search value is specified as a short unsigned integer. |
INTEGER |
The search value is specified as an integer. |
INTEGER_POSITIVE |
The search value is specified as a positive integer. |
INTEGER_UNSIGNED |
The search value is specified as an unsigned integer. |
FLOAT |
The search value is specified as a floating point number. |
LONG_FLOAT |
The search value is specified as a long floating point number. |
ENUMERATED |
The search value is specified as an enumerant. |
ID |
The search value is specified as an ID. |
STRING |
The search value is specified as a string. |
EDCS_ATTRIBUTE_CODE |
The search value is specified as an EDCS attribute code. |
EDCS_CLASSIFICATION_CODE |
The search value is specified as an EDCS classification code. |
Search_Value_Type ::= (
< 1 : implementation_dependent,
1 : BOOLEAN,
2 : BYTE,
3 : BYTE_POSITIVE,
4 : BYTE_UNSIGNED,
5 : SHORT_INTEGER,
6 : SHORT_INTEGER_POSITIVE,
7 : SHORT_INTEGER_UNSIGNED,
8 : INTEGER,
9 : INTEGER_POSITIVE,
10 : INTEGER_UNSIGNED,
11 : FLOAT,
12 : LONG_FLOAT,
13 : ENUMERATED,
14 : ID,
15 : STRING,
16 : EDCS_ATTRIBUTE_CODE,
17 : EDCS_CLASSIFICATION_CODE,
[18,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of security restriction that may be applied to a SEDRIS transmittal. Allowable values are specified in Table 5.60.
Table 5.59 — Security_Restriction_Type values
Value |
Description .. |
---|---|
COPYRIGHT |
The exclusive rights to the publication, production, or sale of the rights to a literary, dramatic, musical, or artistic work, or to the use of a commercial print or label, that has been granted by law for a specified period of time to an author, composer, artist, distributor. |
PATENT |
The exclusive right to make, sell, use or license an invention or discovery granted by a government. |
PATENT_PENDING |
The exclusive right to make, sell, use or license an invention or discovery that has been requested but not yet granted by a government. |
TRADEMARK |
A name, symbol, or other device identifying a product, officially registered and legally restricted to the use of the owner or manufacturer. |
LICENSE |
Formal permission to do or to use something. |
INTELLECTUAL_PROPERTY_RIGHTS |
Rights to financial benefit from, and control of distribution of, non-tangible property that is a result of creativity. |
RESTRICTED |
Withheld from general circulation or disclosure. |
OTHER_RESTRICTIONS |
A limitation not covered by the other cases. |
Security_Restriction_Type ::= (
< 1 : implementation_dependent,
1 : COPYRIGHT,
2 : PATENT,
3 : PATENT_PENDING,
4 : TRADEMARK,
5 : LICENSE,
6 : INTELLECTUAL_PROPERTY_RIGHTS,
7 : OTHER_RESTRICTIONS,
[8,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the illumination method. Allowable values are specified in Table 5.60.
Table 5.60 — Shading_Method values
Value |
Description .. |
---|---|
NONE |
Non-illuminated shading. Pixel colour is not affected by (spot or infinite) light sources. This is sometimes called Fixed shading, since pixel colours are fixed and do not change at render-time. |
FLAT |
The polygon face normal is used when calculating illumination of geometry. |
INTERPOLATED_COLOUR |
Vertex normals and light sources are taken into account when calculating illumination of a geometry attribute. This method is often called Gouraud shading. |
INTERPOLATED_NORMAL |
Vertex normals are interpolated as part of the illumination algorithm. This method is often called Phong shading. |
Shading_Method ::= (
< 1 : implementation_dependent,
1 : NONE,
2 : FLAT,
3 : INTERPOLATED_COLOUR,
4 : INTERPOLATED_NORMAL,
[5,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the format of sound files being played using and instance of <DRM_Sound>. Allowable values are specified in Table 5.61.
Table 5.61 — Sound_Format values
Value |
Description |
---|---|
AIFC |
Audio Interchange Format, Compressed sound file |
AIFF |
Audio Interchange File Format |
AVI |
Audio Video Interleave |
IFF |
Interchange File Format |
MIDI |
Musical Instrument Digital Interface |
MP2 |
MPEG Layer 2 Audio |
MP3 |
MPEG Layer 3 Audio |
MPG |
Moving Picture Experts Group |
QT |
QuickTime |
RA |
Real Audio file |
SND |
Sound file |
VOC |
Creative Voice file |
WAV |
Waveform Audio |
WVE |
Electronic Art’s file format with .wve extension |
Spacing_Type ::= (
< 1 : implementation_dependent,
1 : AIFC,
2 : AIFF,
3 : AVI,
4 : IFF,
5 : MIDI,
6 : MP2,
7 : MP3,
8 : MPG,
9 : QT,
10 : RA,
11 : SND,
12 : VOC,
13 : WAV,
14 : WVI,
[15,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of a <DRM Regular Axis>. Allowable values are specified in Table 5.62.
Table 5.62 — Spacing_Type values
Value |
Description |
---|---|
ARITHMETIC |
Tick marks form an arithmetic progression. To compute the ith tick value, the following formula applies: Tick(i) = first_value + (i × spacing) |
GEOMETRIC |
Tick marks form a geometric progression. To compute the ith tick value, the following formula applies: Tick(i) = first_value × (spacingi) |
Spacing_Type ::= (
< 1 : implementation_dependent,
1 : ARITHMETIC,
2 : GEOMETRIC,
[3,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the unit of distance measurement used for spatial index spacing. Allowable values are specified in Table 5.63.
Table 5.63 — Spatial_Index_Spacing_Unit values
Value |
Description |
---|---|
METRE |
Spatial index spacing is measured in metres. |
ARC_SECOND |
Spatial index spacing is measured in arc-seconds. |
Spatial_Index_Spacing_Unit ::= (
< 1 : implementation_dependent,
1 : METRE,
2 : ARC_SECOND,
[2,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the status codes that can be returned by the API function GetLastFunctionStatus. The meanings for each status code are in Table 5.64. Additional information relating specific status codes with the functions that generate them may be found in Clause 7--Abstract API.
If a function should fail due to multiple reasons, INACTIONABLE_FAILURE shall be returned.
Table 5.64 — Status_Code values
Value |
Description |
---|---|
SUCCESS |
This status code is returned when the function succeeded and no further information is provided. Other status codes do not necessarily indicate that the function failed. See particular functions for more information. |
NO_OBJECT |
This status code is returned by GetNextObject when there are no further objects to return that meet the specified criteria. |
DELETED_OBJECT |
This status code is returned when an object handle to an object that has been removed from a transmittal is passed in to an API function. |
DIFFERENT_TRANSMITTAL |
This status code is returned when valid parameters were provided but one or more objects were encountered that are in a different transmittal than the start object. This status is not an error condition when extracting objects, but is an error condition when attempting to remove objects from a transmittal. |
TRANSMITTAL_INACCESSIBLE |
This status code is returned by the open-transmittal functions if the resolved file location was not accessible by the API. This can occur if the file was opened for read-only or update access and the file does not exist. It can also occur if the file location specified a non-local file and the API had no transport mechanism available capable of accessing the remote file. |
UNRESOLVED_TRANSMITTAL |
This status code is returned when a reference to a transmittal is encountered that cannot be resolved. |
INVALID_ACCESS_MODE |
This status code is returned if the resolved file location of a transmittal was found, but the security permissions of the underlying operating system and/or file system prohibited access to the file in the mode specified. This can occur under any of the following conditions: a. the access mode specified was create or update and the file was marked read-only; b. no access was permitted for the account running the application; c. create or update mode was requested but the API implementation did not support write capability; d. a function requiring create or update mode was invoked for an object in a transmittal that was opened in read-only mode. |
UNSUPPORTED_FORMAT |
This status code is returned when a transmittal was requested in a format that is not supported by the implementation(s) of the SEDRIS API linked to the application. |
INVALID_TRANSMITTAL_NAME |
This status code is returned when a parameter representing a transmittal name did not specify a name that was valid according to the formal SEDRIS namespace as specified by the ResolveTransmittalName function. |
UNPUBLISHED_OBJECT |
This status code is returned when an object is encountered (while attempting to process an inter-transmittal reference) that is not published by its transmittal. |
UNRESOLVED_OBJECT |
This status code is returned when a DRM object handle is encountered that references a DRM object that is not available to the SEDRIS API, i.e., the DRM object is contained within a transmittal whose content cannot be accessed. NOTE This status is not necessarily an error condition. |
UNRESOLVED_START_OBJECT |
This status code is returned when an argument has been provided to an unresolved object. EXAMPLE A start object for an iterator. This status is an error condition, returned when the API requires access to the content of the unresolved object in order to perform the requested operation. |
INACTIONABLE_FAILURE |
This status code is returned to indicate a general, unknown, or other error for which there is no meaningful branch that the application code could make. This status code is returned when any invalid parameters are passed in to API functions. |
OUT_OF_MEMORY |
This status code is returned when the implementation is unable to allocate sufficient memory to satisfy the requirements of the function. |
Status_Code ::= (
< 1 : implementation_dependent,
1 : SUCCESS,
2 : NO_OBJECT,
3 : DELETED_OBJECT,
4 : DIFFERENT_TRANSMITTAL,
5 : TRANSMITTAL_INACCESSIBLE,
6 : UNRESOLVED_TRANSMITTAL,
7 : INVALID_ACCESS_MODE,
8 : UNSUPPORTED_FORMAT,
9 : INVALID_TRANSMITTAL_NAME,
10 : UNPUBLISHED_OBJECT,
11 : UNRESOLVED_OBJECT,
12 : UNRESOLVED_START_OBJECT,
[13,999] : reserved for future standardization,
1000 : INACTIONABLE_FAILURE,
1001 : OUT_OF_MEMORY,
[1002,1999] : reserved for other operating system errors,
[2000,3999] : reserved for language binding dependent errors,
> 4000 : reserved for registration )
This data type specifies the format of a file defining
symbols used by the
Symbol_Format ::= (
< 1 : implementation_dependent,
1 : CGM,
[2,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the configuration of time data. Valid values are described in Table 5.66.
Table 5.66 — Time_Configuration values
Value |
Description |
---|---|
DATE_YMD_AND_TIME_HMS |
The time specifies the year, month, and the day of the month as well as the hour, the minute, and the second. |
DATE_YMD_AND_TIME_HM |
The time specifies the year, month, and the day of the month as well as the hour and minute. |
DATE_YMD_AND_TIME_H |
The time specifies the year, month, and the day of the month as well as the hour. |
DATE_YMD |
The time specifies the year, month, and the day of the month. |
DATE_YD_AND_TIME_HMS |
The time specifies the year and the day of the year as well as the hour, the minute, and the second. |
DATE_YD_AND_TIME_HM |
The time specifies the year and the day of the year as well as the hour and minute. |
DATE_YD_AND_TIME_H |
The time specifies the year and the day of the year as well as the hour. |
DATE_YD |
The time specifies the year and the day of the year. |
DATE_MD_AND_TIME_HMS |
The time specifies the month and the day of the month as well as the hour, the minute, and the second and applies to any year. |
DATE_MD_AND_TIME_HM |
The time specifies the month and the day of the month as well as the hour and minute and applies to any year. |
DATE_MD_AND_TIME_H |
The time specifies the year and the day of the year as well as the hour and applies to any year. |
DATE_Y |
The time specifies only the year. |
DATE_M |
The time specifies the month that applies to any year. |
DAY_OF_YEAR |
The time specifies a specific day within a calendar year without specifying a specific year, and shall be between 0 and 365 inclusive. |
Time_Configuration ::= (
< 1 : implementation_dependent,
1 : DATE_YMD_AND_TIME_HMS,
2 : DATE_YMD_AND_TIME_HM,
3 : DATE_YMD_AND_TIME_H,
4 : DATE_YMD,
5 : DATE_YD_AND_TIME_HMS,
6 : DATE_YD_AND_TIME_HM,
7 : DATE_YD_AND_TIME_H,
8 : DATE_YD,
9 : DATE_Y,
10 : DATE_M,
11 : DATE_D,
[12,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies what “type” of time data is being used to organize a <DRM Time Related Features> or <DRM Geometry> aggregate. Valid values are described in Table 5.67.
Table 5.67 — Time_Data_Type values
Value |
Description |
---|---|
MONTH |
The time data is organized by month. |
SEASON |
The time data is organized by season. |
TIME_INTERVAL |
The time data is organized into time intervals. |
TIME_OF_DAY |
The time data is organized by time of day. |
TIME_POINT |
The time data is organized by time points. |
Time_Data_Type ::= (
< 1 : implementation_dependent,
1 : MONTH,
2 : SEASON,
3 : TIME_INTERVAL,
4 : TIME_OF_DAY,
5 : TIME_POINT,
[6,1000 ] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies whether time is being measured in terms of absolute time, relative to the start of the exercise, or relative to some reference time. Valid values are described in Table 5.68.
Table 5.68 — Time_Measurement_Type values
Value |
Description |
---|---|
GMT |
Time is specified relative to Greenwich Mean Time. |
RELATIVE_TO_EXERCISE_START |
Time is specified relative to the start of the exercise. |
RELATIVE_TO_REFREENCE_TIME |
Time is specified relative to some stated reference time. |
Time_Measurement_Type ::= (
< 1 : implementation_dependent,
1 : GMT,
2 : RELATIVE_TO_EXERCISE_START,
3 : RELATIVE_TO_REFERENCE_TIME,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the meaning of the time represented by a <DRM Base Time Data> instance, in relation to the data set represented by the SEDRIS object aggregating that <DRM Base Time Data>. Valid values are described in Table 5.69.
Table 5.69 — Time_Significance values
Value |
Description |
---|---|
ANALYSIS |
The <DRM Base Time Data> instance represents the time at which the analysis was performed that resulted in the data set. |
CERTIFICATION_DATE |
The <DRM Base Time Data> instance represents the date that the data set was certified. |
CREATION_DATE |
The <DRM Base Time Data> instance represents the date that the data set was created. |
FORECAST |
The <DRM Base Time Data> instance represents the time at which the forecast is valid that corresponds to the data set. |
MODIFICATION_DATE |
The <DRM Base Time Data> instance represents the date that the data set was last modified. |
OBSERVATION |
The <DRM Base Time Data> instance represents the time at which an observation was made. |
OCCURRENCE |
The <DRM Base Time Data> instance represents the time that the event occurred that is represented by the data being described. |
PERIOD_OF_CONTENT |
The <DRM Base Time Data> instance represents the time period spanned by the data set. |
PUBLICATION_DATE |
The <DRM Base Time Data> instance represents the date that the data set was published. |
REFERENCE |
The <DRM Base Time Data> instance represents a base time to which other times are referenced. |
REVISION_DATE |
The <DRM Base Time Data> instance represents the date that the data set was last revised. |
Time_Significance ::= (
< 1 : implementation_dependent,
1 : ANALYSIS,
2 : CERTIFICATION_DATE,
3 : CREATION_DATE,
4 : FORECAST,
5 : MODIFICATION_DATE,
6 : OBSERVATION,
7 : OCCURRENCE,
8 : PERIOD_OF_CONTENT,
9 : PUBLICATION_DATE,
10 : REFERENCE,
11 : REVISION_DATE,
[12,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the names of the available transmittal API functions.
TRANSMITTAL_API_FUNCTION ::= (
< 1 : implementation_dependent,
1 : ADD_ASSOCIATE_RELATIONSHIP,
2 : ADD_COMPONENT_RELATIONSHIP,
3 : CLONE_OBJECT,
4 : CLOSE_TRANSMITTAL,
5 : CMYK_TO_CMY,
6 : CMY_TO_CMYK,
7 : CONVERT_COLOR_TO_GIVEN_MODEL,
8 : CREATE_OBJECT,
9 : CREATE_SEARCH_FILTER,
10 : CREATE_SPATIAL_SEARCH_BOUNDARY,
11 : DETERMINE_SPATIAL_INCLUSION,
12 : FREE_ITERATOR,
13 : FREE_OBJECT,
14 : FREE_PACKED_HIERARCHY,
15 : FREE_REMAINING_OBJECTS_LIST,
16 : FREE_REMAINING_PACKED_HIERARCHIES_LIST,
17 : FREE_SEARCH_FILTER,
18 : FREE_SPATIAL_SEARCH_BOUNDARY,
19 : FREE_TRANSMITTAL,
20 : GET_AGGREGATE,
21 : GET_ASSOCIATE,
22 : GET_COLOUR_MODEL,
23 : GET_COMPONENT,
24 : GET_CONTEXT_TRANSFORMATION,
25 : GET_DATA_TABLE,
26 : GET_DRM_CLASS,
27 : GET_ELEMENT_OF_DATA_TABLE,
28 : GET_ERROR_DESCRIPTION,
29 : GET_FIELDS,
30 : GET_ID_FOR_OBJECT,
31 : GET_IMAGE_DATA,
32 : GET_IMPLEMENTATION_IDENTIFIER,
33 : GET_ITERATION_LENGTH_REMAINING,
34 : GET_NEXT_OBJECT,
35 : GET_NTH_ASSOCIATE_OF_DRM_CLASS,
36 : GET_NTH_COMPONENT_OF_DRM_CLASS,
37 : GET_NUMBER_OF_PATHS_TO_TRANSMITTAL_ROOT,
38 : GET_OBJECT_FOR_ID,
39 : GET_OBJECT_REFERENCE_COUNT,
40 : GET_PACKED_DATA_TABLE,
41 : GET_PACKED_HIERARCHY,
42 : GET_PUBLISHED_LABELS,
43 : GET_PUBLISHED_OBJECT_LIST,
44 : GET_REFERENCED_TRANSMITTAL_LIST,
45 : GET_RELATION_COUNTS,
46 : GET_REMAINING_OBJECTS_LIST,
47 : GET_REMAINING_PACKED_HIERARCHIES,
48 : GET_ROOT_OBJECT,
49 : GET_SORT_KEY,
50 : GET_SRF_INFO,
51 : GET_TRANSMITTAL_FROM_OBJECT,
52 : GET_TRANSMITTAL_LOCATION,
53 : GET_TRANSMITTAL_NAME,
54 : GET_TRANSMITTAL_VERSION_INFORMATION,
55 : GET_UNIQUE_TRANSMITTAL_ID,
56 : GET_UNRESOLVED_OBJECT_FROM_PUBLISHED_LABEL,
57 : GET_USER_DATA,
58 : HAS_AGGREGATES,
59 : HAS_ASSOCIATES,
60 : HAS_COMPONENTS,
61 : INITIALIZE_AGGREGATE_ITERATOR,
62 : INITIALIZE_ASSOCIATE_ITERATOR,
63 : INITIALIZE_COMPONENT_ITERATOR,
64 : INITIALIZE_INHERITED_COMPONENT_ITERATOR,
65 : OBJECT_IS_PUBLISHED,
66 : OBJECT_IS_RESOLVED,
67 : OBJECTS_ARE_SAME,
68 : OPEN_TRANSMITTAL_BY_LOCATION,
69 : OPEN_TRANSMITTAL_BY_NAME,
70 : PUBLISH_OBJECT,
71 : PUT_DATA_TABLE,
72 : PUT_DATA_TABLE_EXTENT,
73 : PUT_ELEMENT_OF_DATA_TABLE,
74 : PUT_ELEMENT_OF_DATA_TABLE_EXTENT,
75 : PUT_FIELDS,
76 : PUT_IMAGE_DATA,
77 : PUT_PACKED_DATA_TABLE,
78 : PUT_PACKED_DATA_TABLE_EXTENT,
79 : REMOVE_ASSOCIATE_RELATIONSHIP,
80 : REMOVE_COMPONENT_RELATIONSHIP,
81 : REMOVE_FROM_TRANSMITTAL,
82 : RESOLVE_OBJECT,
83 : RESOLVE_TRANSMITTAL_NAME,
84 : SET_COLOUR_MODEL,
85 : SET_FIRST_ERROR_MESSAGE,
86 : SET_GENERAL_CALLBACK,
87 : SET_GENERAL_CALLBACK_FOR_ONE_FUNCTION,
88 : SET_ROOT_OBJECT,
89 : SET_SECOND_ERROR_MESSAGE,
90 : SET_SPECIFIC_CALLBACK,
91 : SET_SRF_INFO,
92 : SET_TRANSMITTAL_NAME,
93 : SET_USER_DATA,
94 : TRANSMITTALS_ARE_SAME,
95 : UNPUBLISH_OBJECT,
96 : USE_DEFAULT_COLOUR_MODEL,
97 : USE_DEFAULT_SRF_INFO,
[98,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type indicates the desired traversal order for a component iterator. The traversal order of the branches of a <DRM Aggregate Feature> or <DRM Aggregate Geometry> is determined either by the DRM or by the hierarchy_order_parameters for the iterator, but the general traversal scheme (i.e., the order to search for objects from the <DRM Transmittal Root> down to the maximum depth of the search) is specified using this data type.
All component iterators treat the start_object of the iterator as the “root” of a “composition tree”. The order of the tree traversal from that root is given by one of the enumerants described in Table 5.70.
Table 5.70 — Traversal_Order values
Value |
Description |
---|---|
BREADTH_FIRST |
The tree is to be traversed breadth first. |
DEPTH_FIRST |
The tree is to be traversed depth first. |
MOST_EFFICIENT |
The most efficient traversal order is to be used. |
Traversal_Order ::= (
< 1 : implementation_dependent,
1 : BREADTH_FIRST,
2 : DEPTH_FIRST,
3 : MOST_EFFICIENT,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the type of underlining to be applied to the associated text. The weight of an underline is determined by the width of the underline and typically varies according to font size and font style. Valid values are described in Table 5.71.
Table 5.71 — Underline_Style values
Value |
Description |
---|---|
NONE |
The text is displayed without underlines. |
SINGLE |
The text is displayed with a single underline of normal weight. |
DOUBLE |
The text is displayed with a double underline of normal weight. |
BOLD_SINGLE |
The text is displayed with a single underline of increased weight. |
BOLD_DOUBLE |
The text is displayed with a double underline of increased weight. |
DASHED |
The text is displayed with a single dashed underline of normal weight. |
DOTTED |
The text is displayed with a single dotted underline of normal weight. |
Underline_Style ::=
( < 1 : implementation_dependent,
1 : NONE,
2 : SINGLE,
3 : DOUBLE,
4 : BOLD_SINGLE,
5 : BOLD_DOUBLE,
6 : DASHED,
7 : DOTTED,
[8,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the reason why a <DRM Union of Features> or <DRM Union of Geometry> instance was created. Allowable values are specified in Table 5.35.
Table 5.35 — Union_Reason values
Value |
Description |
---|---|
CLASSIFIED_OBJECT |
The union instance has a component <DRM Classification Data> instance, and represents a single environmental object. |
COLLECTION_OF_CLASSIFIED_OBJECTS |
The union instance has a component <DRM Classification Data> instance, and represents a collection of environmental objects corresponding to the branches of the union such that the <DRM Classification Data> instance is inherited by each branch component. |
OTHER |
The union instance has no component <DRM Classification Data> instance. The reason for creating the union instance is unknown but shall directly represent an environmental object or collection of environmental objects. |
Union_Reason ::= (
< 1 : implementation_dependent,
1 : CLASSIFIED_OBJECT,
2 : COLLECTION_OF_CLASSIFIED_OBJECTS,
3 : OTHER,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies what behavior should occur if the <DRM State Related Geometry> or <DRM State Related Features> state_value does not match any of the state tags supplied in the corresponding state_entry_array entry of State_Select_Parameters. Valid values are described in Table 5.72.
Table 5.72 — Unmatched_State_Behaviour values
Value |
Description |
---|---|
NONE |
If no match is found, no action is taken. |
DEFAULT |
If no match is found, the default action is taken. |
ALL |
If no match is found, all specified actions are taken. |
Unmatched_State_Behaviour ::=
( < 1 : implementation_dependent,
1 : NONE,
2 : DEFAULT,
3 : ALL,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type is used to specify the meaning of some quantity being used to drive one of the controlling <DRM Expression> components of a <DRM Control Link> instance. Valid values are described in Table 5.74.
Table 5.73 — Variable_Code values
Value |
Description |
---|---|
ACTIVE_STATE_VALUE |
Specifies, for the aggregating <DRM State Control Link>, the active_state_value field of the target <DRM State Related Features> and <DRM State Related Geometry> instances. |
COLOUR_COORDINATE_1 |
Specifies, for the aggregating <DRM Control Link>, the first colour coordinate of the target <DRM Colour Data> instance(s). |
COLOUR_COORDINATE_2 |
Specifies, for the aggregating <DRM Control Link>, the second colour coordinate of the target <DRM Colour Data> instance(s). |
COLOUR_COORDINATE_3 |
Specifies, for the aggregating <DRM Control Link>, the third colour coordinate of the target <DRM Colour Data> instance(s). |
COLOUR_INDEX |
Specifies, for the aggregating < a href="DataItems/Colour_Index_Control_Link.html"><DRM Colour Index Control Link>, the index field of the target <DRM Colour Index> instance(s). |
COLOUR_INTENSITY_LEVEL |
Specifies, for the aggregating <DRM Colour Index Control Link>, the third colour coordinate of the target <DRM Colour Index> instance(s). |
GEOMETRY_TEXTURE |
Used in specifying the texture of the object described by the <DRM Expression> of which the given <DRM Variable> is a part. |
HEAT_PRODUCTION |
Specifies the heat production status of the object described by the <DRM Expression> of which the given <DRM Variable> is a part. |
LIGHT_SOURCE_ACTIVE |
Specifies, for the aggregating <DRM Light Source Control Link>, the active field of the target <DRM Light Source> instance(s). |
LIGHT_RENDERING_PROPERTIES_ACTIVE |
Specifies, for the aggregating <DRM Light Rendering Properties Control Link>, the active field of the target <DRM Light Rendering Properties> instance(s). |
LIGHT_RENDERING_PROPERTIES_CANDELA_VALUE |
Specifies, for the aggregating <DRM Light Rendering Properties Control Link>, the candela_value field of the target <DRM Light Rendering Properties> instance(s). |
LSR_LOCATION_3D_U |
Specifies, for the aggregating <DRM LSR Location 3D Control Link>, the u field of the target <DRM LSR Location 3D> instance(s). |
LSR_LOCATION_3D_V |
Specifies, for the aggregating <DRM LSR Location 3D Control Link>, the v field of the target <DRM LSR Location 3D> instance(s). |
LSR_LOCATION_3D_W |
Specifies, for the aggregating <DRM LSR Location 3D Control Link>, the w field of the target <DRM LSR Location 3D> instance(s). |
POLYGON_FLAGS_COLLIDIBLE |
Specifies, for the aggregating <DRM Polygon Control Link>, the COLLIDIBLE flag of the target <DRM Polygon> instance(s). |
POLYGON_FLAGS_HAT_TEST |
Specifies, for the aggregating <DRM Polygon Control Link>, the HAT_TEST flag of the target <DRM Polygon> instance(s). |
POLYGON_FLAGS_INVISIBLE |
Specifies, for the aggregating <DRM Polygon Control Link>, the INVISIBLE flag of the target <DRM Polygon> instance(s). |
POLYGON_FLAGS_LASER_RANGE_FINDING |
Specifies, for the aggregating <DRM Polygon Control Link>, the LASER_RANGE_FINDING flag of the target <DRM Polygon> instance(s). |
PROPERTY_SET_INDEX |
Specifies, for the aggregating <DRM Property Set Index Control Link>, the index field of the target <DRM Property Set Index> instance(s). |
PROPERTY_TABLE_REFERENCE_INDEX_ON_AXIS |
Specifies, for the aggregating <DRM Property Table Reference Control Link>, the index_on_axis field of the target <DRM Property Table Reference> instance(s). |
REFERENCE_VECTOR_V0 |
Specifies, for the aggregating <DRM Reference Vector Control Link>, the first vector component of the vector field of the target <DRM Reference Vector> instance(s). |
REFERENCE_VECTOR_V1 |
Specifies, for the aggregating <DRM Reference Vector Control Link>, the second vector component of the vector field of the target <DRM Reference Vector> instance(s). |
REFERENCE_VECTOR_V2 |
Specifies, for the aggregating <DRM Reference Vector Control Link>, the third vector component of the vector field of the target <DRM Reference Vector> instance(s). |
ROTATION_ANGLE |
Specifies, for the aggregating <DRM Rotation Control Link>, the angle field of the target <DRM Rotation> instance(s). |
SCALE_AMOUNT |
Specifies, for the aggregating <DRM Scale Control Link>, the scale_amount field of the target <DRM Scale> instance(s). |
SOUND_INSTANCE_ACTIVE |
Specifies, for the aggregating <DRM Sound Instance Control Link>, the active field of the target <DRM Sound Instance> instance(s). |
TEXTURE_COORDINATE_S |
Specifies, for the aggregating <DRM Texture Coordinate Control Link>, the s field of the target <DRM Texture Coordinate> instance(s). |
TEXTURE_COORDINATE_T |
Specifies, for the aggregating <DRM Texture Coordinate Control Link>, the t field of the target <DRM Texture Coordinate> instance(s). |
TRANSLATION_AMOUNT |
Specifies, for the aggregating <DRM Translation Control Link>, the translation_amount field of the target <DRM Translation> instance(s). |
TRANSLUCENCY_VALUE |
Specifies, for the aggregating <DRM Translucency Control Link>, the translucency_value field of the target <DRM Translucency> instance(s). |
Variable_Code ::= (
< 1 : implementation_dependent,
1 : ACTIVE_STATE_VALUE,
2 : COLOUR_COORDINATE_1,
3 : COLOUR_COORDINATE_2,
4 : COLOUR_COORDINATE_3,
5 : COLOUR_INDEX,
6 : COLOUR_INTENSITY_LEVEL,
7 : GEOMETRY_TEXTURE,
8 : HEAT_PRODUCTION,
9 : LIGHT_SOURCE_ACTIVE,
10 : LIGHT_RENDERING_PROPERTIES_ACTIVE,
11 : LIGHT_RENDERING_PROPERTIES_CANDELA_VALUE,
12 : LSR_LOCATION_3D_X,
13 : LSR_LOCATION_3D_Y,
14 : LSR_LOCATION_3D_Z,
15 : POLYGON_FLAGS_COLLIDIBLE,
16 : POLYGON_FLAGS_HAT_TEST,
17 : POLYGON_FLAGS_INVISIBLE,
18 : POLYGON_FLAGS_LASER_RANGE_FINDING,
19 : PROPERTY_SET_INDEX,
20 : PROPERTY_TABLE_REFERENCE_INDEX_ON_AXIS,
21 : REFERENCE_VECTOR_V0,
22 : REFERENCE_VECTOR_V1,
23 : REFERENCE_VECTOR_V2,
24 : ROTATION_ANGLE,
25 : SCALE_AMOUNT,
26 : SOUND_INSTANCE_ACTIVE,
27 : TEXTURE_COORDINATE_S,
28 : TEXTURE_COORDINATE_T,
29 : TRANSLATION_AMOUNT,
30 : TRANSLUCENCY_VALUE,
[31,1000] : reserved for future standardization,
> 1000 : reserved for registration )
This data type specifies the shape of volume extents. Valid values are described in Table 5.74.
Table 5.74 — Volumetric_Shape values
Value |
Description |
---|---|
SPHERE |
The volume is in the shape of a sphere. |
CYLINDER |
The volume is in the shape of a cylinder. |
PARALLELEPIPED |
The volume is in the shape of a parallelepiped. |
Volumetric_Shape ::= (
< 1 : implementation_dependent,
1 : SPHERE,
2 : CYLINDER,
3 : PARALLELEPIPED,
[4,1000] : reserved for future standardization,
> 1000 : reserved for registration )
Set data types are used to indicate membership in a group of properties. Each set data type consists of a listing of the names that are members of the set. An instance of a set data type can consist of any combination of members but each member can only exist once in the set. Additional members to a set data type can be added by registration (see 4.21 Registration).
This data type specifies which side or sides of a face should be displayed. This data type is not applicable if backfaced culling is used. Allowable set members are in Table 5.75.
Table 5.75 — Display_Side values
Value |
Description |
---|---|
FRONT |
The front side of a polygon face is displayed. |
BACK |
The back side of a polygon face is displayed. |
Display_Side ::= (
FRONT,
BACK )
This data type specifies a style in which to render geometric objects. Allowable set members are in Table 5.76.
Table 5.76 — Display_Style values
Value |
Description .. |
---|---|
SOLID |
Only the faces specified by the Display_Side parameter of the <DRM Rendering Properties> are displayed. |
WIREFRAME |
One the edges of polygons are displayed. |
Display_Style ::= (
SOLID,
WIREFRAME,
additional registered set members )
This data type indicates at a “high level” whether any components of the given <DRM Aggregate Geometry> and <DRM Aggregate Feature> objects should be traversed in an ordered fashion. If a type of object is not included in the set, the rest of the Hierarchy_Order_Parameter values for that type of object are ignored. Only if a type of object is included in the set are the Hierarchy_Order_Parameters values examined. The components of that object are traversed in the ordered specified by the Hierarchy_Order_Parameters of that type.
General_Hierarchy_Order ::= (
ALTERNATE_HIERARCHY,
CLASSIFICATION_RELATED,
LEVEL_OF_DETAIL_RELATED,
OCT_TREE_RELATED,
QUAD_TREE_RELATED,
SEPARATING_PLANE,
SPATIAL_INDEX_RELATED_GENERAL,
STATE_RELATED,
TIME_RELATED,
additional registered set members )
This data type specifies flags that are used to indicate the state or use of a polygon. Details about each flag are contained in Table 5.77.
Table 5.77 — Polygon_Flag values
Flag |
Description |
---|---|
TERRAIN |
This flag specifies that the associated polygon is a terrain polygon. |
HAT_TEST |
This flag specifies that this polygon is used for height above terrain tests. |
COLLIDIBLE |
This flag specifies that this polygon is used for collision detection. If an object collides with this polygon, a collision state is set. |
PROJECTILE_COLLIDIBLE |
This flag specifies that this polygon is used for projectile collision detection. If a projectile collides with this polygon, a projectile collision state is set. |
BACKDROP_SKY |
This flag specifies that this polygon is the default sky backdrop. |
BACKDROP_GROUND |
This flag specifies that this polygon is the default ground backdrop. |
CUT |
This flag specifies that this polygon is cut below the terrain surface. These are normally derived from <DRM Linear Feature> instances, such as roads and rivers. |
RAISED |
This flag specifies that this polygon is a filling polygon above the terrain surface. These are normally derived from linear features such as roads. This flag also indicates that this polygon is raised above the terrain surface. These are normally derived from areal features such as forest canopies. |
DECAL |
This flag specifies that this polygon always has rendering priority above any other coplanar polygon. This flag will supercede the index value in the rendering priority index class. |
INACTIVE |
This flag specifies that this polygon is inactive, or not used. |
INVISIBLE |
This flag specifies that this polygon is invisible, or not seen. |
FOOTPRINT |
This flag specifies that this polygon is a footprint for other geometry. |
WATER |
This flag specifies that this polygon is water. This flag is used only when other polygons (e.g., lake bottom) are below it. |
CLUTTER_ENHANCED |
This flag specifies that this polygon has algorithmically scattered model instances on it. |
SHADOW |
This flag specifies that this polygon is in a shadow. |
SUN_ILLUMINATED |
This flag specifies that this polygon is illuminated depending on the position of the sun. |
MOON_REFLECTION |
This flag specifies that the moon reflection is to be generated upon this polygon. |
ENABLE_FRACTAL |
This flag specifies that the face of this polygon is allowed to fractalize in real-time. This is used for sea states. |
CUT_IMAGERY |
This flag specifies that this polygon is to be used to cut geospecific imagery into the cultural features. |
VISIBLE_PERIMETER |
This flag is used with the RAISED flag to specify that this polygon is raised but also specifies that the perimeter wall is visible. |
VISIBLE_INTERIOR |
This flag is used with the RAISED flag to specify that this polygon is raised but also specifies that the interior wall is visible. |
VISIBLE_FLOOR |
This flag is used with the RAISED flag to specify that this polygon is raised but also specifies that the floor is visible. |
OPAQUE_TOP |
This flag is used with the RAISED flag to specify that this polygon is raised but also specifies that the top is opaque. |
LASER_RANGE_FINDING |
This flag specifies that this polygon is used for horizontal tests. This flag is much like the HAT_TEST flag. Instead of testing in the vertical direction, this flag indicates the polygon is used in tests in the horizontal direction. |
REFLECTIVE |
This flag specifies that this polygon reflects light that is shown on it. |
SITE_OCCULTING |
This flag specifies that this polygon is not occulted by other polygons. |
ENABLE_POLYGON_RANGE_BLENDING |
This flag specifies that range ring blending is enabled for this polygon. Polygons that have this flag set will all blend (geometry and texture) at the same range (distance). |
ENABLE_FEATURE_SIZE_BLENDING |
This flag specifies that feature-based blending is enabled for this polygon. Polygons that have this flag set will all blend (geometry and texture) simultaneously based on the size (radius) of the original feature from which the polygons were derived. |
CONCAVE |
This flag specifies that this polygon is concave. |
DO_NOT_DRAPE |
For conforming <DRM Polygon>s (i. e., <DRM Polygon>s specified using only <DRM LSR Location 2D>s), a <DRM Polygon> usually drapes across the terrain, breaking into multiple polygons if the draped polygon crosses terrain facets. If this flag is set, the <DRM Polygon> is not draped and does not break at terrain facets. Instead, terrain facets are ignored. The <DRM Polygon> is simply specified by the locations of its conformed <DRM Vertex> instances. |
Polygon_Flags ::= (
TERRAIN,
HAT_TEST,
COLLIDIBLE,
PROJECTILE_COLLIDIBLE,
BACKDROP_SKY,
BACKDROP_GROUND,
CUT,
RAISED,
DECAL,
INACTIVE,
INVISIBLE,
FOOTPRINT,
WATER,
CLUTTER_ENHANCED,
SHADOW,
SUN_ILLUMINATED,
MOON_REFLECTION,
ENABLE_FRACTAL,
CUT_IMAGERY,
VISIBLE_PERIMETER,
VISIBLE_INTERIOR,
VISIBLE_FLOOR,
OPAQUE_TOP,
LASER_RANGE_FINDING,
REFLECTIVE,
SITE_OCCULTING,
ENABLE_POLYGON_RANGE_BLENDING,
ENABLE_FEATURE_SIZE_BLENDING,
CONCAVE,
DO_NOT_DRAPE
additional registered set members )
This data type indicates the intended use of a <DRM Colour>, a <DRM Colour Table>, or a <DRM Geometry> instance with <DRM Rendering Properties>.
Presentation_Domain ::= (
OTW,
IR_HI_BAND,
IR_LOW_BAND,
NVG,
DAY_TV_COLOUR,
DAY_TV_BW,
RADAR,
SAR,
THERMAL,
LOW_LIGHT_TV,
additional registered set members )
Data types that are created from the basic fundamental data types are called structured fundamental data types. This mechanism provides support for arrays and lists of data types (both basic and structured) as well as data types that group several other data types into records.
Any data type can be combined in arrays. This data type provides support for instances where all of the individual data elements an ordered set are of like type. Arrays may be of one, two, or three dimensions. Examples of each are shown in Table 5.78:
One-dimensional arrays (lists): |
Data_Type_Name[l] |
---|---|
Two-dimensional arrays: |
Data_Type_Name[l,w] |
Three-dimensional arrays: |
Data_Type_Name[l,w,d] |
The numbers l, w, and d represent the size of the corresponding length, width, and depth dimension. If the dimension is variable, an asterisk is used. A binding-specific method shall be provided for determining the size of the array.
EXAMPLE A data type for a variable length list of integers would be specified as:
Integer[*]
Similarly, a standard 4×4 matrix would be specified as:
Float[4,4]
The following standard array data types are specified:
Matrix_3x3 ::= Long_Float[3,3]
Matrix_4x4 ::= Long_Float[4,4]
Vector_3 ::= Long_Float[3]
Data types that encompass a variety of information are called record data types. A record data type consists of a sequence of fundamental data types that together form one record of data. Each entry of a record data type can be of any of the fundamental data types including other record data types.
Invariant record data types are specified as follows:
record_data_type_name ::= {
field1_name field1_data_type; optional comment
field2_name field2_data_type; optional comment
• • •
fieldn_name fieldn_data_type; optional comment
}
Record data types that specify a sized array indicate the size of the array by placing the name of the size parameter within the brackets for the array type as follows:
record_data_type_name ::= {
size_name size_data_type; optional comment
array_name array_data_type[size_name]; optional comment
}
Multiple arrays may be sized using the same size parameter. The maximum allowed size for the array is the maximum that can be specified by the data type of the size parameter. Record data types containing unsized or self-sized data may be specified by using the [*] notation specified in 5.3.2 Array data types.
In some cases, the data types used in the record data type depend on a parameter to the record data type. Such record data types are called variant record data types. The variant parameter (also called the discriminant) shall be a fundamental integer, enumerated, or selection item data type. The variant value fields shall consist of one valid value of the variant data and one entry shall exist for each of the possible values.
Variant record data types are specified as follows:
record_data_type_name ::= ( variant_name variant_data_type) {
variant_value1 : field1_name field1_data_type; optional comment
variant_value2 : field2_name field2_data_type; optional comment
• • •
variant_valuen : fieldn_name fieldn_data_type; optional comment
}
This data type specifies a time interval based on an absolute time specification.
Absolute_Time_Interval_Entry ::= {
reference_time_point Absolute_Time_Point_Fields;
absolute_interval Absolute_Time_Interval_Fields;
}
This data type encapsulates the field elements of the <DRM Absolute Time> class. The hour field uses the 24-hour clock. Allowable range for hour is 0..23. Allowable range for minutes is 0..59. Allowable range for seconds is [0,60).
Absolute_Time_Fields ::= {
time_significance Time_Significance;
year Integer;
month Month;
day Integer;
hour Byte;
minutes Byte;
seconds Long_Float;
time_format Time_Format;
}
This data type encapsulates the field elements of the <DRM Absolute Time Interval> class.
Absolute_Time_Interval_Fields ::= {
time_significance Time_Significance;
delta_days Integer;
delta_hours Byte_Unsigned;
delta_minutes Byte_Unsigned;
delta_seconds Long_Float;
}
This data type encapsulates the field elements of the <DRM Access> class.
Access_Fields ::= {
access_constraints Security_Restriction_Type;
use_constraints Security_Restriction_Type;
security Security_Information;
}
This data type encapsulates the elements of address metadata.
Address ::= {
delivery_point String;
city String;
administrative_area String;
postal_code String;
country String;
}
This data type specifies the specifies the data in the fields of the <DRM Aggregate Feature> class.
Aggregate_Feature_Fields ::= {
unique_descendant Boolean;
strict_organizing_principle Boolean;
}
This data type specifies the specifies the data in the fields of the <DRM Aggregate Geometry> class.
Aggregate_Geometry_Fields ::= {
unique_descendant Boolean;
strict_organizing_principle Boolean;
}
This data type is used to build hierarchical search criteria. The array members shall be distinct.
When used within a Hierarchy_Select_Parameters record, this data type selects which branches to traverse from a <DRM Alternate Hierarchy Related Features> object or <DRM Alternate Hierarchy Related Geometry> object when encountered by a component iterator. All branches that have a link object whose field values match one of the entries contained in this record will be traversed.
When used within a Hierarchy_Order_Parameters record, this data type controls the traversal order of the branches from a <DRM Alternate Hierarchy Related Features> or <DRM Alternate Hierarchy Related Geometry> object when encountered by a component iterator. For the set of branches that will be traversed, the order of that traversal will be specified by the feature_hierarchy_data_array or geometry_hierarchy_data_array as appropriate in this structure. Any occurrences of branches that are traversed but are not mentioned in this traversal order array shall be traversed in a random order after all of the branches that are mentioned in this array are traversed.
Additional information is available in the <DRM Alternate Hierarchy Related Features>, <DRM Alternate Hierarchy Related Geometry>, <DRM Hierarchy Data> DRM classes.
Alternate_Hierarchy_Parameters ::= {
hierarchy_data_count Integer_Unsigned
hierarchy_data_array Hierarchy_Data_Fields[hierarchy_data_count];
}
This data type encapsulates the field elements of the <DRM Alternate Hierarchy Related Features> class.
Alternate_Hierarchy_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM Alternate Hierarchy Related Geometry> class.
Alternate_Hierarchy_Related_Geometry_Fields
::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type specifies the data required for animation behaviour specifications.
Animation_Behaviour_Fields ::= {
period Long_Float;
count Short_Integer_Unsigned;
forward_sequence_mode Boolean;
beginning_frame Short_Integer_Positive;
ending_frame Short_Integer_Positive;
random_beginning_frame Boolean;
}
This data type specifies a single range of animation frames to be traversed from an <DRM Animation Related Geometry>. The ending_frame of a range shall be greater than or equal to the beginning_frame of that range.
Animation_Range ::= {
beginning_frame Short_Integer_Unsigned;
ending_frame Short_Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Animation Related Geometry> class.
Animation_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type selects which branches to traverse from a <DRM Animation Related Geometry> object when encountered by a component iterator. Each branch of an <DRM Animation Related Geometry> is considered to be a frame of the animation. The frames are ordered, and this ordering is used to implicitly number the frames from 1 to n. The animation_ranges_array is an array of beginning_frames and ending_frames. For each range specified, the frames from that range’s beginning_frame to that range’s ending_frame will be traversed. The ordering of beginning_frame to ending_frame is imposed by the data producer.
Animation_Select_Parameters ::=
{
ranges_count Integer_Unsigned;
animation_ranges_array Animation_Range[ranges_count];
}
This variant data type specifies an arbitrary enumerated or selection value that may be contained in the fields of a DRM class instance. This value is used in searches.
Any_Enumerated_Value ::= (selected_enumeration Enumerated_Or_Selection_Type) {
NULL_TYPE: null_type Short_Integer_Unsigned;
AXIS_ALIGNMENT: axis_alignment Axis_Alignment;
CAMERA_PROJECTION_TYPE: camera_projection_type Camera_Projection_Type;
COLOUR_BINDING: colour_binding Colour_Binding;
COLOUR_MAPPING: colour_mapping Colour_Mapping;
COLOUR_MODEL: colour_model Colour_Model;
DISPLAY_SIDE: display_side Display_Side;
DISPLAY_STYLE: display_style Display_Style;
DISPLAY_TYPE: display_type Display_Type;
DRM_CLASS: drm_class DRM_Class;
FEATURE_UNION_REASON: feature_union_reason Feature_Union_Reasons;
GRID_OVERLAP_OPERATOR: grid_overlap_operator Grid_Overlap_Operator;
IMAGE_COMPONENT: image_component Image_Component;
IMAGE_MAPPING_METHOD: image_mapping_method Image_Mapping_Method;
IMAGE_PROJECTION_TYPE: image_projection_type Image_Projection_Type;
IMAGE_SCAN_DIRECTION: image_scan_direction Image_Scan_Direction;
IMAGE_SCAN_DIRECTION_Z: image_scan_direction_z Image_Scan_Direction_Z;
IMAGE_SIGNATURE: image_signature Image_Signature;
IMAGE_WRAP: image_wrap Image_Wrap;
INTERPOLATION_TYPE: interpolation_type Interpolation_Type;
LOD_DATA_TYPE: lod_data_type LOD_Data_Type;
LOOKUP_SIGNATURE: lookup_signature Lookup_Signature;
LOOKUP_TYPE: lookup_type Lookup_Type;
LSR_TRANSFORMATION_AXIS: lsr_transformation_axis LSR_Transformation_Axis;
MODEL_REFERENCE_TYPE: model_reference_type Model_Reference_Type;
MONTH: month Month;
MULTIPLICITY_CODE: multiplicity_code Multiplicity_Code;
OCTANT: octant Octant;
ORDERING_REASON: ordering_reason Ordering_Reason;
PIXEL_FILL_METHOD: pixel_fill_method Pixel_Fill_Method;
PRESPECIFIED_FUNCTION: prespecified_function Prespecified_Function;
PRESENT_IN: present_in Present_In;
PROPERTY_DATA_VALUE_TYPE: property_data_value_type Property_Data_Value_Type;
QUADRANT: quadrant Quadrant;
REFERENCE_VECTOR_TYPE: reference_vector_type Reference_Vector_Type;
REFERENCE_SURFACE_ELEVATION_SELECT:
reference_surface_elevation_select
Reference_Surface_Elevation_Select;
REFERENCE_SURFACE_LOD_SELECT:
reference_surface_lod_select
Reference_Surface_LOD_Select;
SEASON: season Season;
SHADING_METHOD: shading_method Shading_Method;
SPACING_TYPE: spacing_type Spacing_Type;
SPATIAL_INDEX_SPACING_UNIT:
spatial_index_spacing_unit
Spatial_Index_Spacing_Unit;
STATE_MISMATCH_BEHAVIOUR: state_mismatch_behaviour State_Mismatch_Behaviour;
TIME_DATA_TYPE: time_data_type Time_Data_Type;
TIME_OF_DAY: time_of_day Time_Of_Day;
TIME_SIGNIFICANCE: time_significance Time_Significance;
}
This variant data type supports all of the arbitrary data types that can be used for search controls.
Any_Search_Value ::= (type_of_value Search_Value_Type) {
BOOLEAN: boolean_value Boolean;
BYTE: byte_value Byte;
SHORT_INTEGER: short_integer_value Short_Integer;
INTEGER: integer_value Integer;
BYTE_POSITIVE: byte_positive_value Byte_Positive;
SHORT_INTEGER_POSITIVE: short_integer_positive_value Short_Integer_Positive;
INTEGER_POSITIVE: integer_positive_value Integer_Positive;
BYTE_UNSIGNED: byte_unsigned_value Byte_Unsigned;
SHORT_INTEGER_UNSIGNED: short_integer_unsigned_value Short_Integer_Unsigned;
INTEGER_UNSIGNED: integer_unsigned_value Integer_Unsigned;
FLOAT: float_value Float;
LONG_FLOAT: long_float_value Long_Float;
ENUMERATED: any_enumerated_or_selection_value
Any_Enumerated_Or_Selection_Value;
ID: id_value Object_ID;
STRING: string_value String;
EDCS_ATTRIBUTE_CODE: edcs_attribute_code_value EDCS_Attribute_Code;
EDCS_CLASSIFICATION_CODE: edcs_classification_code_value
EDCS_Classification_Code;
}
This data type encapsulates the field elements of the <DRM Arc> class.
Arc_Fields ::= {
count Short_Integer_Unsigned;
suppress_last Boolean;
}
This data type encapsulates the field elements of the <DRM Axis> class.
Axis_Fields ::= {
axis_type Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
axis_value_count Short_Integer_Positive;
}
This data type specifies the data needed to define a 2D coordinate in the LTP spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM AZ 2D Location> class.
AZ_2D_Location_Fields ::= {
coordinate AZ_2D_Coordinate;
}
This data type encapsulates the field elements of the <DRM Base Positional Light> class.
Base_Positional_Light_Fields ::= {
apply_to_children Boolean;
override_positional_lights Boolean;
override_infinite_lights Boolean;
active_light_value Boolean;
radius Float;
constant_attenuation_factor Long_Float;
linear_attenuation_factor Long_Float;
quadratic_attenuation_factor Long_Float;
}
This data type encapsulates the field elements of the <DRM Base Summary Item> class.
Base_Summary_Item_Fields ::= {
type DRM_Class;
}
This data type encapsulates the field elements of the <DRM Base Time Data> class.
Base_Time_Data_Fields ::= {
time_significance Time_Significance;
}
This data type encapsulates the field elements of the <DRM Blend Directional Light> class.
Blend_Directional_Light_Fields ::= {
upper_plane_angular_offset Long_Float;
lower_plane_angular_offset Long_Float;
}
This data type encapsulates the field elements of the <DRM Browse Media> class.
Browse_Media_Fields ::= {
name String;
media_urn URN;
description String;
}
This data type encapsulates the field elements of the <DRM Camera Point> class.
Camera_Point_Fields ::= {
camera_id Integer_Unsigned;
projection Camera_Projection_Type;
camera_near Long_Float;
camera_far Long_Float;
use_left_right_bottom_top Boolean;
left Long_Float;
bottom Long_Float;
top Long_Float;
right Long_Float;
horizontal_field_of_view Long_Float;
aspect_ratio Long_Float;
}
This data type encapsulates the field elements of the <DRM CC 3D Location> class.
CC_3D_Location_Fields ::= {
coordinate Euclidean_3D_Coordinate;
}
This data type specifies the data needed to define a 3D coordinate in the CD spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM CD 3D Location> class.
CD_3D_Location_Fields ::= {
coordinate CD_3D_Coordinate;
}
This data type specifies the data needed to define a surface coordinate in the CD spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM CD Surface Location> class.
CD_Surface_Location_Fields ::= {
coordinate CD_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM Citation> class.
Citation_Fields ::= {
title String;
edition String;
responsible_party Contact_Information;
series_name String;
issue_id String;
other String;
}
This data type encapsulates the field elements of the <DRM Classification Data> class.
Classification_Data_Fields ::= {
tag EDCS_Classification_Code;
}
This data type specifies a single entry in the data provided by the Classification_Parameter data type. The qualified <DRM Classification Data> thus represented shall comply with the constraint Elaboration of classification data.
Classification_Entry ::= {
class_data Classification_Data_Fields;
property_value_count Integer_Unsigned;
property_value_array Property_Value_Fields[property_value_count];
}
This data type is used to build hierarchical search criteria. The array members shall be distinct.
When used within a Hierarchy_Select_Parameters record, this data type is used to select which branches to traverse from a <DRM Classification Related Features> or <DRM Classification Related Geometry> object when encountered by a component iterator. All branches with a link object containing a classification tag listed in the given classification_array will be traversed.
When used within a Hierarchy_Order_Parameters record, this data type controls the traversal order of the branches from a <DRM Classification Related Features> or <DRM Classification Related Geometry> object when encountered by a component iterator. Any “types” of branches that are traversed but are not mentioned in this traversal order array will be traversed in a random order after all of the branches that are mentioned in this array are traversed.
Classification_Parameters ::= {
classification_count Integer_Unsigned;
classification_array Classification_Entry[classification_count];
}
This data type encapsulates the field elements of the <DRM Classification Related Features> class.
Classification_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM Classification Related Geometry> class.
Classification_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM CM 3D Location> class.
CM_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM CMY Colour Control Link> class.
CMY_Colour_Control_Link_Fields ::= {
description String;
cyan_expression_index Integer_Unsigned;
magenta_expression_index Integer_Unsigned;
yellow_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM CMY_Colour> class.
CMY_Colour_Fields ::= {
cmy_data CMY_Data;
}
This data type specifies colour data using the CMY colour model. The allowable range for each colour component is [0,0 1,0].
CMY_Data ::= {
cyan Long_Float;
magenta Long_Float;
yellow Long_Float;
}
This data type specifies colour data using the CMYK colour model. The allowable range for each colour component is [0,0 1,0].
CMYK_Data ::= {
cyan Long_Float;
magenta Long_Float;
yellow Long_Float;
black Long_Float;
}
This data type encapsulates the field elements of the <DRM Colour> class.
Colour_Fields ::= {
colour_mapping Colour_Mapping;
}
This data type encapsulates the field elements of the <DRM Colour Index Control Link> class.
Colour_Index_Control_Link_Fields
::= {
description String;
colour_index Integer_Unsigned;
intensity_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Colour_Index> class.
Colour_Index_Fields ::= {
colour_mapping Colour_Mapping;
index Integer_Positive;
intensity_level Long_Float;
}
This data type encapsulates the field elements of the <DRM Colour Shininess> class.
Colour_Shininess_Fields ::= {
shininess Long_Float;
}
This data type encapsulates the field elements of the <DRM Colour Table Group> class.
Colour_Table_Group_Fields ::= {
primary_table_index Integer_Positive;
table_size Integer_Positive;
}
This data type encapsulates the field elements of the <DRM Cone Directional Light> class.
Cone_Directional_Light_Fields ::= {
has_plane Boolean;
plane_angular_offset Long_Float;
use_full_intensity Boolean;
minimum_colour_intensity Long_Float;
invisible_behind Boolean;
}
This data type encapsulates the field elements of the <DRM Conformal Behaviour> class.
Conformal_Behaviour_Fields ::= {
parallel_gravity Boolean;
offset_distance Float;
}
This data type encapsulates the complete set of contact metadata used by <DRM Responsible Party> and <DRM Citation>.
Contact_Information ::= {
person_name String;
position_name String;
organization String;
address Address;
voice_phone String;
fax_phone String;
tdd_tty_phone String;
email_address String;
web_site String;
hours_of_service String;
other String;
}
This data type encapsulates the field elements of the <DRM Continuous Level Of Detail Related Geometry> class.
Continuous_LOD_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
terminating_node Boolean;
}
This data type selects which branches to traverse from a <DRM Continuous Level of Detail Related Geometry> object when encountered by a component iterator as directed by the select_parameters parameter of the InitializeComponentIterator function..
Continuous_LOD_Select_Parameters ::= {
continous_lod_choice Continuous_LOD_Select_Choice;
}
This data type encapsulates the field elements of the <DRM Control Link> class.
Control_Link_Fields ::= {
description String;
}
This data type encapsulates the field elements of the <DRM Cross Reference> class.
Cross_Reference_Fields ::= {
relationship String;
}
This data type specifies cylindrical <DRM Volume Level Of Detail Data>.
Cylindrical_Volume_Extent_Entry ::= {
cylinder Cylindrical_Volume_Extent_Fields;
reference_vectors Reference_Vector_Fields[2];
}
This data type encapsulates the field elements of the <DRM Cylindrical Volume Extent> class.
Cylindrical_Volume_Extent_Fields ::= {
major_axis_radius Long_Float;
minor_axis_radius Long_Float;
cylindrical_length Long_Float;
}
This specifies the components of each piece of data quality information. The data_time field shall be formed as specified in ISO 8601 (see 2.[I8601]).
Data_Quality_Elements ::= {
name_of_measure String;
measure_identification String;
measure_description String;
evaulation_method_type String;
evaluation_method_description String;
evaluation_procedure String;
data_time String;
result String;
}
This data type encapsulates the field elements of the <DRM Data Quality> class..
Data_Quality_Fields ::= {
fictional Boolean;
field_accuracy Data_Quality_Element;
logical_consistency Data_Quality_Element;
completeness Data_Quality_Element;
absolute_horizontal_positional_accuracy Data_Quality_Element;
relative_horizontal_positional_accuracy Data_Quality_Element;
absolute_vertical_positional_accuracy Data_Quality_Element;
relative_vertical_positional_accuracy Data_Quality_Element;
}
This data type is used to specify the data processed by the API functions GetDataTableData and PutDataTableData.
Data_Table_Data ::= (type_of_data Property_Data_Value_Type) {
table_property_description_index Integer_Positive;
data_count Integer_Positive;
BOOLEAN:
boolean_array Boolean[data_count];
BYTE:
byte_array Byte[data_count>];
BYTE_POSITIVE:
byte_positive_array Byte_Positive[data_count];
BYTE_UNSIGNED:
byte_unsigned_array Byte_Unsigned[data_count];
SHORT_INTEGER:
short_integer_array; Short_Integer[data_count];
SHORT_INTEGER_POSITIVE:
short_integer_positive_array Short_Integer_Positive[data_count];
SHORT_INTEGER_UNSIGNED:
short_integer_unisgned_array Short_Integer_Unsigned[data_count];
INTEGER:
integer_array Integer[data_count];
INTEGER_INTERVAL:
intger_interval_array Integer_Interval[data_count];
INTEGER_POSITIVE:
integer_positive_array Integer_Positive[data_count];
INTEGER_UNSIGNED:
integer_unsigned_array Integer_Unsigned[data_count];
INTEGER_UNSIGNED_INTERVAL:
integer_unsigned_interval_array
Integer_Unsigned_Interval[data_count];
FLOAT:
float_array Float[data_count];
FLOAT_INTERVAL:
float_interval_array Float_Interval[data_count];
LONG_FLOAT:
long_float_array Long_Float[data_count];
STRING:
string_array String[data_count];
DATA_TABLE_COMPONENT_INDEX:
dt_component_index_array Integer_Unsigned[data_count];
DATA_TABLE_LIBRARY_INDEX:
dt_library_index_array Integer_Unsigned[data_count];
ENUMERANT_CODE:
enumerant_array EDCS_Integer[data_count];
VALUE_CHARACTERISTICS_CODE:
value_characteristics_array
EDCS_Value_Characteristics_Code[data_count];
}
This data type encapsulates the field elements of the <DRM Data Table> class.
Data_Table_Extents ::= {
axes_count Short_Integer_Unsigned;
axes_bounds Index_Range[axes_count];
}
This data type encapsulates the field elements of the <DRM Description> class.
Description_Fields ::= {
abstract String;
purpose String;
other String;
}
This data type specifies the data in the fields of the <DRM Distance Level Of Detail Data> class.
Distance_LOD_Data_Fields ::= {
minimum_range Long_Float;
minimum_fade_band Long_Float;
maximum_range Long_Float;
maximum_fade_band Long_Float;
}
This variant record data type has a version for each of the non-abstract DRM classes specified. For each DRM class containing fields, a variant is provided that can represent the information in those fields.
DRM_Class_Fields ::= (drm_class DRM_Class ) {
NULL:
2D_LOCATION:
3D_LOCATION:
AMBIENT_COLOUR:
AREAL_FEATURE:
ATTACHMENT_POINT:
BASE_LEVEL_OF_DETAIL_DATA:
BOUNDING_VOLUME:
COLLISION_VOLUME:
COLOUR_DATA:
COLOUR_TABLE:
COLOUR_TABLE_LIBRARY:
CONTACT_POINT:
DATA_TABLE:
DATA_TABLE_LIBRARY:
DIFFUSE_COLOUR:
DIRECTIONAL_LIGHT_BEHAVIOUR:
EMISSIVE_COLOUR:
EXPRESSION:
FEATURE:
FEATURE_EDGE:
FEATURE_FACE_RING:
FEATURE_MODEL:
FEATURE_MODEL_INSTANCE:
FEATURE_NODE:
FEATURE_TOPOLOGY:
FINITE_ELEMENT_MESH:
GEOMETRY:
GEOMETRY_EDGE:
GEOMETRY_FACE:
GEOMETRY_HIERARCHY:
GEOMETRY_MODEL:
GEOMETRY_MODEL_INSTANCE:
GEOMETRY_NODE:
GEOMETRY_TOPOLOGY:
ICON:
IMAGE_LIBRARY:
LABEL:
LIBRARY:
LIGHT_RENDERING_BEHAVIOUR:
LINEAR_FEATURE:
LOCATION:
LSR_TRANSFORMATION:
LSR_TRANSFORMATION_STEP:
MODEL_LIBRARY:
PERIMETER_DATA:
POINT:
POINT_FEATURE:
POLYHEDRON:
PRIMITIVE_COLOUR:
PRIMITIVE_FEATURE:
PRIMITIVE_GEOMETRY:
PROPERTY_GRID_HOOK_POINT:
PROPERTY_SET:
PROPERTY_SET_TABLE_LIBRARY:
PROPERTY_TABLE:
SEPARATING_PLANE:
SEPARATING_PLANE_RELATIONS:
SOUND_LIBRARY:
SOUND_VOLUME:
SPATIAL_EXTENT:
SPECULAR_COLOUR:
SURFACE_GEOMETRY:
SURFACE_LOCATION:
SYMBOL_LIBRARY:
TACK_POINT:
TIME_CONSTRAINTS_DATA:
TRANSFORMATION:
TWINKLING_LIGHT_BEHAVIOUR:
VERTEX:
VOLUME:
VOLUME_EXTENT:
VOLUME_GEOMETRY:
unused_fields Unused_Fields;
ABSOLUTE_TIME:
absolute_time_fields Absolute_Time_Fields;
ABSOLUTE_TIME_INTERVAL:
absolute_time_interval_fields Absolute_Time_Interval_Fields;
ACCESS:
access_fields Access_Fields;
AGGREGATE_FEATURE:
aggregate_feature_fields Aggregate_Feature_Fields;
AGGREGATE_GEOMETRY:
aggregate_geometry_fields Aggregate_Geometry_Fields;
ALTERNATE_HIERARCHY_RELATED_FEATURES:
alternate_hierarchy_related_feature_fields
Alternate_Hierarchy_Related_Features_Fields;
ALTERNATE_HIERARCHY_RELATED_GEOMETRY:
alternate_hierarchy_related_geometry_fields
Alternate_Hierarchy_Related_Geometry_Fields;
ANIMATION_BEHAVIOUR:
animation_behaviour_fields Animation_Behaviour_Fields;
ANIMATION_RELATED_GEOMETRY:
animation_related_geometry_fields Animation_Related_Geometry_Fields;
ARC:
arc_fields Arc_Fields;
AXIS:
axis_fields Axis_Fields;
AZ_2D_LOCATION:
az_2D_location_fields
AZ_2D_Location_Fields;
BASE_POSITIONAL_LIGHT:
base_positional_light_fields Base_Positional_Light_Fields;
BASE_SUMMARY_ITEM:
base_summary_item_fields Base_Summary_Item_Fields;
BASE_TIME_DATA:
base_time_data_fields Base_Time_Data_Fields;
BLEND_DIRECTIONAL_LIGHT:
blend_directional_light_fields Blend_Directional_Light_Fields;
BROWSE_MEDIA:
browse_media_fields Browse_Media_Fields;
CAMERA_POINT:
camera_point_fields Camera_Point_Fields;
CC_3D_LOCATION:
cc_3D_location_fields CC_3D_Location_Fields;
CD_3D_LOCATION:
cd_3D_location_fields CD_3D_Location_Fields;
CD_SURFACE_LOCATION:
cd_surface_location_fields CD_Surface_Location_Fields;
CITATION:
citation_fields Citation_Fields;
CLASSIFICATION_DATA:
classification_data_fields Classification_Data_Fields;
CLASSIFICATION_RELATED_FEATURES:
classification_related_features_fields Classification_Related_Features_Fields;
CLASSIFICATION_RELATED_GEOMETRY:
classification_related_geometry_fields Classification_Related_Geometry_Fields;
CM_3D_LOCATION:
cm_3D_location_fields CM_3D_Location_Fields;
CMY_COLOUR:
cmy_colour_fields CMY_Colour_Fields;
CMY_COLOUR_CONTROL_LINK:
cmy_colour_control_link_fields CMY_Colour_Control_Link_Fields;
COLOUR:
colour_fields Colour_Fields;
COLOUR_INDEX:
colour_index_fields Colour_Index_Fields;
COLOUR_INDEX_CONTROL_LINK:
colour_index_control_link_fields Colour_Index_Control_Link_Fields;
COLOUR_SHININESS:
colour_shininess_fields Colour_Shininess_Fields;
COLOUR_TABLE_GROUP:
colour_table_group_fields Colour_Table_Group_Fields;
CONE_DIRECTIONAL_LIGHT:
cone_directional_light_fields Cone_Directional_Light_Fields;
CONFORMAL_BEHAVIOUR:
conformal_behaviour_fields Conformal_Behaviour_Fields;
CONTINUOUS_LEVEL_OF_DETAIL_RELATED_GEOMETRY:
continuous_lod_related_geometry_fields Continuous_LOD_Related_Geometry_Fields;
CONTROL_LINK:
control_link_fields Control_Link_Fields;
CROSS_REFERENCE:
cross_reference_fields Cross_Reference_Fields;
CYLINDRICAL_VOLUME_EXTENT:
cylindrical_volume_extent_fields Cylindrical_Volume_Extent_Fields;
DATA_QUALITY:
data_quality_fields Data_Quality_Fields;
DESCRIPTION:
description_fields Description_Fields;
DISTANCE_LEVEL_OF_DETAIL_DATA:
distance_lod_data_fields Distance_LOD_Data_Fields;
DRM_CLASS_SUMMARY_ITEM::
drm_class_summary_item_fields DRM_Class_Summary_Item_Fields;
EC_AUGMENTED_3D_LOCATION:
ec_augmented_3D_location_fields EC_Augmented_3D_Location_Fields;
EC_SURFACE_LOCATION:
ec_surface_location_fields EC_Surface_Location_Fields;
EDCS_USE_SUMMARY_ITEM:
edcs_use_summary_item_fields EDCS_Use_Summary_Item_Fields;
EDGE_DIRECTION:
edge_direction_fields Edge_Direction_Fields;
EI_3D_LOCATION:
ei_3D_location_fields EI_3D_Location_Fields;
ELLIPSE:
ellipse_fields Ellipse_Fields;
ELLIPTIC_CYLINDER:
elliptical_cylinder_fields Elliptical_Cylinder_Fields;
ENUMERATION_AXIS:
enumeration_axis_fields Enumeration_Axis_Fields;
ENVIRONMENTAL_DOMAIN_SUMMARY:
environmental_domain_summary_fields Environmental_Domain_Summary_Fields;
ENVIRONMENT_ROOT:
environment_root_fields Environmental_Root_Fields;
FACE_DIRECTION:
face_direction_fields Face_Direction_Fields;
FADE_RANGE:
fade_range_fields Fade_Range_Fields;
FEATURE_FACE:
feature_face_fields Feature_Face_Fields;
FEATURE_HIERARCHY:
feature_hierarchy_fields Feature_Hierarchy_Fields;
FEATURE_TOPOLOGY_HIERARCHY:
feature_topology_hierarchy_fields Feature_Topology_Hierarchy_Fields;
FLASHING_LIGHT_BEHAVIOUR:
flashing_light_behaviour_fields Flashing_Light_Behaviour_Fields;
FUNCTION:
function_fields Function_Fields;
GEOMETRIC_CENTRE:
geometric_centre_fields Geometric_Centre_Fields;
GEOMETRY_TOPOLOGY_HIERARCHY:
geometry_topology_hierarchy_fields Geometry_Topology_Hierarchy_Fields;
GRID_OVERLAP:
grid_overlap_fields Grid_Overlap_Fields;
HAEC_3D_LOCATION:
haec_3D_location_fields
HAEC_3D_Location_Fields;
HEEC_3D_LOCATION:
heec_3D_location_fields
HEEC_3D_Location_Fields;
HEEQ_3D_LOCATION:
heeq_3D_location_fields
HEEQ_3D_Location_Fields;
HIERARCHY_DATA:
hierarchy_data_fields Hierarchy_Data_Fields;
HIERARCHY_SUMMARY_ITEM:
hierarchy_summary_item_fields Hierarchy_Summary_Item_Fields;
HSV_COLOUR:
hsv_colour_fields HSV_Colour_Fields;
HSV_COLOUR_CONTROL_LINK:
hsv_colour_control_link_fields HSV_Colour_Control_Link_Fields;
IMAGE:
image_fields Image_Fields;
IMAGE_ANCHOR:
image_anchor_fields Image_Anchor_Fields;
IMAGE_LOOKUP:
image_lookup_fields Image_Lookup_Fields;
IMAGE_MAPPING_FUNCTION:
image_mapping_function_fields Image_Mapping_Function_Fields;
INDEX_LEVEL_OF_DETAIL_DATA:
index_lod_data_fields Index_LOD_Data_Fields;
INFINITE_LIGHT:
infinite_light_fields Infinite_Light_Fields;
INLINE_COLOUR:
inline_colour_fields Inline_Colour_Fields;
IN_OUT:
in_out_fields In_Out_Fields;
INTERFACE_TEMPLATE:
interface_template_fields Interface_Template_Fields;
INTERVAL_AXIS:
interval_axis_fields Interval_Axis_Fields;
IRREGULAR_AXIS:
irregular_axis_fields Irregular_Axis_Fields;
KEYWORDS:
keywords_fields Keywords_Fields;
LCC_AUGMENTED_3D_LOCATION:
lcc_augmented_3D_location_fields LCC_Augmented_3D_Location_Fields;
LCC_SURFACE_LOCATION:
lcc_surface_location_fields LCC_Surface_Location_Fields;
LEVEL_OF_DETAIL_RELATED_FEATURES:
lod_related_features_fields LOD_Related_Features_Fields;
LEVEL_OF_DETAIL_RELATED_GEOMETRY:
lod_related_geometry_fields LOD_Related_Geometry_Fields;
LIGHT_RENDERING_PROPERTIES:
light_rendering_properties_fields Light_Rendering_Properties_Fields;
LIGHT_RENDERING_PROPERTIES_CONTROL_LINK:
light_rendering_properties_control_link_fields
Light_Rendering_Properties_Control_Link_Fields;
LIGHT_SOURCE:
light_source_fields Light_Source_Fields;
LIGHT_SOURCE_CONTROL_LINK:
light_source_control_link_fields Light_Source_Control_Link_Fields;
LINE:
line_fields Line_Fields;
LINEAGE:
lineage_fields Lineage_Fields;
LINEAR_GEOMETRY:
linear_geometry_fields Linear_Geometry_Fields;
LITERAL:
literal_fields Literal_Fields;
LOBE_DATA:
lobe_data_fields Lobe_Data_Fields;
LOCAL_4X4:
local_4x4_fields Local_4x4_Fields;
LSR_2D_LOCATION:
lsr_2D_location_fields LSR_2D_Location_Fields;
LSR_3D_LOCATION:
lsr_3D_location_fields LSR_3D_Location_Fields;
LSR_3D_LOCATION_CONTROL_LINK:
lsr_3D_location_control_link_fields LSR_3D_Location_Control_Link_Fields;
LTAS_3D_LOCATION:
ltas_3D_location_fields LTAS_3D_Location_Fields;
LTAS_SURFACE_LOCATION:
ltas_surface_location_fields LTAS_Surface_Location_Fields;
LTC_3D_LOCATION:
ltc_3D_location_fields LTC_3D_Location_Fields;
LTC_SURFACE_LOCATION:
lte_surface_location_fields LTC_Surface_Location_Fields;
LTE_3D_LOCATION:
lte_3D_location_fields LTE_3D_Location_Fields;
LTE_SURFACE_LOCATION:
ltc_surface_location_fields LTE_Surface_Location_Fields;
M_AUGMENTED_3D_LOCATION:
m_augmented_3D_location_fields M_Augmented_3D_Location_Fields;
M_SURFACE_LOCATION:
m_surface_location_fields
M_Surface_Location_Fields;
MAP_SCALE_LEVEL_OF_DETAIL_DATA:
map_scale_lod_data_map_scale Map_Scale_LOD_Data_Fields;
MESH_FACE_TABLE:
mesh_face_table_fields Mesh_Face_Table_Fields;
MODEL:
model_fields Model_Fields;
MODEL_INSTANCE_TEMPLATE_INDEX:
model_instance_template_index_fields Model_Instance_Template_Index_Fields;
MOVING_LIGHT_BEHAVIOUR:
moving_light_behaviour_fields Moving_Light_Behaviour_Fields;
OCTANT_DATA:
octant_data_fields Octant_Data_Fields;
OCTANT_RELATED_FEATURES:
octant_related_features_fields Octant_Related_Features_Fields;
OCTANT_RELATED_GEOMETRY:
octant_related_geometry_fields Octant_Related_Geometry_Fields;
OM_AUGMENTED_3D_LOCATION:
om_augmented_location_3D_fields OM_Augmented_Location_3D_Fields;
OM_SURFACE_LOCATION:
om_surface_location_fields OM_Surface_Location_Fields;
OVERLOAD_PRIORITY_INDEX:
overload_priority_index_fields Overload_Priority_Index_Fields;
PARALLELEPIPED_VOLUME_EXTENT:
parallelepiped_volume_extent_fields Parallelepiped_Volume_Extent_Fields;
PERIMETER_RELATED_FEATURE_TOPOLOGY:
perimeter_related_feature_topology_fields
Perimeter_Related_Feature_Topology_Fields;
PERIMETER_RELATED_FEATURES:
perimeter_related_features_fields Perimeter_Related_Features_Fields;
PERIMETER_RELATED_GEOMETRY:
perimeter_related_geometry_fields Perimeter_Related_Geometry_Fields;
PERIMETER_RELATED_GEOMETRY_TOPOLOGY:
perimeter_related_geometry_topology_fields
Perimeter_Related_Geometry_Topology_Fields;
POLAR_2D_LOCATION:
polar_2D_location_fields
Polar_2D_Location_Fields;
POLYGON:
polygon_fields Polygon_Fields;
POLYGON_CONTROL_LINK:
polygon_control_link_fields Polygon_Control_Link_Fields;
POSITIONAL_LIGHT:
positional_light_fields Positional_Light_Fields;
PREDEFINED_FUNCTION:
predefined_function_fields Predefined_Function_Fields;
PRESENTATION_DOMAIN:
presentation_domain_fields Presentation_Domain_Fields;
PRIMITIVE_SUMMARY_ITEM:
primitive_summary_item_fields Primitive_Summary_Item_Fields;
PROCESS_STEP:
process_step_fields Process_Step_Fields;
PROPERTY:
property_fields Property_Fields;
PROPERTY_CHARACTERISTIC:
property_characteristic_fields Property_Characteristic_Fields;
PROPERTY_DESCRIPTION:
property_description_fields Property_Description_Fields;
PROPERTY_GRID:
property_grid_fields Property_Grid_Fields;
PROPERTY_SET_INDEX:
property_set_index_fields Property_Set_Index_Fields;
PROPERTY_SET_INDEX_CONTROL_LINK:
property_set_index_control_link_fields
Property_Set_Index_Control_Link_Fields;
PROPERTY_SET_TABLE:
property_set_table_fields Property_Set_Table_Fields;
PROPERTY_SET_TABLE_GROUP:
property_set_table_group_fields Property_Set_Table_Group_Fields;
PROPERTY_TABLE_REFERENCE:
property_table_reference_fields Property_Table_Reference_Fields;
PROPERTY_TABLE_REFERENCE_CONTROL_LINK:
property_table_reference_control_link_fields
Property_Table_Reference_Control_Link_Fields;
PROPERTY_VALUE:
property_value_fields Property_Value_Fields;
PS_AUGMENTED_3D_LOCATION:
ps_augmented_3D_location_fields PS_Augmented_3D_Location_Fields;
PS_SURFACE_LOCATION:
ps_surface_location_fields PS_Surface_Location_Fields;
PSEUDO_CODE_FUNCTION:
pseudo_code_function_fields Pseudo_Code_Function_Fields;
PYRAMID_DIRECTIONAL_LIGHT:
pyramid_directional_light_fields Pyramid_Directional_Light_Fields;
QUADRANT_DATA:
quadrant_data_fields Quadrant_Data_Fields;
QUADRANT_RELATED_FEATURES:
quadrant_related_features_fields Quadrant_Related_Features_Fields;
QUADRANT_RELATED_GEOMETRY:
quadrant_related_geometry_fields Quadrant_Related_Geometry_Fields;
REFERENCE_ORIGIN:
reference_origin_fields Reference_Origin_Fields;
REFERENCE_SURFACE:
reference_surface_fields Reference_Surface_Fields;
REFERENCE_VECTOR:
reference_vector_fields Reference_Vector_Fields;
REFERENCE_VECTOR_CONTROL_LINK:
reference_vector_control_link_fields Reference_Vector_Control_Link_Fields;
REGULAR_AXIS:
regular_axis_fields Regular_Axis_Fields;
RELATIVE_TIME:
relative_time_fields Relative_Time_Fields;
RELATIVE_TIME_INTERVAL:
relative_time_interval_fields Relative_Time_Interval_Fields;
RENDERING_PRIORITY_LEVEL:
rendering_priority_level_fields Rendering_Priority_Level_Fields;
RENDERING_PROPERTIES:
rendering_properties_fields Rendering_Properties_Fields;
RGB_COLOUR:
rgb_colour_fields RGB_Colour_Fields;
RGB_COLOUR_CONTROL_LINK:
rgb_colour_control_link_fields RGB_Colour_Control_Link_Fields;
ROTATING_LIGHT_BEHAVIOUR:
rotating_light_behaviour_fields Rotating_Light_Behaviour_Fields;
ROTATION:
rotation_fields Rotation_Fields;
ROTATION_CONTROL_LINK:
rotation_control_link_fields Rotation_Control_Link_Fields;
SCALE:
scale_fields Scale_Fields;
SCALE_CONTROL_LINK:
scale_control_link_fields Scale_Control_Link_Fields;
SEASON:
season_fields Season_Fields;
SEC_3D_LOCATION:
sec_3D_location_fields SEC_3D_Location_Fields;
SEPARATING_PLANE_DATA:
separating_plane_data_fields Separating_Plane_Data_Fields;
SEPARATING_PLANE_RELATED_GEOMETRY:
separating_plane_related_geometry_fields
Separating_Plane_Related_Geometry_Fields;
SEQ_3D_LOCATION:
seq_3D_location_fields
SEQ_3D_Location_Fields;
SM_3D_LOCATION:
sm_3D_location_fields SM_3D_Location_Fields;
SMS_3D_LOCATION:
sms_3D_location_fields SMS_3D_Location_Fields;
SOUND:
sound_fields Sound_Fields;
SOUND_INSTANCE:
sound_instance_fields Sound_Instance_Fields;
SOUND_INSTANCE_CONTROL_LINK:
sound_instance_control_link_fields Sound_Instance_Control_Link_Fields;
SOURCE:
source_fields Source_Fields;
SPATIAL_INDEX_RELATED_FEATURE_TOPOLOGY:
spatial_index_related_feature_topology_fields
Spatial_Index_Related_Feature_Topology_Fields;
SPATIAL_INDEX_RELATED_FEATURES:
spatial_index_related_features_fields Spatial_Index_Related_Features_Fields;
SPATIAL_INDEX_RELATED_GEOMETRY:
spatial_index_related_geometry_fields Spatial_index_Related_Geometry_Fields;
SPATIAL_INDEX_RELATED_GEOMETRY_TOPOLOGY:
spatial_index_related_geometry_topology_fields
Spatial_Index_Related_Geometry_Topology_Fields;
SPATIAL_RESOLUTION_LEVEL_OF_DETAIL_DATA:
spatial_resolution_level_of_detail_data_fields
Spatial_Resolution_Level_Of_Detail_Data_Fields;
SPHERICAL_VOLUME_EXTENT:
spherical_volume_extent_fields Spherical_Volume_Extent_Fields;
SPOT_LIGHT:
spot_light_fields Spot_Light_Fields;
SRF_SUMMARY:
srf_summary_fields SRF_Summary_Fields;
STAMP_BEHAVIOUR:
stamp_behaviour_fields Stamp_Behaviour_Fields;
STATE_CONTROL_LINK:
state_control_link_fields State_Control_Link_Fields;
STATE_DATA:
state_data_fields State_Data_Fields;
STATE_RELATED_FEATURES:
state_related_features_fields State_Related_Features_Fields;
STATE_RELATED_GEOMETRY:
state_related_geometry_fields State_Related_Geometry_Fields;
STROBING_LIGHT_BEHAVIOUR:
strobing_light_behaviour_fields Strobing_Light_Behaviour_Fields;
SYMBOL:
symbol_fields Symbol_Fields;
TABLE_PROPERTY_DESCRIPTION:
table_property_description_fields Table_Property_Description_Fields;
TEXT:
text_fields Text_Fields;
TEXTURE_COORDINATE:
texture_coordinate_fields Texture_Coordinate_Fields;
TEXTURE_COORDINATE_CONTROL_LINK:
texture_coordinate_control_link_fields
Texture_Coordinate_Control_Link_Fields;
TIME_INTERVAL:
time_interval_fields Time_Interval_Fields;
TIME_OF_DAY:
time_of_day_fields Time_Of_Day_Fields;
TIME_POINT:
time_point_fields Time_Point_Fields;
TIME_RELATED_FEATURES:
time_related_features_fields Time_Related_Features_Fields;
TIME_RELATED_GEOMETRY:
time_related_geometry_fields Time_Related_Geometry_Fields;
TM_AUGMENTED_3D_LOCATION:
tm_augmented_3D_location_fields TM_Augmented_3D_Location_Fields;
TM_SURFACE_LOCATION:
tm_surface_location_fields TM_Surface_Location_Fields;
TRANSLATION:
translation_fields Translation_Fields;
TRANSLATION_CONTROL_LINK:
translation_control_link_fields Translation_Control_Link_Fields;
TRANSLUCENCY:
translucency_fields Translucency_Fields;
TRANSLUCENCY_CONTROL_LINK:
translucency_control_link_fields Translucency_Control_Link_Fields;
TRANSMITTAL_ROOT:
transmittal_root_fields Transmittal_Root_Fields;
TRANSMITTAL_SUMMARY:
transmittal_summary_fields Transmittal_Summary_Fields;
UNION_OF_FEATURE_TOPOLOGY:
union_of_feature_topology_fields Union_Of_Feature_Topology_Fields;
UNION_OF_FEATURES:
union_of_features_fields Union_Of_Features_Fields;
UNION_OF_GEOMETRY:
union_of_geometry_fields Union_Of_Geometry_Fields;
UNION_OF_GEOMETRY_HIERARCHY:
union_of_geometry_hierarchy_fields Union_Of_Geometry_Hierarchy_Fields;
UNION_OF_PRIMITIVE_GEOMETRY:
union_of_primitive_geometry_fields Union_Of_Geometry_Fields;
VARIABLE:
variable_fields Variable_Fields;
VOLUME_LEVEL_OF_DETAIL_DATA:
volume_lod_data_fields Volume_LOD_Data_Fields;
VOLUME_LIGHT_BEHAVIOUR:
volume_light_behaviour_fields Volume_Light_Behaviour_Fields;
WORLD_TRANSFORMATION:
world_transformation_fields World_Transformation_Fields;
}
This data type encapsulates the field elements of the <DRM DRM Class Summary Item> class.
DRM_Class_Summary_Item_Fields ::= {
drm_class DRM_Class;
}
This data type encapsulates the field elements of the <DRM EC Augmented_3D_Location> class.
EC_Augmented_3D_Location_Fields ::= (
coordinate Map_Projection_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM EC Surface Location> class.
EC_Surface_Location_Fields ::= {
coordinate Map_Projection_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM EDCS Use Summary Item> class.
EDCS_Use_Summary_Item_Fields ::= {
description String;
}
This data type encapsulates the field elements of the <DRM Edge Direction> class.
Edge_Direction_Fields ::= {
forwards Boolean;
}
This data type specifies the data needed to define a 3D coordinate in the EI spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM EI 3D Location> class.
EI_3D_Location_Fields ::= {
coordinate EI_3D_Coordinate;
}
This data type specifies the type of data for which a DRM class instance applies.
Element_Type ::= (code_type Element_Code_Type; ) {
ATTRIBUTE_CODE : attribute EDCS_Attribute_Code;
INDEX_CODE : index Index_Code;
VARIABLE_CODE : variable Variable_Code;
}
This data type encapsulates the field elements of the <DRM Ellipse> class. The axis lengths are measured from circumference intercept to opposite circumference intercept.
Ellipse_Fields ::= {
major_axis_length Long_Float;
minor_axis_length Long_Float;
}
This data type encapsulates the field elements of the <DRM Elliptic Cylinder> class. The axis lengths are measured from circumference intercept to opposite circumference intercept.
Elliptic_Cylinder_Fields ::= {
major_axis_length Long_Float;
minor_axis_length Long_Float;
height Long_Float;
}
This data type encapsulates the field elements of the <DRM Enumeration Axis> class.
Enumeration_Axis_Fields ::= {
axis_type Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
axis_value_count Short_Integer_Positive;
axis_value_array EDCS_Enumerant_Code[axis_value_count];
}
This data type encapsulates the field elements of the <DRM Environment Root> class.
Environment_Root_Fields ::= {
srf_info SRF_Info;
}
This data type encapsulates the field elements of the <DRM Environmental Domain Summary> class.
Environmental_Domain_Summary_Fields ::= {
environmental_domain EDCS_Classification_Code;
}
This data type specifies the data needed to define a 2D Euclidean coordinate. It is specified in 2.[I18026].
This data type specifies the data needed to define a 3D Euclidean coordinate. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM Face Direction> class.
Face_Direction_Fields ::= {
front Boolean;
}
This data type encapsulates the field elements of the <DRM Fade Range> class.
Fade_Range_Fields ::= {
fade_to_off_begin Long_Float;
fade_to_off_complete Long_Float;
}
This data type encapsulates the field elements of the <DRM Feature Face> class.
Feature_ID_Fields ::= {
feature_id Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Feature Hierarchy> class.
Feature_Topology_Hierarchy_Fields ::= {
feature_topology_level Feature_Topology_Level;
}
This data type encapsulates the field elements of the <DRM Flashing Light Behaviour> class.
Flashing_Light_Behaviour_Fields ::= {
period Long_Float;
delay Long_Float;
duration Long_Float;
}
This data type specifies float interval data and the type of interval.
Integer_Interval ::= {
type Interval_Type;
upper_bound EDCS_Float;
lower_bound EDCS_Float;
}
This data type encapsulates the field elements of the <DRM Function> class.
Function_Fields ::= {
value_type Property_Data_Value_Type;
}
This data type specifies whether any components of the given <DRM Aggregate Geometry> and <DRM Aggregate Feature> instances should be traversed by a component iterator.
For instances of <DRM Aggregate Feature> and <DRM Aggregate Geometry> (referred to as "hierarchies" in these comments) for which inclusion rules can be specified:
If an instance of hierarchy object has a Hierarchy_Inclusion value of EXCLUDE_ALL, the rules within the Hierarchy_Select_Parameters for that type of hierarchy object are not evaluated. Objects of that hierarchy type and the components of those hierarchy objects are always excluded from the search space of the iterator.
If an instance of hierarchy object has a Hierarchy_Inclusion value of INCLUDE_ALL, the rules within the Hierarchy_Select_Parameters for that type of hierarchy object are not evaluated. Objects of that hierarchy type and the components of those hierarchy objects are always included in the search space of the iterator.
If an instance of hierarchy object has a Hierarchy_Inclusion value of EVALUATE_RULES, the rules within the Hierarchy_Select_Parameters for that type of hierarchy object are evaluated for each hierarchy component attached to the hierarchy object. Only hierarchy components whose link attached data pass the rules are included in the search space of the iterator.
For types of hierarchies for which inclusion rules cannot be specified:
If an instance of hierarchy object has a value of FALSE, all objects of that hierarchy class and the components of those hierarchy objects are always excluded from the search space of the iterator.
If an instance of hierarchy object has a value of TRUE, all objects of that hierarchy type and the components of those hierarchy objects are always included in the search space of the iterator.
General_Hierarchy_Select
::= {
Hierarchy classes for which inclusion rules can be specified:
alternate_hierarchy Hierarchy_Inclusion;
animation_related Hierarchy_Inclusion;
classification_related Hierarchy_Inclusion;
continuous_lod_related Hierarchy_Inclusion;
oct_tree_related Hierarchy_Inclusion;
quad_tree_related Hierarchy_Inclusion;
separating_plane Hierarchy_Inclusion;
spatial_index_related Hierarchy_Inclusion;
state_related Hierarchy_Inclusion;
Hierarchy types for which inclusion rules can be specified for
various subclasses of the hierarchies:
lod_related Boolean; if FALSE,
assume next five are EXCLUDE_ALL
lod_distance_related Hierarchy_Inclusion;
lod_index_related Hierarchy_Inclusion;
lod_map_scale_related Hierarchy_Inclusion;
lod_spatial_resolution_related Hierarchy_Inclusion;
lod_volume_related Hierarchy_Inclusion;
time_related Boolean; if FALSE,
assume next five are EXCLUDE_ALL
time_related_by_month Hierarchy_Inclusion;
time_related_by_season Hierarchy_Inclusion;
time_related_by_time_interval Hierarchy_Inclusion;
time_related_by_time_of_day Hierarchy_Inclusion;
time_related_by_time_point Hierarchy_Inclusion;
Hierarchy types for which inclusion rules cannot be specified:
perimeter_related Boolean;
union_of_features Boolean;
union_of_geometry_hierarchies Boolean;
union_of_geometry_primitives Boolean;
}
This data type encapsulates the field elements of the <DRM Geometric Centre> class.
Geometric_Centre_Fields ::= {
meaning
Geometric_Centre_Code;
}
This data type encapsulates the field elements of the <DRM Geometry Topology Hierarchy> class.
Geometry_Topology_Hierarchy_Fields ::= {
geometry_topology_level Geometry_Topology_Level;
}
This data type encapsulates the field elements of the <DRM Grid Overlap> class.
Grid_Overlap_Fields ::= {
overlay_group Short_Integer_Positive;
priority Short_Integer_Unsigned;
operation Grid_Overlap_Operator;
}
This data type encapsulates the field elements of the <DRM HAEC 3D Location> class.
HAEC_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM HEEC 3D Location> class.
HEEC_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM HEEQ 3D Location> class.
HEEQ_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM Hierarchy Data> class.
Hierarchy_Data_Fields ::= {
alternate_representation_reason String;
}
This data type determines the traversal order of the branches a <DRM Aggregate Feature> object or <DRM Aggregate Geometry> object encountered by a component iterator. If a <DRM Aggregate Feature> object or a <DRM Aggregate Geometry> object contains unordered branches, the traversal order of these branches is random by default. By using traversal order parameters, the order in which the branches will be traversed can be controlled.
If a given type of aggregate object is not given any traversal order controls, the components of that type of aggregate object will be traversed in a random order, unless the aggregate object itself is specified with an ordering of branches in the data model.
GENERAL HIERARCHY MASK:
A set of Boolean, one for each “type” of aggregate hierarchy instance, to indicate whether any of the branches from that class of instance should be traversed, and if so, whether all of the branches will be traversed, or whether the selection parameters for that “type” will be evaluated. General_Hierarchy_Select provides more details.
ANIMATION RELATED GEOMETRY:
No order parameters are provided for an <DRM Animation Related Geometry> because the traversal order of a <DRM Aggregate Feature> object or <DRM Aggregate Geometry> is already specified by the data model. The frames of an animation are ordered and that ordering is the order in which the frames shall be traversed.
LEVEL OF DETAIL RELATED GEOMETRY and LEVEL OF DETAIL RELATED FEATURES:
Ascending Order:
Distance: Branches with lower minimum ranges shall be first.
Index: Branches with lower indices shall be first.
Map Scale: Branches with lower minimum scales shall be first.
Volume: Volumes that occupy less volume shall be first.
Descending Order:
Distance: Branches with higher minimum ranges shall be first.
Index: Branches with higher indices shall be first.
Map Scale: Branches with higher minimum scales shall be first.
Volume: Volumes that occupy more volume shall be first.
Order does not matter: An arbitrary traversal order shall be used.
OCT TREE RELATED FEATURES:
QUAD TREE RELATED FEATURES:
OCT TREE RELATED GEOMETRY:
QUAD TREE RELATED GEOMETRY:
Ascending Order:
Traversal from SOUTHWEST to SOUTHEAST for Quad Tree and UPPER_SOUTHWEST to LOWER_NORTHEAST for Oct Tree shall be used.
Descending Order:
Traversal from SOUTHEAST to SOUTHWEST for Quad Tree and LOWER_NORTHEAST to UPPER_SOUTHWEST for Oct Tree shall be used.
Order does not matter:
An arbitrary traversal order shall be used
SEPARATING PLANE RELATED GEOMETRY:
Ascending Order:
False branches shall be traversed first.
Descending Order:
True branches shall be traversed first.
Order does not matter:
An arbitrary traversal order shall be used.
TIME RELATED GEOMETRY & FEATURES:
Ascending Order:
<DRM Time Interval>: Branches with earlier start_times shall be first.
<DRM Time Point>: Branches with earlier times shall be first. All Exercise relative times will are considered to be earlier than all GMT and Reference Relative times. All GMT and Relative Reference times will be compared appropriately to each other.
<DRM Season>: Order based on the Season data type.
<DRM Time Of Day>: Order based on the Time_Of_Day data type.
Descending Order:
<DRM Time Interval>: Branches with later start_times shall be first.
<DRM Time Point>: Branches with later times shall be first.
<DRM Season>: Order based on the Season data type.
<DRM Time Of Day>: Order based on the Time_Of_Day data type.
Order does not matter:
An arbitrary traversal order shall be taken.
PERIMETER RELATED GEOMETRY:
No parameters are specified for dealing with a <DRM Perimeter Related Geometry> object. If the order of traversal is important, the use of multiple iterators, each with a different Spatial Search Boundary, should be specified.
CONTINUOUS LEVEL OF DETAIL GEOMETRY:
No ordering is allowable.
UNION:
All of the components of a union object are already ordered by the data model, so no ordering parameters are required.
OTHER AGGREGATIONS:
For all other types of <DRM Feature> and <DRM Geometry> aggregations, see the specifications for the appropriate types used in the following record data type.
Hierarchy_Order_Parameters ::= {
general_hierarchy_mask General_Hierarchy_Order;
alternate_hierarchy_traversal_order Alternate_Hierarchy_Parameters;
classification_traversal_order Classification_Parameters;
lod_traversal_order Sibling_Traversal_Order;
oct_tree_traversal_order Sibling_Traversal_Order;
quad_tree_traversal_order Sibling_Traversal_Order;
separating_plane_traversal_order Sibling_Traversal_Order;
spatial_index_general_traversal_order Sibling_Traversal_Order;
state_traversal_order State_Data_Fields;
time_traversal_order Sibling_Traversal_Order;
}
This data type determines which “branches” or “switches” to traverse from an <DRM Aggregate Feature> object or <DRM Aggregate Feature> object encountered by a component iterator. These parameters determine which branch will be followed based on the field values of the link object attached to that branch.
If a certain type of aggregate object is not given any selection controls, all of the components of that type of aggregate object will be traversed whenever an aggregate object of that type is encountered.
GENERAL HIERARCHY MASK:
A set of Boolean, one for each “type” of aggregate hierarchy instance, to indicate whether any of the branches from that class of instance should be traversed, and if so, whether all of the branches will be traversed, or whether the selection parameters for that “type” will be evaluated. General_Hierarchy_Select provides more details.
PERIMETER RELATED GEOMETRY:
No parameters are specified for dealing with a <DRM Perimeter Related Geometry> object. By default, all components of a <DRM Perimeter Related Geometry> object will be traversed (unless Perimeter Related is “masked out” by an FALSE value in the general_hierarchy_mask, in which case, none of the components of a <DRM Perimeter Related Geometry> will be searched). In order to selectively limit the components traversed from a <DRM Perimeter Related Geometry> object, a Spatial_Search_Boundary may be specified when initializing the Component Iterator.
UNION:
All components of a Union object are always traversed (unless that type of union is masked out by a FALSE value in the general_hierarchy_mask parameter, in which case none of the components for that type of union are traversed).
OTHER AGGREGATIONS:
For all other types of <DRM Feature> and <DRM Geometry> Aggregations, see the specifications for the appropriate _PARAMETERS data types used in the following data type.
Hierarchy_Select_Parameters ::=
{
general_hierarchy_mask General_Hierarchy_Select;
alternate_hierarchy_branches Alternate_Hierachy_Parameters;
animation_branches Animation_Select_Parameters;
classification_branches Classification_Parameters;
continuous_lod_branches Continuous_LOD_Select_Parameters;
lod_branches; LOD_Select_Parameters;
oct_tree_branches; Oct_Tree_Select_Parameters;
quad_tree_branches Quad_Tree_Select_Parameters;
separating_plane_branches Separating_Plane_Select_Parameters;
spatial_index_branches Spatial_Index_Parameters;
state_branches State_Select_Parameters;
time_branches Time_Select_Parameters;
}
This data type encapsulates the field elements of the <DRM Hierarchy Summary Item> class.
Hierarchy_Summary_Item_Fields
::= {
drm_class DRM_Class;
multiplicity_meaning Multiplicity_Code;
multiplicity Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM HSV Colour Control Link> class.
HSV_Colour_Control_Link_Fields ::= {
description String;
hue_expression_index Integer_Unsigned;
saturation_expression_index Integer_Unsigned;
value_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM HSV Colour> class.
HSV_Colour_Fields ::= {
hsv_data HSV_Data;
}
This data type is used to specify the data for the Hue Saturation Value colour model. Hue is the angle in degrees about the HSV hexcone where 0 degrees represents red, 120 degrees represents green, and 240 degrees represents blue. Saturation is a number from 0.0 to 1.0 (0 percent to 100 percent) indicating the proportion of saturation with white. Value is a number from 0.0 to 1.0 representing the brightness of the colour being depicted.
HSV_Data ::= {
hue Long_Float;
saturation Long_Float;
value Long_Float;
}
This data type encapsulates the field elements of the <DRM Image Anchor> class.
Image_Anchor_Fields ::= {
srf_info SRF_Info;
}
This data type is used to specify the data to be sent to the API function PutImageData and/or returned from the API function GetImageData.
Image_Data ::= {
data_count
Integer_Unsigned;
data
Byte_Unsigned[data_count];
}
This data type encapsulates the field elements of the <DRM Image> class.
Image_Fields ::= {
name String;
colour_model Colour_Model;
level_count Short_Integer_Positive;
mip_extents_array Image_Mip_Fields[level_count];
image_signature Image_Signature;
scan_direction Image_Scan_Direction;
scan_direction_z Image_Scan_Direction_Z
component_data_type Image_Component;
data_is_little_endian Boolean;
data_is_3D Boolean;
bits_of_alpha Short_Integer_Unsigned;
bits_of_luminance Short_Integer_Unsigned;
bits_of_colour_coordinate_1 Short_Integer_Unsigned;
bits_of_colour_coordinate_2 Short_Integer_Unsigned;
bits_of_colour_coordinate_3 Short_Integer_Unsigned;
bits_of_bump_map_height Short_Integer_Unsigned;
bits_of_material_1 Short_Integer_Unsigned;
bits_of_material_2 Short_Integer_Unsigned;
bits_of_material_3 Short_Integer_Unsigned;
bits_of_material_2_percentage Short_Integer_Unsigned;
bits_of_material_3_percentage Short_Integer_Unsigned;
bits_of_image_index Short_Integer_Unsigned;
bits_of_bump_map_u Short_Integer_Unsigned,
bits_of_bump_map_v Short_Integer_Unsigned,
minimum_value_of_alpha Float;
maximum_value_of_alpha Float;
minimum_value_of_luminance Float;
maximum_value_of_luminance Float;
minimum_value_of_colour_coordinate_1 Float;
maximum_value_of_colour_coordinate_1 Float;
minimum_value_of_colour_coordinate_2 Float;
maximum_value_of_colour_coordinate_2 Float;
minimum_value_of_colour_coordinate_3 Float;
maximum_value_of_colour_coordinate_3 Float;
minimum_value_of_bump_map_height Float;
maximum_value_of_bump_map_height Float;
minimum_value_of_bump_map_u Float;
maximum_value_of_bump_map_u Float;
minimum_value_of_bump_map_v Float;
maximum_value_of_bump_map_v Float;
}
This data type encapsulates the field elements of the <DRM Image Lookup> class.
Image_Lookup_Fields ::= {
lookup_signature Lookup_Signature;
lookup_type Lookup_Type;
colour_model Colour_Model;
bits_of_alpha Short_Integer_Unsigned;
bits_of_luminance Short_Integer_Unsigned;
bits_of_colour_coordinate_1 Short_Integer_Unsigned;
bits_of_colour_coordinate_2 Short_Integer_Unsigned;
bits_of_colour_coordinate_3 Short_Integer_Unsigned;
bits_of_bump_map_height Short_Integer_Unsigned;
bits_of_material_1 Short_Integer_Unsigned;
bits_of_material_2 Short_Integer_Unsigned;
bits_of_material_3 Short_Integer_Unsigned;
bits_of_material_2_percentage Short_Integer_Unsigned;
bits_of_material_3_percentage Short_Integer_Unsigned;
bits_of_image_index Short_Integer_Unsigned;
bits of bump_map_u Short_Integer_Unsigned;
bits of bump_map_v Short_Integer_Unsigned;
minimum_value_of_alpha Float;
maximum_value_of_alpha Float;
minimum_value_of_luminance Float;
maximum_value_of_luminance Float;
minimum_value_of_colour_coordinate_1 Float;
maximum_value_of_colour_coordinate_1 Float;
minimum_value_of_colour_coordinate_2 Float;
maximum_value_of_colour_coordinate_2 Float;
minimum_value_of_colour_coordinate_3 Float;
maximum_value_of_colour_coordinate_3 Float;
minimum_value_of_bump_map_height Float;
maximum_value_of_bump_map_height Float;
minimum_value_of_bump_map_u Float;
maximum_value_of_bump_map_u Float;
minimum_value_of_bump_map_v Float;
maximum_value_of_bump_map_v Float;
axis_size Short_Integer_Unsigned;
axis_count Short_Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Image Mapping Function> class.
Image_Mapping_Function_Fields ::= {
image_mapping_method Image_Mapping_Method;
image_wrap_s Image_Wrap;
image_wrap_t Image_Wrap;
image_projection_type Image_Projection_Type;
intensity_level Long_Float;
gain Long_Float;
image_detail_mapping Boolean;
}
This data type specifies the number of, and information about, texels in a single MIP level of an <DRM Image>. An array of these (an array of Image_MIP_Fields) is used to define the number of texels at each MIP level of an <DRM Image>. The information provided in records of this type include the number of horizontal texels (i.e., a row) in the <DRM Image> for a particular level, the number of vertical texels (i.e., a column) in the <DRM Image> for a particular level, and the number of texels in the third dimension in the <DRM Image> for a particular level. This “z” value shall be at least one. By definition, a two-dimensional <DRM Image> has exactly one texel in the z dimension.
Image_MIP_Extents ::= {
size_horizontal Integer_Positive;
size_vertical Integer_Positive;
size_z Integer_Positive;
}
This data type specifies a particular texel within a 3D image.
Image_Texel_Location_3D ::= {
horizontal Short_Integer_Unsigned;
vertical Short_Integer_Unsigned;
z Short_Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Index Level Of Detail Data> class.
Index_LOD_Data_Fields ::= {
index Integer_Positive;
}
This data type specifies the first and last bounds of a range of indices.
Index_Range ::= {
first_index Integer_Unsigned;
last_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Infinite Light> class.
Infinite_Light_Fields ::= {
apply_to_children Boolean;
override_positional_lights Boolean;
override_infinite_lights Boolean;
active_light_value Boolean;
}
This data type encapsulates the field elements of the <DRM Inline_Colour> class.
Inline_Colour_Fields ::= {
colour_mapping Colour_Mapping;
}
This data type encapsulates the field elements of the <DRM In Out> class.
In_Out_Fields ::= {
input Boolean;
}
This data type specifies integer interval data and the type of interval.
Integer_Interval ::= {
type Interval_Type;
lower_bound EDCS_Integer;
upper_bound EDCS_Integer;
}
This data type specifies unsigned integer interval data and the type of interval.
Integer_Interval ::= {
type Interval_Type;
lower_bound EDCS_Integer_Unsigned;
upper_bound EDCS_Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Interface Template> class.
Interface_Template_Fields ::= {
description String;
}
This data type encapsulates the field elements of the <DRM Interval Axis> class.
Interval_Axis_Fields ::= {
axis_type Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
axis_value_count Short_Integer_Positive;
axis_interval_value_array Property_Data_Value[axis_value_count];
}
This data type specifies the range of one axis interval (one “tick” mark on an interval axis).
Interval_Axis_Value ::= {
value_minimum Long_Float;
value_maximum Long_Float;
}
This data type encapsulates the field elements of the <DRM Irregular Axis> instance.
Irregular_Axis_Fields ::= {
axis_type Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
axis_value_count Short_Integer_Unsigned;
axis_value_array Property_Data_Value[axis_value_count];
interpolation_type Interpolation_Type;
}
This data type encapsulates the field elements of the <DRM Keywords> class. Each element of the keyword_array provides a list of synonyms for a single keyword. The array provides for multiple keywords to be specified by a single <DRM Keywords> object.
Keywords_Fields ::= {
keyword_count Short_Integer_Unsigned;
keyword_array Keyword_Structure[keyword_count];
}
This data type specifies a list of keywords with accompanying thesaurus.
The code field categorizes the keyword based on the information it is to convey.
The thesaurus field contains a reference to a formally registered thesaurus or a similar authoritative source of keywords. This field shall be a non-empty string; if there is no thesaurus, the field shall contain the string "NONE".
The keyword_list field contains a list of synonymous keywords being provided, in the form of a semicolon-separated list; at least one keyword shall be present in this field. Each keyword is a word or phrase summarizing an aspect of the data set being described by the <DRM Keywords> object.
Keyword_Structure ::= {
code Keyword_Type_Code;
thesaurus String;
keyword_list String;
}
This data type specifies the data in the fields of the <DRM LCC Augmented_3D_Location> class..
LCC_Augmented_3D_Location_Fields ::= {
coordinate Map_Projection_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM LCC Surface Location> class.
LCC_Surface_Location_Fields ::= {
coordinate Map_Projection_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM Light Rendering Properties Control Link> class.
Light_Rendering_Properties_Control_Link_Fields ::= {
description String;
active_expression_index Integer_Unsigned;
candela_value_expression_index Integer_Unsigned;
lower_candela_value_index Integer_Unsigned;
upper_candela_value_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Light Rendering Properties> class.
Light_Rendering_Properties_Fields
::= {
display_type Display_Type;
light_diameter Long_Float;
light_extinguishing_range Long_Float;
random_area_light Boolean;
active_light_value Boolean;
candela_value Long_Float;
}
This data type encapsulates the field elements of the <DRM Light Source Control Link> class.
Light_Source_Control_Link_Fields
::= {
description String;
expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Light Source> class.
Light_Source_Fields ::= {
apply_to_children Boolean;
override_positional_lights Boolean;
override_infinite_lights Boolean;
active_light_value Boolean;
}
This data type encapsulates the field elements of the <DRM Linear Geometry> class.
Linear_Geometry_Fields ::= {
count Short_Integer_Unsigned;
suppress_last Boolean;
}
This data type encapsulates the field elements of the <DRM Line> class.
Line_Fields ::= {
count Short_Integer_Unsigned;
suppress_last Boolean;
}
This data type encapsulates the field elements of the <DRM Lineage> class.
Lineage_Fields ::= {
statement String;
}
This data type encapsulates the field elements of the <DRM Literal> class.
Literal_Fields ::= {
value Property_Data_Value;
}
This data type specifies a set of information contained in the fields of a <DRM Lobe Data> class. This DRM class describes a cone or a pyramid shape of a directional light (a lobe). The horizontal_width parameter specifies the horizontal lobe width (in radians 0 - 2π. The vertical_width parameter specifies the vertical lobe width (in radians 0 - 2π.
Lobe_Data_Fields ::= {
horizontal_width Long_Float;
vertical_width Long_Float;
}
This data type encapsulates the field elements of the <DRM Local 4x4> class.
Local_4x4_Fields ::= {
matrix Matrix_4x4;
}
This data type specifies the country and language information related to a text string. The language field uses the two-character codes specified in 2.[I639]). The country field uses the three-character codes specified in 2.[I3166]. Both the two character language codes and the three character country codes are defined using the Basic Latin characters.
Locale ::= {
language Character[2];
country Character[3];
}
This variant data type specifies the parameters for iterating over an LOD by specifying the control values for such a search.
LOD_Entry ::= (lod_entry_type LOD_Data_Type) {
DISTANCE: distance Distance_LOD_Data_Fields;
INDEX: index Index_Fields;
MAP_SCALE: map_scale Map_Scale_LOD_Data_Fields;
SPATIAL_RESOLUTION: spatial_resolution Spatial_Resolution_LOD_Data_Fields;
VOLUME: volume Volume_LOD_Entry;
}
This data type encapsulates the field elements of the <DRM Level Of Detail Related Features> class.
LOD_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
lod_data_type LOD_Data_Type;
}
This data type encapsulates the field elements of the <DRM Level Of Detail Related Geometry> class.
LOD_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
lod_data_type LOD_Data_Type;
}
This data type selects which branches to traverse from a <DRM Level of Detail Related Features> or <DRM Level of Detail Related Geometry> object when encountered by a component iterator. All branches with a <DRM Base Level of Detail Data> link object with values matching the ranges specified in the lod_entry_array will be traversed.
If no rules are provided for the type of <DRM Base Level of Detail Data> of the branch in question, the branch will be traversed. For example, if a branch is marked with distance data, but only index search values are provided, the distance branch will be taken. When no search rules for a certain type of <DRM Base Level of Detail Data> are specified, all values for that type of data shall be considered valid.
LOD_Select_Parameters ::= {
matching_rules Branch_Range_Matching;
lod_entry_count Integer_Unsigned;
lod_entry_array LOD_Entry[lod_entry_count];
}
This data type encapsulates the field elements of the <DRM LSR 2D Location> class.
LSR_2D_Location_Fields ::= {
coordinate Euclidean_2D_Coordinate;
}
This data type encapsulates the field elements of the <DRM LSR Location 3D Control Link> class.
LSR_3D_Location_Control_Link_Fields
::= {
description String;
x_expression_index Integer_Unsigned;
y_expression_index Integer_Unsigned;
z_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM LSR 3D Location> class.
LSR_3D_Location_Fields ::= {
coordinate Euclidean_3D_Coordinate;
}
This data type specifies the data needed to define a 3D coordinate in the LTAS spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM LTAS 3D Location> class.
LTAS_3D_Location_Fields ::= {
coordinate LTAS_3D_Coordinate;
}
This data type specifies the data needed to define a surface coordinate in the LTAS spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM LTAS_Surface_Location> class.
LTAS_Surface_Location_Fields ::= {
coordinate LTAS_Surface_Coordinate;
}
This data type specifies the data needed to define a 3D coordinate in the LTC spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM LTC 3D Location> class.
LTC_3D_Location_Fields ::= {
coordinate LTC_3D_Coordinate;
}
This data type specifies the data needed to define a surface coordinate in the LTC spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM LTC_Surface_Location> class.
LTC_Surface_Location_Fields ::= {
coordinate LTC_Surface_Coordinate;
}
This data type specifies the data needed to define a 3D coordinate in the LTE spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM LTE 3D Location> class.
LTE_3D_Location_Fields ::= {
coordinate LTE_3D_Coordinate;
}
This data type specifies the data needed to define a surface coordinate in the LTE spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM LTE_Surface_Location> class.
LTE_Surface_Location_Fields ::= {
coordinate LTE_Surface_Coordinate;
}
This data type specifies the data needed to define a map projection 3D coordinate. It is specified in 2.[I18026].
This data type specifies the data needed to define a map projection surface coordinate. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM Map Scale Level Of Detail Data> class.
Map_Scale_LOD_Data_Fields ::= {
map_scale Long_Float;
}
This data type encapsulates the field elements of the <DRM M Augmented 3D Location> class.
M_Augmented_3D_Location_Fields ::= {
coordinate Map_Projection_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM Mesh Face Table> class.
Model_Fields ::= {
total_mesh_faces Integer_Positive;
max_nodes_and_rings Integer_Positive;
topology_present Boolean;
}
This data type encapsulates the field elements of the <DRM Model> class.
Model_Fields ::= {
name String;
srf_info SRF_Info;
model_reference_type Model_Reference_Type;
dynamic_model_processing Boolean;
has_units Boolean;
has_moving_parts Boolean;
}
This data type encapsulates the field elements of the <DRM Model Instance Template Index> class.
Model_Instance_Template_Index_Fields
::= {
index Integer_Positive;
}
This data type encapsulates the field elements of the <DRM Moving Light Behaviour> class.
Moving_Light_Behaviour_Fields
::= {
speed Long_Float;
delay Long_Float;
}
This data type encapsulates the field elements of the <DRM M Surface_Location> class.
M_Surface_Location_Fields ::= {
coordinate Map_Projection_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM Octant Data> class.
Octant_Data_Fields ::= {
octant Octant;
}
This data type encapsulates the field elements of the <DRM Octant Related Features> class.
Octant_Related_Features_Fields
::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM Octant Related Geometry> class.
Octant_Related_Geometry_Fields
::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type selects which branches to traverse from an <DRM Octant Related Features> or <DRM Octant Related Geometry> object when encountered by a component iterator. Each branch with a link object whose field values match one of the entries contained in this record data type will be traversed.
Octant_Select_Parameters ::= {
octant_data_count Integer_Unsigned;
octant_data_array Octant_Data_Fields[octant_data_count];
}
This data type encapsulates the field elements of the <DRM OM Augmented 3D Location> class.
OM_Augmented_3D_Location_3D_Fields ::= {
coordinate Map_Projection_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM OM Surface_Location> class.
OM_Surface_Location_Fields ::= {
coordinate Map_Projection_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM Overload Priority Index> class.
Overload_Priority_Index_Fields ::= {
overload_priority Short_Integer;
}
This data type specifies the primary data structure returned from 7.3.42 GetPackedHierarchy or 7.3.48 GetRemainingPackedHierarchies. This record data type represents the entry point in the packed hierarchy.
Packed_Hierarchy ::= {
hierarchy_root_object Packed_Hierarchy_Object_Access;
object_count Integer_Unsigned;
object_list Packed_Hierarchy_Object[object_count];
reference_list_length Integer_Unsigned;
reference_list Packed_Hierarchy_Reference[reference_list_length];}
This data type specifies an object in a packed hierarchy.
Packed_Hierarchy_Object ::= {
this_object Object;
components_included Boolean;
number_of_components Integer_Unsigned;
components Packed_Hierarchy_Reference[number_of_components];
aggregates_included Boolean;
number_of_aggregates Integer_Unsigned;
aggregates Packed_Hierarchy_Reference[number_of_aggregates];
fields DRM_Class_Fields;
status Status_Code;}
This data type specifies a reference to an object in a packed hierarchy.
Packed_Hierarchy_Reference ::= {
object Packed_Hierarchy_Object_Access;
link_object Packed_Hierarchy_Object_Access;}
This data type specifies parallelepiped <DRM Volume Level Of Detail Data>.
Parallelepiped_Volume_Extent_Entry ::= {
parallelepiped Parallelepiped_Volume_Extent_Fields;
reference_vectors Reference_Vector_Fields[3];
}
This data type encapsulates the field elements of the <DRM Parallelepiped Volume Extent> class.
Parallelepiped_Volume_Extent_Fields ::= {
edge_length Long_Float[3];
}
This data type encapsulates the field elements of the <DRM Perimeter Related Feature Topology> class.
Perimeter_Related_Feature_Topology_Fields ::= {
feature_topology_level Feature_Toplogy_Level;
}
This data type encapsulates the field elements of the <DRM Perimeter Related Features> class.
Perimeter_Related_Features_Fields
::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM Perimeter Related Geometry> class.
Perimeter_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM Perimeter Related Geometry Topology> class.
Perimeter_Related_Geometry_Topology_Fields ::= {
geometry_topology_level Geometry_Toplogy_Level;
}
This data type specifies the data needed to define a 2D coordinate in the Polar spatial reference frame. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM Polar 2D Location> class.
Polar_2D_Location_Fields ::= {
coordinate Polar_2D_Coordinate;
}
This data type encapsulates the field elements of the <DRM Polygon Control Link> class.
Polygon_Control_Link_Fields ::= {
description String;
hat_test_expression_index Integer_Unsigned;
collidible_expression_index Integer_Unsigned;
invisible_expression_index Integer_Unsigned;
laser_range_finding_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Polygon> class.
Polygon_Fields ::= {
polygon_flags Polygon_Flags;
}
This data type encapsulates the field elements of the <DRM Positional Light> class.
Positional_Light_Fields ::= {
apply_to_children Boolean;
override_positional_lights Boolean;
override_infinite_lights Boolean;
active_light_value Boolean;
radius Float;
constant_attenuation_factor Long_Float;
linear_attenuation_factor Long_Float;
quadratic_attenuation_factor Long_Float;
}
This data type encapsulates the field elements of the <DRM Predefined Function> class.
Predefined_Function_Fields ::=
{
value_type Property_Data_Value_Type;
function Predefined_Function;
}
This data type encapsulates the field elements of the <DRM Presentation Domain> class.
Presentation_Domain_Fields ::= {
presentation_domain Presentation_Domain;
}
This data type encapsulates the field elements of the <DRM Primitive Summary Item> class.
Primitive_Summary_Item_Fields ::= {
drm_class DRM_Class;
multiplicity Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Process> class.
Process_Step_Fields ::= {
description String;
rationale String;
}
This data type encapsulates the field elements of the <DRM Property Characteristic> class.
Property_Characteristic_Fields ::= {
meaning EDCS_Metadata_Code;
characteristic_value Property_Data_Value;
}
This data type is a wrapper to hold a single value. This variant record type is used to represent cells in <Data Tables>, values in <Property Values>, axis values in <Enumeration Axis Entries>, and the values of <Literals>. The value type variant indicates the currently valid field of all of the legal types of values for a Property Value or Data Table.
Property_Data_Value ::= (value_type Property_Data_Value_Type) {
BOOLEAN : boolean_value Boolean;
BYTE : byte_value Byte;
BYTE_POSITIVE: byte_positive_value Byte_Positive;
BYTE_UNSIGNED: byte_unsigned_value Byte_Unsigned;
SHORT_INTEGER: short_integer_value Short_Integer;
SHORT_INTEGER_POSITIVE: short_integer_positive_value Short_Integer_Positive;
SHORT_INTEGER_UNSIGNED: short_integer_unsigned_value Short_Integer_Unsigned;
INTEGER: integer_value Integer;
INTEGER_INTERVAL: integer_interval_value Integer_Interval;
INTEGER_POSITIVE: integer_positive_value Integer_Positive;
INTEGER_UNSIGNED: integer_unsigned_value Integer_Unsigned;
INTEGER_UNSIGNED_INTERVAL: integer_unsigned_interval_value Integer_Unsigned_Interval;
FLOAT: float_value Float;
FLOAT_INTERVAL: float_interval_value Float_Interval;
LONG_FLOAT: long_float_value Long_Float;
STRING: string_value String;
DATA_TABLE_COMPONENT_INDEX: dt_component_index_value Integer_Unsigned;
DATA_TABLE_LIBRARY_INDEX: dt_library_index_value Integer_Unsigned;
ENUMERANT_CODE: edcs_enumerant_code_value EDCS_Integer;
METADATA_CODE: edcs_metadata_code_value EDCS_Metadata_Code;
}
This data type encapsulates the field elements of the <DRM Property Description> class.
Property_Description_Fields ::=
{
meaning Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
}
This data type encapsulates the field elements of the <DRM Property> class.
Property_Fields ::= {
meaning Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
}
This data type encapsulates the field elements of the <DRM Property Grid> class.
Property_Grid_Fields ::= {
spatial_axes_count Short_Integer_Positive;
location_index Short_Integer[spatial_axes_count];
srf_info SRF_Info;
data_present Boolean;
}
This data type encapsulates the field elements of the <DRM Property Set Index> class.
Property_Set_Index_Fields ::= {
index Integer_Positive;
}
This data type encapsulates the field elements of the <DRM Property Set Index Control Link> class.
Property_Set_Index_Control_Link_Fields ::= {
description String;
expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Property Set Table> class.
Property_Set_Table_Fields ::= {
table_usage String;
regular Boolean;
}
This data type encapsulates the field elements of the <DRM Property Set Table Group> class.
Property_Set_Table_Group_Fields
::= {
group_id Integer_Unsigned;
primary_table_index Integer_Positive;
table_size Integer_Positive;
}
This data type encapsulates the field elements of the <DRM Property Table Reference Control Link> class.
Property_Table_Reference_Control_Link_Fields
::= {
description String;
expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Property Table Reference> class.
Property_Table_Reference_Fields
::= {
axis_type Element_Type;
index_on_axis Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Property Value> class.
Property_Value_Fields ::= {
meaning Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_code;
value Property_Data_Value;
}
This data type encapsulates the field elements of the <DRM PS Augmented 3D Location> class.
PS_Augmented_3D_Location_Fields ::= {
coordinate Map_Projection_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM Pseudo Code Function> class.
Pseudo_Code_Function_Fields ::=
{
value_type Property_Data_Value_Type;
name String;
pseudo_code String;
}
This data type encapsulates the field elements of the <DRM PS Surface Location> class.
PS_Surface_Location_Fields ::= {
coordinate Map_Projection_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM Pyramid Directional Light> class.
Pyramid_Directional_Light_Fields ::= {
use_full_intensity Boolean;
minimum_colour_intensity Long_Float;
invisible_behind Boolean;
}
This data type encapsulates the field elements of the <DRM Quadrant Data> class.
Quadrant_Data_Fields ::= {
quadrant Quadrant;
}
This data type encapsulates the field elements of the <DRM Quadrant Related Features> class.
Quadrant_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type encapsulates the field elements of the <DRM Quadrant Related Geometry> class.
Quadrant_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type selects which branches to traverse from an <DRM Quadrant Related Features> or <DRM Quadrant Related Geometry> object when encountered by a component iterator. Each branch with a link object whose field values match one of the entries contained in this record data type will be traversed.
Quadrant_Select_Parameters ::= {
quadrant_data_count Integer_Unsigned
quadrant_data_array Quadrant_Data_Fields[quadrant_data_count];
}
This data type encapsulates the field elements of the <DRM Reference Origin> class.
Reference_Origin_Fields ::= {
srf_info SRF_Info;
}
This data type encapsulates the field elements of the <DRM Reference Surface> class.
Reference_Surface_Fields ::= {
classification EDCS_Classification_Code;
multiplicity_rule Reference_Surface_Elevation_Select;
lod_rule Reference_Surface_LOD_Select;
}
This data type encapsulates the field elements of the <DRM Reference Vector Control Link> class.
Reference_Vector_Control_Link_Fields ::= {
description String;
v0_expression_index Integer_Unsigned;
v1_expression_index Integer_Unsigned;
v2_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Reference Vector> class.
Reference_Vector_Fields ::= {
unit_vector Vector_3;
vector_type Reference_Vector_Type;
}
This data type encapsulates the field elements of the <DRM Regular Axis> class.
Regular_Axis_Fields ::= {
axis_type Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
axis_value_count Short_Integer_Positive;
interpolation_type Interpolation_Type;
first_value Property_Data_Value;
spacing Property_Data_Value;
spacing_type Spacing_Type;
axis_alignment Axis_Alignment;
}
This data type encapsulates the field elements of the <DRM Relative Time> class.
Relative_Time_Fields ::= {
time_significance Time_Significance;
delta_days Integer;
delta_hours Byte_Unsigned;
delta_minutes Byte_Unsigned;
delta_seconds Long_Float;
}
This data type encapsulates the field elements of the <DRM Relative Time Interval> class.
Relative_Time_Interval_Fields ::= {
time_significance Time_Significance;
delta_start_days Integer;
delta_stop_days Integer;
delta_start_hours Byte_Unsigned;
delta_stop_hours Byte_Unsigned;
delta_start_minutes Byte_Unsigned;
delta_stop_minutes Byte_Unsigned;
delta_start_seconds Long_Float;
delta_stop_seconds Long_Float;
}
This data type specifies an interval relative to an absolute time reference point.
Relative_To_Absolute_Time_Interval_Entry ::= {
reference_time_point Absolute_Time_Point_Fields;
relative_interval Relative_Time_Interval_Fields;
}
This data type specifies a time point relative to a reference time.
Relative_To_Absolute_Time_Point_Entry ::= {
reference_time_point Absolute_Time_Point_Fields;
relative_time Relative_Time_Point_Fields;
}
This data type specifies the data objects still to be processed by an iterator.
Remaining_Objects_List ::= {
number_of_objects Integer_Unsigned;
remaining_objects_list Object[number_of_objects];
remaining_link_objects_list Object[number_of_objects];
object_status_list Status_Code[number_of_objects];
link_object_status_list Status_Code[number_of_objects];
}
This data type specifies the packed hierarchy objects still to be processed by an iterator.
Remaining_Objects_List ::= {
hierarchy_count Integer_Unsigned;
hierarchy_list Packed_Hierarchy[hierarchy_count];
}
This data type encapsulates the field elements of the <DRM Rendering Priority Level> class.
Rendering_Priority_Level_Fields
::= {
rendering_group Short_Integer_Positive;
rendering_priority Short_Integer;
}
This data type encapsulates the field elements of the <DRM Rendering Properties> class.
Rendering_Properties_Fields ::= {
fill_method Pixel_Fill_Method;
shading_method Shading_Method;
colour_binding Colour_Binding;
style Display_Style;
side Display_Side;
}
This data type encapsulates the field elements of the <DRM RGB Colour Control Link> class.
RGB_Colour_Control_Link_Fields ::= {
description String;
red_expression_index Integer_Unsigned;
green_expression_index Integer_Unsigned;
blue_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM RGB Colour> class.
RGB_Colour_Fields ::= {
rgb_data RGB_Data;
}
This data type is used to specify the data for the Red Green Blue colour model. Red is a number from 0.0 to 1.0 (0 percent to 100 percent) indicating the proportion of red light contributing to the colour. Green is a number from 0.0 to 1.0 (0 percent to 100 percent) indicating the proportion of green light contributing to the colour. Blue is a number from 0.0 to 1.0 (0 percent to 100 percent) indicating the proportion of blue light contributing to the colour.
RGB_Data ::= {
red Long_Float;
green Long_Float;
blue Long_Float;
}
This data type encapsulates the field elements of the <DRM Rotating Light Behaviour> class.
Rotation_Light_Behaviour_Fields ::= {
period Long_Float;
}
This data type encapsulates the field elements of the <DRM Rotation Control Link> class.
Rotation_Control_Link_Fields ::= {
description String;
expression_index Integer_Unsigned;
lower_expression_index Integer_Unsigned;
upper_expression_index Integer_Unsigned;
}
This data type specifies angular limits, in radians, including POSITIVE_INFINITY and NEGATIVE_INFINITY as legal values.
Rotation_Data ::= {
ccw_limit Long_Float;
cw_limit Long_Float;
}
This data type encapsulates the field elements of the <DRM Rotation> class.
Rotation_Fields ::= {
axis LSR_Transformation_Axis;
angle Long_Float;
}
This data type encapsulates the field elements of the <DRM Scale Control Link> class.
Scale_Control_Link_Fields ::= {
description String;
expression_index Integer_Unsigned;
lower_expression_index Integer_Unsigned;
upper_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Scale> class.
Scale_Fields ::= {
axis LSR_Transformation_Axis;
scale_amount Long_Float;
}
This data type specifies the geometric limits of a spatial search in the form of boundary values that are passed to 7.3.11 CreateSpatialSearchBoundary. The minimum point and maximum point shall be in the same spatial reference frame (SRF); specifically, the current user-set SRF when the Search_Bounds is passed to 7.3.11 CreateSpatialSearchBoundary.
Search_Bounds ::= {
minimum_point SRM_Coordinate;
maximum_point SRM_Coordinate;
}
This data type specifies a single rule in a set of rules that can then be used to create a search filter. A search filter uses its associated set of rules to filter objects, so that only objects that pass the rules will be returned to the user (see 5.4.2 Iterator, 5.4.7 Search_Filter for more details.)
A single search rule by itself is useless. A set of search rules is specified using an array of type Search_Rule, filled in with a well-formed postfix notation expression, ending with an Search_Rule entry with a rule_type value of END. The sequence of Search_Rule forms an RPN logic evaluation stack.
A dynamically created search requires the user to create a rules array and fill in the array with a well-formed postfix notation expression, ending with a Search_Rule entry with a rule_type value of END.
Search_Rule ::= (rule_type Search_Rule_Type ) {
END:
AND:
OR:
NOT:
OBJECT_AND:
ASSOCIATION: unused Unused;
PREDICATE: predicate Search_Rule_Predicate;
DRM_CLASS: drm_class DRM_Class;
FIELD: field Search_Rule_Field;
FIELD_RANGE: field_range Search_Rule_Field_Range;
FIELD_ARRAY: field_array Search_Rule_Field_Array;
COMPONENT_DRM_CLASS: component_drm_class Search_Rule_DRM_Class;
COMPONENT_FIELD: component_field Search_Rule_Field;
COMPONENT_FIELD_RANGE: component_field_range Search_Rule_Field_Range;
COMPONENT_FIELD_ARRAY: component_field_array Search_Rule_Field_Array;
ASSOCIATION_DRM_CLASS: association_drm_class DRM_Class;
MAX_SEARCH_DEPTH: max_search_depth Short_Integer_Unsigned;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type COMPONENT_DRM_CLASS.
Search_Rule_Component_DRM_Class ::= {
drm_class DRM_Class;
component_object_drm_class DRM_Class;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type COMPONENT_FIELD.
Search_Rule_Component_Field ::= {
drm_class DRM_Class;
component_drm_class DRM_Class;
field_ordinal Short_Integer_Unsigned;
value Any_Search_Value;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type COMPONENT_FIELD_ARRAY.
Search_Rule_Component_Field_Array ::= {
drm_class DRM_Class;
component_drm_class DRM_Class;
field_ordinal Short_Integer_Unsigned;
value Any_Search_Value;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type COMPONENT_FIELD_RANGE.
Search_Rule_Component_Field_Range ::= {
drm_class DRM_Class;
component_drm_class DRM_Class;
field_ordinal Short_Integer_Unsigned;
value Any_Search_Value;
second_value Any_Search_Value;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type FIELD.
Search_Rule_Field ::= {
drm_class DRM_Class;
value Any_Search_Value;
field_ordinal Short_Integer_Unsigned;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type FIELD_ARRAY.
Search_Rule_Field_Array ::= {
drm_class DRM_Class;
value Any_Search_Value;
field_ordinal Short_Integer_Unsigned;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type FIELD_RANGE.
Search_Rule_Field_Range ::= {
drm_class DRM_Class;
value Any_Search_Value;
second_value Any_Search_Value;
field_ordinal Short_Integer_Unsigned;
}
This data type specifies the parameters that are to be specified for a Search_Rule of type PREDICATE.
Search_Rule_Predicate ::= {
value Any_Search_Value;
user_function Predicate;
}
This data type encapsulates the field elements of the <DRM Season> class.
Season_Fields ::= {
time_significance Time_Significance;
season Season;
}
This data type encapsulates the field elements of the <DRM SEC 3D Location> class.
SEC_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type specifies security data.
Security_Information ::= {
system String;
classification String;
handling String;
}
This data type encapsulates the field elements of the <DRM Separating Plane Data> class.
Separating_Plane_Data ::= {
positive Boolean;
}
This data type encapsulates the field elements of the <DRM Separating Plane Related Geometry> class.
Separating_Plane_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
}
This data type specifies which branches to traverse from a <DRM Separating Plane Related Geometry> object when encountered by a component iterator.
Separating_Plane_Select_Parameters ::= {
traverse_positive_branches Boolean;
traverse_negative_branches Boolean;
}
This data type encapsulates the field elements of the <DRM SEQ 3D Location> class.
SEQ_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM SM 3D Location> class.
SM_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM SMS 3D Location> class.
SMS_3D_Location_Fields ::= {
coordinate Spherical_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM Sound> class.
Sound_Fields ::= {
name String;
sound_urn URN;
duration Float;
sampling_rate Float;
bits_per_sample Byte_Positive;
channel_count Byte_Positive;
method String;
}
This data type encapsulates the field elements of the <DRM Sound Instance Control Link> class.
Sound_Instance_Control_Link_Fields
::= {
description String;
active_sound_value_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Sound Instance> class.
Sound_Instance_Fields ::= {
active_sound_value Boolean;
}
This data type encapsulates the field elements of the <DRM Source> class.
Source_Fields ::= {
description String;
scale Integer_Positive;
contribution String;
}
This data type encapsulates the field elements of the <DRM Spatial Index Data> class.
Spatial_Index_Data_Fields ::= {
row_index Integer_Positive;
column_index Integer_Positive;
}
This data type is used to build hierarchical search criteria.
When used within a Hierarchy_Select_Parameters record, this data type selects which branches to traverse from an <DRM Spatial Index Related Features> or <DRM Spatial Index Related Geometry> object when encountered by a component iterator. All branches that have a link object whose field values match one of the entries contained in an instance of this data type will be traversed.
When used within a Hierarchy_Order_Parameters record, this data type can be used to control what order to traverse the branches from a <DRM Spatial Index Related Features> or <DRM Spatial Index Related Geometry> object when encountered by a component iterator. For the set of branches that will be traversed, the order of that traversal will be specified by the spatial_index_data_array in this structure. Any branches that are traversed but are not mentioned in this ordering array will be traversed in a random order after all of the branches that are mentioned in this array are traversed.
Spatial_Index_Parameters ::= {
spatial_index_data_count Integer_Unsigned;
spatial_index_data_array Spatial_Index_Data_Fields[spatial_index_data_count];
}
This data type encapsulates the field elements of the <DRM Spatial Index Related Feature Topology> class.
Spatial_Index_Related_Feature_Topology_Fields ::= {
sparse Boolean;
column_count Integer_Positive;
row_count Integer_Positive;
column_width Long_Float;
row_width Long_Float;
spacing_units Spatial_Index_Spacing_Unit;
}
This data type encapsulates the field elements of the <DRM Spatial Index Related Features> class.
Spatial_Index_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
sparse Boolean;
column_count Integer_Positive;
row_count Integer_Positive;
column_width Long_Float;
row_width Long_Float;
spacing_units Spatial_Index_Spacing_Unit;
}
This data type encapsulates the field elements of the <DRM Spatial Index Related Geometry> class.
Spatial_Index_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
sparse Boolean;
column_count Integer_Positive;
row_count Integer_Positive;
column_width Long_Float;
row_width Long_Float;
spacing_unit Spatial_Index_Spacing_Unit;
}
This data type encapsulates the field elements of the <DRM Spatial Index Related Topology Geometry> class.
Spatial_Index_Related_Geometry_Topology_Fields ::= {
geometry_topology_level Geometry_Topology_Level;
sparse Boolean;
column_count Integer_Positive;
row_count Integer_Positive;
column_width Long_Float;
row_width Long_Float;
spacing_unit Spatial_Index_Spacing_Unit;
}
This data type encapsulates the field elements of the <DRM Spatial Resolution Level Of Detail Data> class.
Spatial_Resolution_Level_Of_Detail_Data_Fields ::= {
spatial_resolution Long_Float;
unit Spatial_Index_Spacing_Unit;
}
This data type specifies the data needed to define a 3D spherical coordinate. It is specified in 2.[I18026].
This data type encapsulates the field elements of the <DRM Spherical Volume Extent> class.
Spherical_Volume_Extent_Fields ::= {
radius Long_Float;
}
This data type encapsulates the field elements of the <DRM Spot Light> class.
Spot_Light_Fields ::= {
apply_to_children Boolean;
override_positional_lights Boolean;
override_infinite_lights Boolean;
active_light_value Boolean;
radius Float;
constant_attenuation_factor Long_Float;
linear_attenuation_factor Long_Float;
quadratic_attenuation_factor Long_Float;
horizontal_drop_off_rate Long_Float;
vertical_drop_off_rate Long_Float;
}
This data type specifies the information need to fully define a spatial reference frame.
See specification in ISO/IEC 18026—Spatial Reference Model.
This data type specifies the information need to fully define a spatial reference frame.
See specification in ISO/IEC 18026—Spatial Reference Model.
This data type encapsulates the field elements of the <DRM SRF Summary> class.
SRF_Summary_Fields ::= {
srf_parameters SRF_Parameters;
}
This data type encapsulates the field elements of the <DRM Stamp Behaviour> class.
Stamp_Behaviour_Fields ::= {
x_axis_limit Rotation_Data;
y_axis_limit Rotation_Data;
z_axis_limit Rotation_Data;
}
This data type encapsulates the field elements of the <DRM State Control Link> class.
State_Control_Link_Fields ::= {
description String;
expression_index Integer_Positive;
mismatch_behaviour State_Mismatch_Behaviour;
}
This data type specifies data in the fields of a <DRM State Data> class.
State_Data_Fields ::= {
state_value Property_Data_Value;
}
This data type specifies detailed information about a particular state to match during a search.
State_Entry ::= {
state_tag EDCS_Attribute_Code;
state_data State_Data_Fields;
}
This data type encapsulates the field elements of the <DRM State Related Features> class.
State_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
state_tag EDCS_Attribute_Code;
archive_state_value Property_Data_Value;
}
This data type encapsulates the field elements of the <DRM State Related Geometry> class.
State_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
state_tag EDCS_Attribute_Code;
archive_state_value Property_Data_Value;
}
This data type controls the traversal order of the branches from a <DRM State Related Features> or <DRM State Related Geometry> object when encountered by a component iterator. For the set of branches to be traversed, the order of that traversal will be specified by the state_array in this structure. All branches that have a link object whose fields do not disagree with the entries contained in this record will be traversed
State_Select_Parameters ::= {
default_choice Unmatched_State_Behaviour;
matching_rules Branch_Range_Matching;
state_entry_count Integer_Unsigned
state_entry_array State_Entry[state_entry_count];
}
This data type is used to specify a character string along with information that specifies how the string is to be interpreted. The length field specifies the number of characters in the string.
String ::= {
locale Locale;
length Integer_Unsigned;
characters Character[length];
}
This data type encapsulates the field elements of the <DRM Strobing Light Behaviour> class.
Strobing_Light_Behaviour_Fields ::= {
period Long_Float;
delay Long_Float;
}
This data type encapsulates the field elements of the <DRM Symbol> class.
Symbol_Fields ::= {
name String;
symbol_urn URN;
}
This data type encapsulates the field elements of the <DRM Table Property Description> class.
Table_Property_Description_Fields ::= {
attribute_code Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
value_type Property_Data_Value;
component_data_table_scc EDCS_Classification_Code;
}
This data type encapsulates the field elements of the <DRM Text> class.
Text_Fields ::= {
text_string String;
font Text_Font;
}
This data type encapsulates the information needed to determine the appearance of displayed textual information.
The font family is the name given to a set of fonts by a font designer. The font family can identify generic (e.g., SANS-SERIF and SERIF) or proprietary names (e.g., Clarendon or Lucida). The font family may have subfamilies. If so, the subfamily is identified as part of the name (e.g., Lucida Blackletter). The font family is specified by a String field. The maximum length of a font family name is 32 characters.
The font style specifies the appearance variation allowed within the font family.
The font size specifies how big the text is to be presented. Size is specified in points. The implementation shall provide a rational means of mapping points to the size of text in a presentation. Default size is 11 points. Since this element is specified as a float, the size specified may not be mappable to the sizes available for a particular font family. In that case, the size available that is nearest to the requested size shall be used
The underline style specifies how text is underlined. The default style is NONE. If a style is specified that is not recognized by an implementation, SINGLE shall be used. The width of the line used to implement the underlining shall be appropriate to the font size and font style specified.
Text_Font ::= {
font_family String[32];
font_style Font_Style;
font_size Float;
underline_style Underline_Style;
}
This data type encapsulates the field elements of the <DRM Texture Coordinate Control Link> class.
Texture_Coordinate_Control_Link_Fields ::= {
description String;
s_expression_index Integer_Unsigned;
t_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Texture Coordinate> class.
Texture_Coordinate_Fields ::= {
s Long_Float;
t Long_Float;
}
This data type encapsulates the elements of a single DAY_OF_YEAR time value.
Time_Day_Of_Year_Value ::= {
day Integer;
}
This variant record data type specifies different information depending on the type of time data provided.
Time_Entry ::= (time_entry_type Time_Data_Type ) {
MONTH: month Month;
SEASON: season Season_Fields;
TIME_INTERVAL: time_interval Time_Interval_Entry;
TIME_OF_DAY: time_of_day Time_Of_Day_Fields;
TIME_POINT: time_point Time_Point_Entry;
}
This variant record data type specifies different time interval information depending on the time type.
Time_Interval_Entry ::= (time_type Time_Measurement_Type) {
GMT: absolute_time Absolute_Time_Interval_Entry;
RELATIVE_TO_EXERCISE_START: relative_to_simulation Relative_Time_Interval_Fields;
RELATIVE_TO_REFERENCE_TIME: relative_to_absolute Relative_To_Absolute_Time_Interval_Entry;
}
This data type encapsulates the field elements of the <DRM Time Interval> class.
Time_Interval_Fields ::= {
time_significance Time_Significance;
}
This data type encapsulates the elements of a single DATE_M time value.
Time_M_Value ::= {
month Month;
}
This data type encapsulates the elements of a single DATE_MD_AND_TIME_H time value. Allowable range for hour is 0..23.
Time_MD_H_Value ::= {
month Month;
day Integer;
hour Unsigned_Byte;
}
This data type encapsulates the elements of a single DATE_MD_AND_TIME_HM time value. Allowable range for hour is 0..23. Allowable range for minutes is 0..59.
Time_MD_HM_Value ::= {
month Month;
day Integer;
hour Unsigned_Byte;
minutes Unsigned_Byte;
}
This data type encapsulates the elements of a single DATE_MD_AND_TIME_HMS time value. Allowable range for hour is 0..23. Allowable range for minutes is 0..59. Allowable range for seconds is [0,60).
Time_MD_HMS_Value ::= {
month Month;
day Integer;
hour Unsigned_Byte;
minutes Unsigned_Byte;
seconds Long_Float;
}
This data type encapsulates the field elements of the <DRM Time Of Day> class.
Time_Of_Day_Fields ::= {
time_of_day Time_Of_Day;
}
This variant record data type specifies the appropriate time point information depending on the type time specified.
Time_Point_Entry ::= (time_type Time_Measurement_Type ) {
GMT: absolute_time Absolute_Time_Point_Fields;
RELATIVE_TO_EXERCISE_START: relative_to_start Relative_Time_Point_Fields;
RELATIVE_TO_REFERENCE_TIME: relative_to_reference Relative_To_Absolute_Time_Point_Entry;
}
This data type encapsulates the field elements of the <DRM Time Point> class.
Time_Point_Fields ::= {
time_significance Time_Significance;
}
This data type encapsulates the field elements of the <DRM Time Related Features> class.
Time_Related_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
time_data_type Time_Data_Type;
}
This data type encapsulates the field elements of the <DRM Time Related Geometry> class.
Time_Related_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
time_data_type Time_Data_Type;
}
This data type specifies which branches to traverse from a <DRM Time Related Features> or <DRM Time Related Geometry> object when encountered by a component iterator. All branches with a <DRM Time Constraints Data> link object having <DRM Base Time Data> with values matching the ranges specified in the time_entry_array will be traversed.
If no rules are provided for the type of time data of the branch in question, the branch will be traversed. For example, if a branch is marked with season data, but only time_of_day search ranges are provided, the season branch will be taken. When no search rules for a certain type of time are specified, all values for that type of time are considered valid. For another example, if time_interval search ranges are given, but only for GMT times and not any RELATIVE_TO_EXERCISE_START times, any branch with a RELATIVE_TO_EXERCISE_START time value will be traversed, but branches with GMT time values will only be traversed if they match the given GMT search ranges.
Time_Select_Parameters ::= {
matching_rules Branch_Matching_Rules;
time_entry_count Integer_Unsigned;
time_entry_array Time_Entry[time_entry_count];
}
This variant data type specifies volume extent data for Volume_LOD_Entry.
Time_Value ::= (time_configuration Time_Configuration ) {
DATE_YMD_AND__TIME_HMS: ymd_hms Time_YMD_HMS_Value;
DATE_YMD_AND_TIME_HM: ymd_hm Time_YMD_HM_Value;
DATE_YMD_AND_TIME_H: ymd_h Time_YMD_H_Value;
DATE_YMD: ymd Time_YMD_Value;
DATE_YD_AND_TIME_HMS: yd_hms Time_YD_HMS_Value;
DATE_YD_AND_TIME_HM: yd_hm Time_YD_HM_Value;
DATE_YD_AND_TIME_H: yd_h Time_YD_H_Value;
DATE_YD: yd Time_YD_Value;
DATE_MD_AND_TIME_HMS: md_hms Time_MD_HMS_Value;
DATE_MD_AND_TIME_HM: md_hm Time_MD_HM_Value;
DATE_MD_AND_TIME_H: md_h Time_MD_H_Value;
DATE_Y: y Time_Y_Value;
DATE_M: m Time_M_Value;
DAY_OF_YEAR: day_of_year Time_Day_Of_Year_Value;
}
This data type encapsulates the elements of a single DATE_Y time value.
Time_Y_Value ::= {
year Integer;
}
This data type encapsulates the elements of a single DATE_YD time value.
Time_YD_Value ::= {
year Integer;
day Integer;
}
This data type encapsulates the elements of a single DATE_YD_AND_TIME_H time value. Allowable range for hour is 0..23.
Time_YD_H_Value ::= {
year Integer;
day Integer;
hour Unsigned_Byte;
}
This data type encapsulates the elements of a single DATE_YD_AND_TIME_HM time value. Allowable range for hour is 0..23. Allowable range for minutes is 0..59.
Time_YD_HM_Value ::= {
year Integer;
day Integer;
hour Unsigned_Byte;
minutes Unsigned_Byte;
}
This data type encapsulates the elements of a single DATE_YD_AND_TIME_HMS time value. Allowable range for hour is 0..23. Allowable range for minutes is 0..59. Allowable range for seconds is [0,60).
Time_YD_HMS_Value ::= {
year Integer;
day Integer;
hour Unsigned_Byte;
minutes Unsigned_Byte;
seconds Long_Float;
}
This data type encapsulates the elements of a single DATE_YMD time value.
Time_YMD_Value ::= {
year Integer;
month Month;
day Integer;
}
This data type encapsulates the elements of a single DATE_YMD_AND_TIME_H time value. Allowable range for hour is 0..23.
Time_YMD_H_Value ::= {
year Integer;
month Month;
day Integer;
hour Unsigned_Byte;
}
This data type encapsulates the elements of a single DATE_YMD_AND_TIME_HM time value. Allowable range for hour is 0..23. Allowable range for minutes is 0..59.
Time_YMD_HM_Value ::= {
year Integer;
month Month;
day Integer;
hour Unsigned_Byte;
minutes Unsigned_Byte;
}
This data type encapsulates the elements of a single DATE_YMD_AND_TIME_HMS time value. Allowable range for hour is 0..23. Allowable range for minutes is 0..59. Allowable range for seconds is [0,60).
Time_YMD_HMS_Value ::= {
year Integer;
month Month;
day Integer;
hour Unsigned_Byte;
minutes Unsigned_Byte;
seconds Long_Float;
}
This data type encapsulates the field elements of the <DRM TM Augmented 3D Location> class.
TM_Augmented_3D_Location_Fields ::= {
coordinate Map_Projection_3D_Coordinate;
}
This data type encapsulates the field elements of the <DRM TM Surface_Location> class.
TM_Surface_Location_Fields ::= {
coordinate Map_Projection_Surface_Coordinate;
}
This data type encapsulates the field elements of the <DRM Translation Control Link> class.
Translation_Control_Link_Fields ::= {
description String;
expression_index Integer_Unsigned;
lower_expression_index Integer_Unsigned;
upper_expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Translation> class.
Translation_Fields ::= {
axis LSR_Transformation_Axis;
translation_amount Long_Float;
}
This data type encapsulates the field elements of the <DRM Translucency Control Link> class.
Translucency_Control_Link_Fields ::= {
description String;
expression_index Integer_Unsigned;
}
This data type encapsulates the field elements of the <DRM Translucency> class.
Translucency_Fields ::= {
translucency_value Long_Float;
}
This data type encapsulates the field elements of the <DRM Transmittal Root> class.
Transmittal_Root _Field ::= {
name String;
major_DRM_version Short_Integer_Positive;
minor_DRM_version Byte_Unsigned;
interim_DRM_version Character;
major_EDCS_version Short_Integer_Positive;
minor_EDCS_version Byte_Unsigned;
interim_EDCS_version Character;
credits String;
}
This data type encapsulates the field elements of the <DRM Transmittal Summary> class.
Transmittal_Summary _Field ::= {
features_present Present_In;
feature_topology_present Present_In;
geometry_present Present_In;
geometry_topology_present Present_In;
data_tables_present Present_In;
priority_values_present Present_In;
mobility_values_present Present_In;
thermal_values_present Present_In;
terrain_lods_present Present_In;
two_D_features_present Present_In;
models_present Boolean;
images_present Boolean;
sounds_present Boolean;
symbols_present Boolean;
colours_present Boolean;
colour_model Colour_Model;
EDCS_usage_list_is_comprehensive Boolean
}
This data type encapsulates the field elements of the <DRM Union Of Features> class.
Union_Of_Features_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
union_type Feature_Union_Reason;
ordering_reason Ordering_Reason;
}
This data type encapsulates the field elements of the <DRM Union Of Feature Topology> class.
Union_Of_Feature_Topology_Fields ::= {
feature_topology_level Feature_Toplogy_Level;
}
This data type encapsulates the field elements of the <DRM Union Of Geometry> class.
Union_Of_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
ordering_reason Ordering_Reason;
}
This data type encapsulates the field elements of the <DRM Union Of Geometry Hierarchy> class.
Union_Of_Geometry_Hierarchy_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
ordering_reason Ordering_Reason;
}
This data type encapsulates the field elements of the <DRM Union Of Geometry Topology> class.
Union_Of_Geometry_Topology_Fields ::= {
geometry_topology_level Geometry_Toplogy_Level;
}
This data type encapsulates the field elements of the <DRM Union Of Primitive Geometry> class.
Union_Of_Primitive_Geometry_Fields ::= {
unique_descendants Boolean;
strict_organizing_principle Boolean;
ordering_reason Ordering_Reason;
}
This data type specifies a data type for DRM classes that have no field data. It is provided so that all variants of the Data_Item_Field data type will have an associated record data type.
Unused_Fields ::= {
unused Integer;
}
This data type is used to specify a SEDRIS Universal Resource Name (URN). The syntax and character set for such names are specified in the Internet Engineering Task Force (IETF) RFC xxxx (see 2.[RFCxxxx]).
URN ::= {
length Integer_Unsigned;
characters Character[length];
}
This data type specifies an arbitrary set of user data:
User_Data ::= {
length Integer_Unsigned;
data Byte_Unsigned[length];
}
This data type encapsulates the field elements of the <DRM Variable> class.
Variable_Fields ::= {
meaning Element_Type;
value_unit EDCS_Unit_Code;
value_scale EDCS_Scale_Code;
value_type Property_Data_Value_Type;
description String;
runtime_label String;
}
This data type specifies the data needed to define a 3D vector. It is specified in 2.[I18026].
This variant data type specifies volume extent data for Volume_LOD_Entry.
Volume_Extent_Entry ::= (volume_type Volumetric_Shape ) {
SPHERE: sphere Spherical_Volume_Extent_Fields;
CYLINDER: cylinder Cylinder_Volume_Extent_Entry;
PARALLELEPIPED: parallelepiped Parallelepiped_Volume_Extent_Entry;
}
This data type encapsulates the field elements of the <DRM Volume Light Behaviour> class.
Volume_Light_Behaviour_Fields
::= {
use_full_intensity Boolean;
minimum_colour_intensity Long_Float;
}
This data type encapsulates the field elements of the <DRM Volume Level Of Detail Data> class.
Volume_LOD_Data_Fields ::= {
outside Boolean;
}
This data type specifies volume LOD data.
Volume_LOD_Entry ::= {
coordinate SRM_Coordinate_3D;
volume_extent Volume_Extent_Entry;
volume_lod Volume_LOD_Data_Fields;
}
This data type encapsulates the field elements of the <DRM World Transformation> class.
World_Transformation_Fields ::= {
world_3x3 Matrix_3x3;
}
Private data types are those data types whose exact structure is hidden. Such data types are manipulated solely using functions. This allows an implementation to store the data that shall be maintained for the data type in whatever form is convenient for the implementation.
This data type specifies information that is used to cycle repeatedly over some aspect of a SEDRIS transmittal.
An iterator allows a user to step through a collection of objects related to the iterator’s start object, where the elements of the collection satisfy the conditions used to initialize the iterator. (For instance, an iterator may be initialized with a search filter.)
The relationship of the start object to the objects in the collection depends on which function was used to initialize the iterator.
Iterators in SEDRIS have the following characteristics:
More details are available in the various iterator initialization functions (see 7.3.62 InitializeAggregateIterator, 7.3.63 InitializeAssociateIterator, and 7.3.64 InitializeComponentIterator), as well as in 7.3.35 GetNextObject, 7.3.47 GetRemainingObjectsList, and 7.3.13 FreeIterator.
More information on the iterator behavioral pattern and external iterators is available in [GAMMA].
This data type stores a means to access a DRM class instance. An instance of this type is called a DRM class handle.
A SEDRIS DRM class instance may be resolved, unresolved or unsaved:
NOTE To be available for inter-transmittal referencing (ITR), a SEDRIS object shall be published.
This data type stores a means to access a packed hierarchy object.
This data type stores information that is used by the API during spatial searches.
This data type stores information that is used as a search filter during searches of a transmittal.
A search filter is created by calling CreateSearchFilter, which provides a set of rules that are used by iterators to filter objects so that only objects that pass the rules will be returned to the user.
Search filters have the following characteristics:
This data type supports the specification of arbitrary data to be used by the implementation during searching.
This data type is used to maintain the implementation dependent information necessary to access a transmittal.
This part of ISO/IEC 18023 provides for the specification of arbitrary “call-back” functions that are provided by the application but invoked by the implementation. Such functions shall have the function signature specified for each function data type.
This data type is a call-back used during searching. Whenever the rule_type value for a Search_Rule data type instance holds the value of PREDICATE, a function with the following signature shall be provided:
Return value: Boolean
Parameters: Object
Object
Test_Data
This data type is a call-back used whenever a status code is being returned. The function shall be used solely for tracking the status codes returned and has no effect on the code being returned.
Return value: none
Parameters: Transmittal_API_Function
Status_Code
String
String