Table 6.145—DRM_Interface_Template
Property |
Description |
||||||
Superclass |
|||||||
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: 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 elements |
|
||||||
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 |
|||||||
Notes |
none |
||||||
Class diagram |