Property
|
Description
|
Class
|
|
Superclass
|
|
Subclass
|
|
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.
|
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 metadata) (inherited) |
|
Composed of (two-way metadata) |
|
Component of (two-way) (inherited) |
|
Component of (two-way) |
|
Constraints
|
|
Clarifications
|
|
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>.
|