The SEDRIS Data Representation Model
APPENDIX A - Classes Variable |
---|
An instance of this DRM class is an <Expression> instance that specifies a variable value used in conjunction with an <Interface Template> instance to exert external influence on one or more <Control Link> instances, either directly or indirectly.
See the examples for the <CMY Colour Control Link> class and the <Colour Index Control Link> class.
The following is an example of how a name on a <Variable> instance is used.
Consider a <Model> instance representing a motorcycle in a database within which polygons have infrared values attached to them. Since many portions of the surfaces being represented by <Polygon> instances in a transmittal have similar material properties, the data provider in this example has created a <Property Table> instance in which the infrared values are stored.
The <Polygon> instances of the motorcycle reference these elements through a <Property Table Reference> instance. A <Property Table Reference Control Link> instance is used for those <Polygon> instances that have heat-producing capability (for instance, the exhaust pipes), so that the index into the infrared table can be changed to other values as the exhaust pipes heat up. More than one <Polygon> instance will contain the same ID. The consumer shall be able to identify the <Polygon> instances (through the <Property Table Reference Control Link> instance and <Interface Template> instance) by this ID so that during consumption these <Polygon> instances can be switched to be heat-producing.
Consider a data provider with a polygonal representation of a truck in which the polygons reference table-driven textures, i.e., in which the texture coordinates used by the texture-mapped polygons are stored in tables such that the index into the table is determined at run-time.
The data provider chooses to represent the truck in a transmittal with a <Model> instance M having a <Geometry Model> component. Consider a triangular polygon within the truck representation where the triangle is represented by a <Polygon> instance P in the transmittal. P has three <Vertex> components V1, V2, and V3 and one <Image Mapping Function> component, where each Vi has a <Texture Coordinate> component Ti. Since a table-driven texture is being represented, the s and t field values of each Ti are determined by references into a table of texture coordinate values. This is done as follows.
The table supplying the texture coordinate values is represented by a <Property Table> instance C which is specified as a component of the <Data Table Library> instance of the transmittal. Each Ti has a <Texture Coordinate Control Link> component which determines the s value of Ti with a <Property Table Reference> component that associates to C. The t value of Ti is determined similarly.
The data provider wishes each of the indexes into C to vary at run-time, so it is necessary for the index_on_axis field of each <Property Table Reference> component to be determined at run-time. Consequently, each <Property Table Reference> component in this example has a <Property Table Reference Control Link> component specifying a <Variable> component to determine the index_on_axis field value being controlled. Each such <Variable> instance is associated with the <Interface Template> component of M so that each <Variable> instance can be supplied with an appropriate value whenever M is instantiated.
So that consumers can control what value is being plugged in, depending on how it is identified. See examples for how this is used and why it is needed.
SE_String | name; | 1 |
---|---|---|
SE_Property_Code | meaning; | 2 |
EDCS_Unit_Code | value_unit; | 3 |
EDCS_Unit_Scale_Code | value_scale; | 4 |
EDCS_Attribute_Value_Type | value_type; | 5 |
SE_String | description; | 6 |
The name field specifies the name of the <Variable> instance.
The meaning field specifies the quantity represented by the <Variable> instance.
The value_unit field specifies the unit of measurement of the quantity represented by the <Variable> instance.
The value_scale field specifies the scale applicable to value_unit.
The value_type field specifies the storage type of the <Variable> instance.
The description field specifies a meaningful explanation of the purpose of the <Variable> instance.
|