The SEDRIS Data Representation Model
APPENDIX A - Classes Interface Template |
---|
An instance of this DRM class is always a component of a <Model> instance or <Environment Root> instance. The scope of that <Model> instance or <Environment Root> instance 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 <Variable> instances within that scope, thus allowing manipulation of the affected <Control Link> instances' targets. These <Variable> instances are associated with the <Interface Template> instance in an ordered list. Each is also aggregated by at least one <Control Link> instance in the given scope:
For a <Model> instance that is instanced by some DRM object MI (either a <Feature Model Instance> instance or a <Geometry Model Instance> instance), values are specified for each of the <Variable> instances associated with the <Model> instance's <Interface Template> component.
Each such value is specified by an <Expression> instance that is aggregated by MI. The <Model Instance Template Index> link object lying between the <Expression> instance and MI specifies the particular <Variable> instance being set by specifying its index within the ordered list of the <Model> instance's <Interface Template> component.
NOTE The <Expression> instance may be a <Variable> instance in the instancing scope or a <Function> instance of some kind, not just a <Literal> instance.
For an <Environment Root> instance, an <Interface Template> component provides a means for environmental <Variable> instances to be accessed by the user such as a <Variable> instance for EAC_WIND_SPEED.
Consider a <Model> instance T representing a tank that is
is comprised of separate tank body, turret, and cannon submodels, each
instantiated by T as depicted in
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 <Rotation> instances at appropriate points in their hierarchies. Each of these <Rotation> instances has a <Rotation Control Link> component, which in turn has a <Variable> component that specifies the current rotation. The values supplied for these <Variable> instances are adjusted from outside the submodels that contain them. Consequently, the <Variable> instances in each submodel are associated with its submodel's <Interface Template> component.
However, the turret and cannon rotations are controlled from outside the entire tank <Model> instance T. Therefore, it is possible to set rotation values using T's own <Interface Template> component, so T contains a turret rotation <Variable> instance and a cannon elevation <Variable> instance. These <Variable> instances are associated with T's own <Interface Template> component. Each of the two <Variable> instances is also aggregated by the <Geometry Model Instance> instance that instances the submodel to which they relate.
Finally, it is necessary to tie the <Variable> instances in T to the equivalent <Variable> instances in each of the submodels. This is done using the <Model Instance Template Index> link object for each tank <Variable> instance. The <Model Instance Template Index> link object associated with T's turret rotation <Variable> instance references the equivalent <Variable> instance's entry in the turret <Model> instance's <Interface Template> component. Similarly, the <Model Instance Template Index> link object associated with T's cannon elevation <Variable> instance references the equivalent <Variable> instance's entry in the cannon <Model> instance's <Interface Template> component.
Consequently, T's <Interface Template> component allows the turret rotation and cannon elevation to be set from outside T. The values set in T themselves set values in the <Variable> instances within the turret and cannon submodels, thereby rotating the turret and elevating the cannon as required.
Consider a building <Model> instance that may be instanced on terrain polygons that are at various different orientations. Each building wall meets the terrain, leaving no gaps. This means that the lengths of the building's walls are adjusted by different amounts in each instance to match the slope of the ground.
The location of each <Vertex> component of a <Polygon> instance can be adjusted by using an <LSR 3D Location Control Link> instance aggregated by the <LSR 3D Location> instance that specifies the <Vertex> instance's location. Each <LSR 3D Location Control Link> instance has a <Variable> component that specifies the new location value. These <Variable> instances are set separately for each instance to match the terrain upon which the building is positioned. The <Variable> instances are set from outside the building <Model> instance so all of these <Variable> instances in the building <Model> instance are associated with the <Model> instance's <Interface Template> component.
When the building is instanced, using a <Geometry Model Instance> instance GMI, the <Variable> instances' values can be set for GMI using <Expression> components of GMI. When the terrain on which the GMI stands is known and fixed, these <Expression> instances can be <Literal> instances. Each <Literal> instance is related to the <Variable> instance for which it is specifying a value by the associated <Model Instance Template Index> link object that references the <Variable> instance via the building <Model> instance's <Interface Template> component.
No FAQs supplied.
SE_String | description; | (notes) |
---|
The description field specifies a brief description.
|