Table 6.145—DRM_Interface_Template

Property

Description

Superclass

·         <DRM SEDRIS Abstract Base>

Class

·         <DRM Interface Template>

Subclass

·         none

Definition

This DRM class provides, for the given scope, a means of accessing all <DRM Variable> instances within that scope, thus allowing manipulation of the affected <DRM Control Link> instances' targets. These <DRM Variable> instances are associated with the <DRM Interface Template> in an ordered list; each is also aggregated by at least one <DRM Control Link> instance in the given scope.

a. For a <DRM Model> that is instanced by some object MI (either a <DRM Feature Model Instance> or a <DRM Geometry Model Instance>), values are specified for each of the <DRM Variable> instances  associated with the <DRM Model>'s <DRM Interface Template> as follows:

Each such value is specified by an <DRM Expression> that is aggregated by MI. The <DRM Model Instance Template Index> instance lying between the <DRM Expression> and MI specifies the particular <DRM Variable> instance being set by specifying its index within the ordered list of the <DRM Model>'s <DRM Interface Template>.

Note that the <DRM Expression> may be a <DRM Variable> in the instancing scope, or a <DRM Function> of some kind, not just a <DRM Literal>.

b. For an <DRM Environment Root> instance, an <DRM Interface Template> provides a means for 'environmental' <DRM Variable> instances to be accessed by the user, such as a <DRM Variable> for EAC_WIND_SPEED.

An <DRM Interface Template> instance is always a component of a <Model> or <DRM Environment Root> instance. The scope of that <DRM Model> or <DRM Environment Root> is hereafter referred to as 'the given scope' in this definition.

Example(s)

·         Consider a <DRM Model> representing a tank, which is made up of separate tank body, turret and cannon submodels, each instanced by the tank <DRM Model> itself. The turret can be dynamically rotated and the cannon can be dynamically elevated. Both movements can be controlled separately.

Both movements are rotations, so each of the turret and cannon submodels have <DRM Rotation> instances at appropriate points in their hierarchies. Each of these <DRM Rotation> instances aggregates a <DRM Rotation Control Link>, which in turn aggregates a <DRM Variable> that specifies the current rotation. The values supplied for these <DRM Variable> instances shall be adjusted from outside the submodels that contain them. Consequently, the <DRM Variable> in each submodel shall be associated with its submodel's <DRM Interface Template>.

However, the turret and cannon rotations shall be controlled from outside the entire tank <DRM Model>. Therefore, it shall be possible to set rotation values via the tank <DRM Model>'s own <DRM Interface Template>, so the tank <DRM Model> shall contain a turret-rotation <DRM Variable> and a cannon-elevation <DRM Variable>, and these <DRM Variable> instances shall be associated with the tank <DRM Model>'s own <DRM Interface Template>. Each of the two <DRM Variable> instances is also aggregated by the <DRM Geometry Model Instance> that instances the submodel to which they relate.

Finally, it is necessary to tie the <DRM Variable> instances in the tank <DRM Model> to the equivalent <DRM Variable> instances in each of the submodels. This is done using the <DRM Model Instance Template Index> link object for each tank <DRM Variable>. The <DRM Model Instance Template Index> link object associated with the tank <DRM Model>'s turret-rotation <DRM Variable> references the equivalent <DRM Variable>'s entry in the turret <DRM Model>'s <DRM Interface Template>, and the <DRM Model Instance Template Index> link object associated with the tank <DRM Model>'s cannon-elevation <DRM Variable> references the equivalent <DRM Variable>'s entry in the cannon <DRM Model>'s <DRM Interface Template>.

Consequently, the tank <DRM Model>'s <DRM Interface Template> allows the turret rotation and cannon elevation to be set from outside the <DRM Model>. The values set in the tank <DRM Model> will then themselves set values in the <DRM Variable> instances within the turret and cannon submodels, thereby rotating the turret and elevating the cannon as required.

·         A building <DRM Model> that may be instanced on terrain polygons that are at various different orientations. Each building wall shall meet the terrain, leaving no gaps. This means that the lengths of the building's walls shall be adjusted by different amounts in each instance to match the slope of the ground.

The location of each <DRM Vertex> of a <DRM Polygon> can be adjusted by using an <DRM LSR Location 3D Control Link> aggregated by the <DRM LSR Location 3D> that specifies the <DRM Vertex>'s location. Each <DRM LSR Location 3D Control Link> would itself aggregate a <DRM Variable>, which would specify the new location value. These <DRM Variable>s shall be set separately for each instance to match the terrain upon which the instance is positioned. This calls for the <DRM Variable>s to be set from outside the building <DRM Model> so all of these <DRM Variable>s in the building <DRM Model> shall be associated with the <DRM Model>'s <DRM Interface Template>.

When the building is instanced, via a <DRM Geometry Model Instance> GMI, the <DRM Variable> instances' values can be set for GMI using <DRM Expression> instances aggregated by GMI. As the terrain on which GMI will stand is known and fixed, these <DRM Expression> instances could be <DRM Literal> instances. Each <DRM Literal> instance is related to the <DRM Variable> for which it is specifying a value by the associated <DRM Model Instance Template Index>, which references the <DRM Variable> via the building <DRM Model>'s <DRM Interface Template>.

Inherited field elements

field_name

range

Field_Data_Type

none

 

 

Field elements

field_name

range

Field_Data_Type

description

 

String

Associated to (one-way) (inherited)

·         none

Associated to (one-way)

·         none

Associated by (one-way) (inherited)

·         none

Associated by (one-way)

·         none

Associated with (two-way) (inherited)

·         none

Associated with (two-way)

·         one or more {ordered} <DRM Variable>s

Composed of (two-way) (inherited)

·         none

Composed of (two-way)

·         none

Composed of (two-way metadata) (inherited)

·         none

Composed of (two-way metadata)

·         none

Component of (two-way) (inherited)

·         none

Component of (two-way)

·         zero or one <DRM Environment Root>

·         zero or one <DRM Model>

Constraints

·         Non-crossing associations

Notes

none

Class diagram

<DRM Interface Template>