Property
|
Description
|
Class
|
|
Superclass
|
|
Subclass
|
|
Definition
|
An instance of this DRM class is always a component of a
<DRM Model> or
<DRM Environment Root>
instance. The scope of that
<DRM Model> / <DRM
Environment Root> is hereafter referred to as
the given scope in this definition.
An instance of 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.
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 The <DRM Expression> may be a
<DRM Variable> in the instancing scope, or a
<DRM Function> of some kind, not just a
<DRM Literal>.
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.
The description
field specifies a brief description.
|
Clarifications
|
None.
|
Class diagram
|
Figure 6.140 —
DRM_Interface_Template
|
Inherited field elements
|
Field name
|
Range
|
Field data type
|
None |
|
|
|
Field elements
|
|
Associated to (one-way) (inherited) |
|
Associated to (one-way) |
|
Associated by (one-way) (inherited) |
|
Associated by (one-way) |
|
Associated with (two-way) (inherited) |
|
Associated with (two-way) |
|
Composed of (two-way) (inherited) |
|
Composed of (two-way) |
|
Composed of (two-way metadata) (inherited) |
|
Composed of (two-way metadata) |
|
Component of (two-way) (inherited) |
|
Component of (two-way) |
|
Constraints
|
|
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 3D Location Control Link>
aggregated by the <DRM LSR 3D Location> that
specifies the <DRM Vertex>’s location. Each
<DRM LSR 3D Location 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>.
|