Templates for the SEDRIS DRM

6 Abstract scripting language

6.1 Introduction

6.1.1 Topics

Table 6.1 lists the topics of this clause.

Table 6.1 — Topics

6 Abstract scripting language

6.1 Introduction

6.1.1 Topics

6.1.2 Description

6.2 Constructs

6.2.1 Overview

6.2.2 Available data types

6.2.2.1 General rules

6.2.2.2 String

6.2.2.3 Void

6.2.2.4 Enumerated

6.2.2.5 Boolean

6.2.2.6 Handle

6.2.2.7 Integer

6.2.2.8 Float

6.2.2.9 Record

6.2.2.9.1 Introduction

6.2.2.9.2 Fields

6.2.2.9.3 Fixed record

6.2.2.9.4 Variant record

6.2.3 Variables

6.2.4 Available operators

6.2.4.1 Arithmetic

6.2.4.2 Logical

6.2.4.3 Relational

6.2.4.4 Property_of

6.2.4.5 Assignment

6.2.5 Functions

6.2.6 Expressions

6.2.6.1 General rules

6.2.6.2 Arithmetic expressions

6.2.6.3 Relational expressions

6.2.6.4 Logical expressions

6.2.7 Statements

6.2.7.1 General rules

6.2.7.2 Assignment statements

6.2.7.3 Block statements

6.2.7.4 Function statements

6.2.7.5 Control statements

6.2.7.5.1 Overview

6.2.7.5.2 IF ELSE

6.2.7.5.3 WHILE DO

6.2.8 Exceptions

6.3 Embedded script functions

6.3.2 Overiview
6.3.2 AddCoordinate
6.3.3 AddFaceNormal
6.3.4 AddTextureUV
6.3.5 AddVertexNormal
6.3.6 ClourBinding
6.3.7 GetAbsoluteTimeInterval
6.3.8 GetAbstract
6.3.9 GetActiveLightValue
6.3.10 GetAdjacentFaceTablePresent
6.3.11 getAmbient
6.3.12 GetApplyToChildren
6.3.13 GetAspectRatio
6.3.14 GetBeginningFrame
6.3.15 GetBottom
6.3.16 GetBoundingVolume
6.3.17 GetCameraFar
6.3.18 GetCameraNear
6.3.19 GetCandelaValue
6.3.20 GetClourBinding
6.3.21 GetCMYColour
6.3.22 GetColourIndex
6.3.23 GetColourIntensityLevel
6.3.24 GetColumnCount
6.3.25 GetColumnIndex
6.3.26 GetConstantAttenuationFactor
6.3.27 GetCoordinatCount
6.3.28 GetCoordinate
6.3.29 GetCount
6.3.30 GetCredit
6.3.31 GetCylinderLength
6.3.32 GetDelay
6.3.33 GetDiffuse
6.3.34 GetDisplayStyle
6.3.35 getEdgeDirection
6.3.36 GetEmissive
6.3.37 GetEndingFrame
6.3.38 GetFaceDirection
6.3.39 GetFaceNormal
6.3.40 GetGain
6.3.41 GetGeometryRepresentation
6.3.42 GetHasPlane
6.3.43 GetHorizontalDropOffRate
6.3.44 GetHorizontalFieldOfView
6.3.45 GetHorizontalWidth
6.3.46 GetHorizontalWidth
6.3.47 GetHSVColour
6.3.48 GetImageDetailMapping
6.3.49 GetImageMappingMethod
6.3.50 GetImageProjectionType
6.3.51 GetImageWrapS
6.3.52 GetImageWrapT
6.3.53 GetIndexLOD
6.3.54 GetIntensityLevel
6.3.55 GetInvisibleBehind
6.3.56 GetLeft
6.3.57 GetLightDiameter
6.3.58 GetLightExtinguishingRange
6.3.59 GetLinearAttenuationFactor
6.3.60 GetLocal4x4
6.3.61 GetLODDataType
6.3.62 GetLowerPlaneAngularOffset
6.3.63 GetMajorAxisLength
6.3.64 GetMajorAxisRadius
6.3.65 GetMapScaleLOD
6.3.66 GetMaterialUsage
6.3.67 GetMaximumFadeBand
6.3.68 GetMaximumRange
6.3.69 GetMaximumVerticesPerFace
6.3.70 GetMeshFaceCount
6.3.71 GetMinimumColourIntensity
6.3.72 GetMinimumFadeBand
6.3.73 GetMinimumRange
6.3.74 GetMinorAxisLength
6.3.75 GetMinorAxisRadius
6.3.76 GetModelName
6.3.77 GetOrderingReason
6.3.78 GetOverrideInfiniteLights
6.3.79 GetOverridePositionalLights
6.3.80 GetParallelepipedDimensions
6.3.81 GetPeriod
6.3.82 GetPixelFillMethod
6.3.83 GetPlaneAngularOffset
6.3.84 GetPointLightDisplayType
6.3.85 GetPrimaryTableIndex
6.3.86 GetProjection
6.3.87 GetPropertySetIndex
6.3.88 GetPurpose
6.3.89 GetQuadraticAttenuationFactor
6.3.90 GetRadius
6.3.91 GetRandomAreaLight
6.3.92 GetRandomBeginningFrame
6.3.93 GetRegular
6.3.94 GetRelativeTimeInterval
6.3.95 GetRenderingGroup
6.3.96 GetRenderingPriority
6.3.97 GetRGBColour
6.3.98 GetRight
6.3.99 GetRotation
6.3.100 GetRowCount
6.3.101 GetRowIndex
6.3.102 GetScale
6.3.103 GetSeason
6.3.104 GetShadingMethod
6.3.105 GetShininess
6.3.106 GetSparse
6.3.107 GetSpatialIndexData
6.3.108 GetSpatialIndexSpacingUnit

6.3.109 GetSpatialResolutionLOD
6.3.110 GetSpecular
6.3.111 GetSpeed
6.3.112 GetSupplementalInformation
6.3.113 GetTableSize
6.3.114 GetTableUsage
6.3.115 GetTextureUV
6.3.116 GetTextureUVCount
6.3.117 GetTimeDataType
6.3.118 GetTimeOfDay
6.3.119 GetTimeSignificance
6.3.120 GetTop
6.3.121 GetTranslation
6.3.122 GetTranslucency
6.3.123 GetTransmittalName
6.3.124 GetUnit
6.3.125 GetUpperPlaneAngularOffset
6.3.126 GetUseFullIntensity
6.3.127 GetUseLeftRightBottomTop
6.3.128 GetVertexNormal
6.3.129 GetVertexNormalCount
6.3.130 GetVerticalDropOffRate
6.3.131 GetVerticalWidth
6.3.132 GetWorld3x3
6.3.133 ModifyCoordinate
6.3.134 ModifyFaceNormal
6.3.135 ModifyTextureUV
6.3.136 ModifyVertexNormal
6.3.137 RemoveCoordinate
6.3.138 RemoveFaceNormal
6.3.139 RemoveTextureUV
6.3.140 RemoveVertexNormal
6.3.141 SetAbsoluteTimeInterval
6.3.142 SetAbstract
6.3.143 SetActiveLightValue
6.3.144 SetAdjacentFaceTablePresent
6.3.145 SetAmbient
6.3.146 SetApplyToChildren
6.3.147 SetAspectRatio
6.3.148 SetBeginningFrame
6.3.149 SetBottom
6.3.150 SetBoundingVolume
6.3.151 SetCameraFar
6.3.152 SetCameraNear
6.3.153 SetCandelaValue
6.3.154 SetCMYColour
6.3.155 SetColourIndex
6.3.156 SetColourIntensityLevel
6.3.157 SetColumnCount
6.3.158 SetColumnIndex
6.3.159 SetConstantAttenuationFactor
6.3.160 SetCoordinate
6.3.161 SetCount
6.3.162 SetCredit
6.3.163 SetCylinderLength
6.3.164 SetDelay
6.3.165 SetDiffuse
6.3.166 SetDisplayStyle
6.3.167 SetEdgeDirection
6.3.168 SetEmissive
6.3.169 SetEndingFrame
6.3.170 SetFaceDirection
6.3.171 SetFaceNormal
6.3.172 SetGain
6.3.173 SetGeometryRepresentation
6.3.174 SetHasPlane
6.3.175 SetHorizontalDropOffRate
6.3.176 SetHorizontalFieldOfView
6.3.177 SetHorizontalWidth
6.3.178 SetHSVColour
6.3.179 SetImageDetailMapping
6.3.180 SetImageMappingMethod
6.3.181 SetImageProjectionType
6.3.182 SetImageWrapS
6.3.183 SetImageWrapT
6.3.184 SetIndexLODD
6.3.185 SetIntensityLevel
6.3.186 SetInvisibleBehind
6.3.187 SetLeft
6.3.188 SetLightDiameter
6.3.189 SetLightExtinguishingRange
6.3.190 SetLinearAttenuationFactor
6.3.191 SetLocal4x4
6.3.192 SetLODDataType
6.3.193 SetLowerPlaneAngularOffset
6.3.194 SetMajorAxisLength
6.3.195 SetMajorAxisRadius
6.3.196 SetMapScaleLOD
6.3.197 SetMaterialUsage
6.3.198 SetMaximumFadeBand
6.3.199 SetMaximumRange
6.3.200 SetMaximumVerticesPerFace
6.3.201 SetMeshFaceCount
6.3.202 SetMinimumColourIntensity
6.3.203 SetMinimumFadeBand
6.3.204 SetMinimumRange
6.3.205 SetMinorAxisLength
6.3.206 SetMinorAxisRadius
6.3.207 SetModelName
6.3.208 SetOrderingReason
6.3.209 SetOverrideInfiniteLights
6.3.210 SetOverridePositionalLights
6.3.211 SetParallelepipedDimensions
6.3.212 SetPeriod
6.3.213 SetPixelFillMethod
6.3.214 SetPlaneAngularOffset
6.3.215 SetPointLightDisplayType
6.3.216 SetPrimaryTableIndex
6.3.217 SetProjection
6.3.218 SetPropertySetIndex
6.3.219 SetPurpose
6.3.220 SetQuadraticAttenuationFactor
6.3.221 SetRadius
6.3.222 SetRandomAreaLight
6.3.223 SetRandomBeginningFrame
6.3.224 SetRegular
6.3.225 SetRelativeTimeInterval
6.3.226 SetRenderingGroup
6.3.227 SetRenderingPriority
6.3.228 SetRGBColour
6.3.229 SetRight
6.3.230 SetRotation
6.3.231 SetRowCount
6.3.232 SetRowIndex
6.3.233 SetScale
6.3.234 SetSeason
6.3.235 SetShadingMethod
6.3.236 SetShininess
6.3.237 SetSparse
6.3.238 SetSpatialIndexData
6.3.239 SetSpatialIndexSpacingUnit
6.3.240 SetSpatialResolutionLOD
6.3.241 SetSpecular
6.3.242 SetSpeed
6.3.243 SetSupplementalInformation
6.3.244 SetTableSize
6.3.245 SetTableUsage
6.3.246 SetTextureUV
6.3.247 SetTimeDataType
6.3.248 SetTimeOfDay
6.3.249 SetTimeSignificance
6.3.250 SetTop
6.3.251 SetTranslation
6.3.252 SetTranslucency
6.3.253 SetTransmittalName
6.3.254 SetUnit
6.3.255 SetUpperPlaneAngularOffset
6.3.256 SetUseFullIntensity
6.3.257 SetUseLeftRightBottomTop
6.3.258 SetVertexNormal
6.3.259 SetVerticalDropOffRate
6.3.260 SetVerticalWidth
6.3.261 SetWorld3x3
 

6.1.2 Description

The SEDRIS templates abstract scripting language is a simple abstract language that is used to specify the behaviour of SEDRIS templates. Such behaviours form an integral part of the definition of a SEDRIS template as described in 4.3.5 Abstract scirpting section. The SEDRIS templates abstract scripting language supports:

  1. basic data types,
  2. arithmetic, logical, and relational operators,
  3. predefined functions,
  4. expressions, and
  5. basic statements.

Each of these is described in this clause. A formal grammar for the SEDRIS templates abstract scripting language is specified in A Abstract scripting language grammar.

6.2 Constructs

6.2.1 Overview

The capabilities and syntax of the SEDRIS templates abstract scripting language are specified in this subclause. A script specified in the SEDRIS abstract scripting language consists of a list of statements. All such scripts shall be syntactically correct according the rules defined in this technical report.

6.2.2 Available data types

6.2.2.1 General rules

The following lists the rules for defining and using data types:

  1. Data types names consist of a sequence of alphanumeric characters in which each word in the data type name is capitalized and separated from other words by a single underscore character ("_"). All data type names shall begin with a letter.
  2. Values for data types contain only numeric values or value names in which all letters of the names are capitalized and words in the value are separated by a single underscore character ("_"). All value names shall begin with a letter.
  3. Data types that represent data types specified in ISO/IEC 18023-1 shall be constrained by the restrictions of those data types as specified in ISO/IEC 18023-1.
  4. Constructs identified as keywords shall not be used as data type, variable, or function names.

In this technical report, data type names are italicized when included in prose. Data type values are always specified in monospace fonts.

6.2.2.2 String

The String data types specifies a string consisting of a sequence of characters enclosed in double quote characters. For a double quote character to be included in the string, it shall be preceded by a backslash ("\") character. For a backslash character to be included in the string, it shall also be preceded by a backslash character.

EXAMPLE 1  A valid string containing only a single double quote character:  "\"".

EXAMPLE 2  A valid string containing only a single backslash character:  "\\".

EXAMPLE 3  An empty string:  "".

6.2.2.3 Void

The keyword Void indicates the absence of a value.

6.2.2.4 Enumerated

An enumerated data type is a named data type whose value set consists of a list of named values. The name of the enumerated data type shall consist of one or more words separated by underscores with the first letter of each word capitalized. The names of the values shall be specified entirely in capital letters.

The following is the structure of an enumerated data type declaration:

    enum <Data_Type_Name>:  <VALUE_NAME>, <VALUE_NAME>, ...;

enum is a keyword that indicates the start of an enumerated data type declaration. There shall be at least two values for an enumerated data type. The data type name may be used wherever a data type is to be specified.

EXAMPLE  An enumerated data type Traffic_Signal_State might be defined as:

                enum Traffic_Signal_State:  RED, AMBER, GREEN;

6.2.2.5 Boolean

The Boolean data type has two valid values:  TRUE and FALSE. This is equivalent to an enumerated data type with data type name Boolean and values TRUE and FALSE. The following specifies the Boolean data type as an enumerated data type:

EXAMPLE  enum Boolean:  TRUE, FALSE;

6.2.2.6 Handle

The Handle data type specifies an integer value that represents an object defined outside the scope of this technical report. An implementation that maintains a complex internal data structure may use variables of this data type to return "handles" to that internal data structure. The exact value of the handle is implementation-dependent. It is the responsibility of the impementation to maintain a correspondence between the handle value and the internal data structure. This allows the internal data structure to be optimized according to some implementation strategy. Access to the data in the internal data structure is through appropriately defined functions.

6.2.2.7 Integer

The Integer data type represents integers in the range [-2 147 483 647..2 147 483 647].

6.2.2.8 Float

The Float data type specifies a double-precision floating point number as specified in IEC 60559. Within scripts, Float data types are written using the forms specified in ISO/IEC 9899.

6.2.2.9 Record

6.2.2.9.1 Introduction

A record data type is a named data type whose value set consists of a list of fields each of which consists of a data type and a corresponding field name. The name of the record data type shall consist of one or more words separated by underscores with the first letter of each word capitalized. The names of the fields shall be specified in all lower case with words separated by underscores.

There are two types of record data types: fixed and variant. A fixed record data type always contains the same set of fields. A variant record data type contains a discriminant and a set of named field sets. The discriminant specifies which field set is to be used when accessing the data contained in the record. Each of these will be discussed separately below.

6.2.2.9.2 Fields

Each field in a record data type is specified as a data type followed by a field name. Field names have the same form as variable names. The following is the structure of a field:

    <Data_Type_Name> <field_name>

In a list of fields, each field is separated from adjacent fields by a comma:

    <field>, <field>, ...

There is no comma before the first field in the list nor after the last field in a list of fields.

6.2.2.9.3 Fixed record

The following is the structure of a fixed record data type declaration:

    record <Data_Type_Name>{ <field>, <field>, ... };

record is a keyword that indicates the start of a record data type declaration. There shall be at least one for a record data type. The data type name may be used wherever a data type is to be specified.

EXAMPLE  A fixed record data type Script_Polygon might be defined as:

                record ScriptPolygon{
            Float vtx[*],
            Float uv[*],
            Float face_normal,
            Float vertex_normal[*]
          };

6.2.2.9.4 Variant record

The following is the structure of a fixed record data type declaration:

    record <Data_Type_Name>(<discriminant_field>){
        (<DISCRIMINANT_VALUE>: <list_of_fields>),
        (<DISCRIMINANT_VALUE>: <list_of_fields>),
        ...
        (<DISCRIMINANT_VALUE>: <list_of_fields>)
    };

record is a keyword that indicates the start of a record data type declaration. There shall be at least one for a record data type. The data type name may be used wherever a data type is to be specified. The <discriminant_field> shall be a field of data type either Integer or an enumerated data type. There shall be one matching list of fields for each discriminant value allowed. It is an error for a discrriminant value to not have a corresponding list of fields.

EXAMPLE  A variant record data type Color_Model_Value might be defined as:

                  enum Color_Model: RGB, HSV, CMY;
 
                record Color_Model_Value(Color_Model color_model){
            (RGB: Float red, Float blue, Float green),
            (HSV: Float hue, Float saturation, Float value),
            (CMY: Float cyan, Float magenta, Float yellow)
         };

6.2.3 Variables

Non-array variable declarations have the following structure:

    <Data_Type_Name> <variable_name>;

<Data_Type_Name> represents the name of either a pre-defined data type (e.g., String) or the name of an enumerated data type.

<variable_name> represents the name of the variable being defined. A variable name consists of one or more lower case words with each separated by an underscore from adjacent words.

Array variable definitions have the following structure:

    <Data_Type_Name> <variable_name>[<MAX_INTEGER_VALUE> | *];

Only single-dimensioned arrays are allowed. The <MAX_INTEGER_VALUE> specifies the maximum length of the array. If the length of the array is unknown, an asterisk is used in place of <MAX_INTEGER_VALUE>.

A non-array variable is referenced by specifying <variable_name>. An array variable is referenced as follows:

    <variable_name>[<INTEGER_VALUE> | <integer_variable_name>]

The integer specified by <INTEGER_VALUE> or <integer_variable_name> shall be less than <MAX_INTEGER_VALUE>. An exception shall be generated, if the integer specified in the reference exceeds the maximum dimension of the array.

6.2.4 Available operators

6.2.4.1 Arithmetic

Table 6.2 specifies the available arithmetic operators.

Table 6.2 — Arithmetic operators

Operator

Type

Parameter
type

Example

Result of operator being applied

+

Unary

Numeric

+ a

The value of a is multiplied by +1.

+

Binary

Numeric

a + b

The values of a and b are added together.

-

Unary

Numeric

-a

The value of a is multiplied by -1.

-

Binary

Numeric

a - b

The value of b is subtracted from the value of a.

*

Binary

Numeric

a * b

The values of a and b are multiplied together.

/

Binary

Numeric

a / b

The value of a is divided by the value of b.

6.2.4.2 Logical

Table 6.3 specifies the available logical operators:

Table 6.3 — Logical operators

Operator

Type

Parameter
type

Example

Result of operator being applied

!

Unary

Boolean

!a

The value is NOT the value of a.

&

Binary

Boolean

a & b

The values of a and b are ANDed together.

|

Binary

Boolean

a | b

The values of a and b are ORed together.

6.2.4.3 Relational

Table 6.4 specifies the available relational operators:

Table 6.4 — Relational operators

Operator

Type

Parameter
type

Example

Result of operator being applied

=

Binary

Numeric

a = b

The value of a is compared to the value of b to determine if the values are equal.

Binary

Numeric

a ≠ b

The value of a is compared to the value of b to determine if the values are not equal.

>

Binary

Numeric

a > b

The value of a is compared to the value of b to determine if the value of a is greater than the value of b.

Binary

Numeric

a ≥ b

The value of a is compared to the value of b to determine if the value of a is greater than or equal to the value of b.

<

Binary

Numeric

a < b

The value of a is compared to the value of b to determine if the value of a is less than the value of b.

Binary

Numeric

a ≤ b

The value of a is compared to the value of b to determine if the value of a is less than or equal to the value of b.

6.2.4.4 Property_of

Table 6.5 specifies the available Property_of operator:

Table 6.5 — Property_of operator

Operator

Type

Parameter
type

Example

Result of operator being applied

.

Binary

Enumerated,
Identifier

a . b

The value of property a of object b is extracted.

6.2.4.5 Assignment

Table 6.6 specifies the available assignment operator:

Table 6.6 — Assignment operator

Operator

Type

Parameter
type

Example

Result of operator being applied

:=

Binary

Any but both
sides shall match

a := b

The value of b is assigned to be the value of a.

6.2.5 Functions

A function is a named script that performs a specified task and optionally returns a value. A function declaration is structured as follows:

    <Return_Data_Type_Name> <FunctionName>(Parameter_Data_Type_Name_0, ...);

<FunctionName> specifies name of the function. Function names consist of one or more words with each word capitalized but not separated from other words. A function can have zero or more parameters. When declaring a function, each parameter shall be specified by a data type name that specifies the required data type for that parameter. <Return_Data_Type_Name> specifies the data type of the return value of the function. If the function has no return value, <Return_Data_Type_Name> shall be specified as Void.

A function reference has the following structure:

    <FunctionName>(<parameter_value_0>, ...)

where <FunctionName> is the name of the function and <parameter_value_0> and subsequent parameter values are expressions that have the appropriate value for that data type.

6.2.6 Expressions

6.2.6.1 General rules

Expressions are combinations of operators and values that, when computed form a value appropriate to the type of expression. The types of values that can be used in an expression are:

  1. literal values,
  2. variables,
  3. function references, and
  4. expressions.

Expressions may be grouped by enclosing the groups in parentheses. Expressions within parentheses are evaluated before evaluating outer expressions of which the group is a part. Table 6.7 specifies the precedence of operator evaluation.

Table 6.7 — Expression evaluation precedence

Operator

Precedence

Result data type

.

1

Data type of the property.

(
)

2

Data type of expression within the parentheses.

*
/

3

Numeric.

+
-

4

Numeric.

relational

5

Boolean

!

6

Boolean

&
|

7

Boolean

:=

8

Data type of the expression on the right side of the assignment operator.

Within expressions, the order of evaluation of subexpressions of the same precedence is strictly right-to-left. That is, the rightmost expression is evaluated first. The result then forms the rightmost operand for the next portion of the subexpression.

Functions used in expressions shall not have a Void return value.

6.2.6.2 Arithmetic expressions

Arithmetic expressions are expressions in which the operators are arithmetic and the operands are each numeric. Arithmetic expressions may be combined to form a string of expressions. All arithmetic expressions evaluate to a numeric result.

EXAMPLE 1  a + b * c / d - e

The order of evaluation is dictated by the precedence of operators and right-to-left evaluation. The order of evaluation can be controlled by using parentheses to group subexpressions. The following will evaluate the same as the expression in Example 1:

EXAMPLE 2  (a + ((b * (c / d)) - e))

6.2.6.3 Relational expressions

Relational expressions are expressions that compare two values of the same data type to determine a relationship between them. Except for the "=" and "≠" operators, the values shall be numeric. The  "=" and "≠" operators may also be used to compare two Boolean values. All relational expressions evaluate to a Boolean value.

EXAMPLE  a > b

6.2.6.4 Logical expressions

Logical expressions are expressions that apply logical operations to one or two Boolean values. All logical expressions evaluate to a Boolean value.

EXAMPLE  a & b (will result in TRUE if both a and b are TRUE otherwise the value is FALSE)

6.2.7 Statements

6.2.7.1 General rules

There are four general types of statements in the SEDRIS Templates abstract scripting language:

  1. assignment,
  2. block,
  3. function, and
  4. control.

Each will be described in this subclause. A statement shall be terminated with a semicolon (";"). Execution flow is from top to bottom in the list of statements in a script unless modified by a control statement.

6.2.7.2 Assignment statements

An assignment statement evaluates an expression and assigns its value to a variable. An assignment statement has the following form:

    <variable_name> := <expression>;

6.2.7.3 Block statements

A block statement is used to group multiple statements together. A block statement has the following form:

    { <statement> ...};

A Block statement can be used wherever a statement is allowed. This allows multiple statements to be executed even though only a single statement is specified in the grammar.

6.2.7.4 Function statements

A function statement is used to invoke a function where the function does not return a value. A function statement has the following form:

    <Function Reference>;

NOTE  A function that returns a values is considered to be part of an expression. If a value is returned by a function referenced in a function statement, that value will be ignored.

6.2.7.5 Control statements

6.2.7.5.1 Overview

There are two types of control statement:  decision statements and looping statements. These statements alter the execution flow of a script.

6.2.7.5.2 IF ELSE

The IF ELSE decision statement allows a Boolean expression to specify which of two statements to execute. The structure of the IF ELSE decision statement has one of the two following forms:

    if (<Boolean Expression>) <StatementA> else <StatementB>;
    if (<Boolean Expression>) <StatementA>;

If <Boolean Expression> has value TRUE, <StatementA> is executed. If <Boolean Expression> has value FALSE, either <StatementB> is executed or execution flow falls to the next statement.

6.2.7.5.3 WHILE DO

The WHILE DO looping statement allows a Boolean expression to specify whether statement is to be executed. The WHILE DO statement has the following structure:

    while (<Boolean Expression>) do <Statement>;

When a WHILE DO statement is encountered during script execution, <Boolean Expression> is evaluated. If the value is TRUE, <Statement> is executed. Then <Boolean Expression> is evaluated again. <Statement> is executed while <Boolean Expression> has value TRUE. When <Boolean Expression> has value FALSE, execution control continues at the statement following the WHILE DO statement.

NOTE  Care should be taken to ensure that, at some point, <Boolean Expression> evaluates as FALSE to prevent the loop from executing forever.

6.2.8 Exceptions

Exceptions are reported whenever a script executes in error. Some exceptions are generic:

EXAMPLE  A variable is divided by another variable with value zero in an arithmetic expression.

Other exceptions are the result of errors in a function. In this case, each function definition shall explicitly state when exceptions are generated.

6.3 Embedded script functions

6.3.1 Overview

A library of script functions are provided that may be invoked as function references. Table 6.8 shows the form in which each library function is described.

Table 6.8 — Function description table

Property Description

Declaration

Display of the function declaration as specified in 6.2.5 Functions.

Semantics

A specification of the operation of the function.

Input parameters

Parameter name

Parameter data type

parameter_i

Data_Type_For_Parameter_i

Input/output parameters

Parameter name

Parameter data type

parameter_io

Data_Type_For_Parameter_io

Output parameters

Parameter name

Parameter data type

parameter_o

Data_Type_For_Parameter_o

Exceptions

A list of exception that may apply when if this function does not terminate successfully.

All rows of the table shall be populated. If a parameter of a certain access type is not used, the parameter shall be listed as "None" and no data type shall be specified.

6.3.2 AddCoordinate

Table 6.9 specifies the AddCoordinate function.

Table 6.9 — AddCoordinate

Property Description

Declaration

VOID AddCoordinate (Handle obj, Integer index, Float x, Float y, Float z) .

Semantics

Set the Euclidean 3D coordinate values.

Input parameters

Parameter name

Parameter data type

obj
index
x
y
z

Handle
Integer
Float
Float
Float

Input/output parameters

Parameter name

Parameter data type

None

None

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 

6.3.3 AddFaceNormal
6.3.4 AddTextureUV
6.3.5 AddVertexNormal
6.3.6 ClourBinding
6.3.7 GetAbsoluteTimeInterval
6.3.8 GetAbstract
6.3.9 GetActiveLightValue
6.3.10 GetAdjacentFaceTablePresent
6.3.11 getAmbient
6.3.12 GetApplyToChildren
6.3.13 GetAspectRatio

Table 6.20 specifies the GetAspectRatio function.

Table 6.20 — GetAspectRatio

Property Description

Declaration

Float GetAspectRatio(Handle obj)

Semantics

Get the width of the frustum divided by its height. This value is used for perspective viewing if th use flag of the use_left_right_bottom_top function is FALSE.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.14 GetBeginningFrame
6.3.15 GetBottom

Table 6.22 specifies the GetBottom function.

Table 6.22 — GetBottom

Property Description

Declaration

Float GetBottom(Handle obj)

Semantics

Get the Y coordinate of the lower bottom corner of the rectangle in the near clipping plane.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.16 GetBoundingVolume
6.3.17 GetCameraFar

Table 6.24 specifies the GetCameraFar function.

Table 6.24 — GetCameraFar

Property Description

Declaration

Float GetCameraFar(Handle obj)

Semantics

Get the distance from camera position to far clipping plane, in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.18 GetCameraNear

Table 6.25 specifies the GetCameraNear function.

Table 6.25 — GetCameraNear

Property Description

Declaration

Float GetCameraNear(Handle obj)

Semantics

Get the distance from camera position to near clipping plane, in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.19 GetCandelaValue
6.3.20 GetClourBinding
6.3.21 GetCMYColour
6.3.22 GetColourIndex
6.3.23 GetColourIntensityLevel
6.3.24 GetColumnCount
6.3.25 GetColumnIndex
6.3.26 GetConstantAttenuationFactor
6.3.27 GetCoordinatCount
6.3.28 GetCoordinate
6.3.29 GetCount
6.3.30 GetCredit
6.3.31 GetCylinderLength
6.3.32 GetDelay
6.3.33 GetDiffuse
6.3.34 GetDisplayStyle
6.3.35 GetEdgeDirection

Table 6.42 specifies the GetEdgeDirection function.

Table 6.42— GetEdgeDirection

Property Description

Declaration

Edge_Direction GetEdgeDirection(Handle obj)

Semantics

Get whether the target edge direction is forwards or backwards.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.36 GetEmissive
6.3.37 GetEndingFrame
6.3.38 GetFaceDirection

Table 6.45 specifies the GetFaceDirection function.

Table 6.45 — GetFaceDirection

Property Description

Declaration

Face_Direction GetFaceDirection(Handle obj) See comment in Table 6.17.

Semantics

Get whether the given topological face is the front or the back.

Input parameters

Parameter name

Parameter data type

front

Boolean

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.39 GetFaceNormal
6.3.40 GetGain
6.3.41 GetGeometryRepresentation
6.3.42 GetHasPlane
6.3.43 GetHorizontalDropOffRate
6.3.44 GetHorizontalFieldOfView

Table 6.52 specifies the GetHorizontalFieldOfView function.

Table 6.52 — GetHorizontalFieldOfView

Property Description

Declaration

Float GetHorizontalFieldOfView(Handle obj)

Semantics

Get the angle, in radians, of the horizontal field of view. This value is used for perspective viewing if the use flag of the use_left_right_bottom_top function is FALSE, in the near clipping plane.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.45 GetHorizontalWidth
6.3.46 GetHorizontalWidth
6.3.47 GetHSVColour
6.3.48 GetImageDetailMapping
6.3.49 GetImageMappingMethod
6.3.50 GetImageProjectionType
6.3.51 GetImageWrapS
6.3.52 GetImageWrapT
6.3.53 GetIndexLOD
6.3.54 GetIntensityLevel
6.3.55 GetInvisibleBehind
6.3.56 GetLeft

Table 6.63 specifies the GetLeft function.

Table 6.63 — GetLeft

Property Description

Declaration

Float GetLeft(Handle obj)

Semantics

Get the X coordinate of the lower left corner of the rectangle in the near clipping plane.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.57 GetLightDiameter
6.3.58 GetLightExtinguishingRange
6.3.59 GetLinearAttenuationFactor
6.3.60 GetLocal4x4
6.3.61 GetLODDataType
6.3.62 GetLowerPlaneAngularOffset
6.3.63 GetMajorAxisLength

Table 6.70 specifies the GetMajorAxisLength function.

Table 6.70 — GetMajorAxisLength

Property Description

Declaration

Float GetMajorAxisLength(Handle obj)

Semantics

Get the major_axis_length of a ellipse.

The major_axis_length field is specified in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.64 GetMajorAxisRadius

Table 6.71 specifies the GetMajorAxisRadius function.

Table 6.71 — GetMajorAxisRadius

Property Description

Declaration

Float GetMajorAxisRadius(Handle obj)

Semantics

Get the radius of the major axes that specify an elliptical cylinder volume relative

to the location of the volume centre. The minor_axis_radius field is specified in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.65 GetMapScaleLOD
6.3.66 GetMaterialUsage
6.3.67 GetMaximumFadeBand
6.3.68 GetMaximumRange
6.3.69 GetMaximumVerticesPerFace

Table 6.76 specifies the GetMaximumVerticesPerFace function.

Table 6.76 — GetMaximumVerticesPerFace

Property Description

Declaration

Integer GetMaximumVerticesPerFace(Handle obj)

Semantics

Get the maximum number of vertices in any one face element.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.70 GetMeshFaceCount

Table 6.77 specifies the GetMeshFaceCount function.

Table 6.77 — GetMeshFaceCount

Property Description

Declaration

Integer GetMeshFaceCount(Handle obj)

Semantics

Get the total number of mesh faces in finite element mesh.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.71 GetMinimumColourIntensity
6.3.72 GetMinimumFadeBand
6.3.73 GetMinimumRange
6.3.74 GetMinorAxisLength

Table 6.81 specifies the GetMinorAxisLength function.

Table 6.81 — GetMinorAxisLength

Property Description

Declaration

Float GetMinorAxisLength(Handle obj)

Semantics

Get the minor_axis_length field of an ellipse.

The minor_axis_length field is specified in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.75 GetMinorAxisRadius

Table 6.82 specifies the GetMinorAxisRadius function.

Table 6.82 — GetMinorAxisRadius

Property Description

Declaration

Float GetMinorAxisRadius(Handle obj)

Semantics

Get the radius of the minor axes that specify an elliptical cylinder volume relative

to the location of the volume centre. The minor_axis_radius field is specified in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj 

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.76 GetModelName
6.3.77 GetOrderingReason
6.3.78 GetOverrideInfiniteLights
6.3.79 GetOverridePositionalLights
6.3.80 GetParallelepipedDimensions

Table 6.87 specifies the GetParallelepipedDimensions funciton.

Table 6.87 — GetParallelepipedDimensions

Property Description

Declaration

Vector GetParallelepipedDimensions(Handle obj)

Semantics

Get the length of each of the edges of a parallelepiped volume relative to the location of the volume centre.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.81 GetPeriod
6.3.82 GetPixelFillMethod
6.3.83 GetPlaneAngularOffset
6.3.84 GetPointLightDisplayType
6.3.85 GetPrimaryTableIndex
6.3.86 GetProjection

Table 6.93 specifies the GetProjection function.

Table 6.93 — GetProjection

Property Description

Declaration

Camera_Projection_Type GetProjection(Handle obj)

Semantics

Get the type of projection. See comments in Table 6.36.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.87 GetPropertySetIndex
6.3.88 GetPurpose
6.3.89 GetQuadraticAttenuationFactor
6.3.90 GetRadius

Table 6.97 specifies the GetRadius function.

Table 6.97 — GetRadius

Property Description

Declaration

Float GetRadius(Handle obj)

Semantics

Get the radius of a spherical volume relative to the location of the volume centre.

The radius field is in metres.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.91 GetRandomAreaLight
6.3.92 GetRandomBeginningFrame
6.3.93 GetRegular
6.3.94 GetRelativeTimeInterval
6.3.95 GetRenderingGroup
6.3.96 GetRenderingPriority
6.3.97 GetRGBColour
6.3.98 GetRight

Table 6.105 specifies the GetRight function.

Table 6.105 — GetRight

Property Description

Declaration

Float GetRight(Handle obj)

Semantics

Get the X coordinate of the upper right corner of the rectangle in the near clipping plane.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.99 GetRotation
6.3.100 GetRowCount
6.3.101 GetRowIndex
6.3.102 GetScale
6.3.103 GetSeason
6.3.104 GetShadingMethod
6.3.105 GetShininess
6.3.106 GetSparse
6.3.107 GetSpatialIndexData
6.3.108 GetSpatialIndexSpacingUnit
6.3.109 GetSpatialResolutionLOD
6.3.110 GetSpecular
6.3.111 GetSpeed
6.3.112 GetSupplementalInformation
6.3.113 GetTableSize
6.3.114 GetTableUsage
6.3.115 GetTextureUV

Table 6.122 specifies the GetTextureUV function.

Table 6.122 — GetTextureUV

Property Description

Declaration

Float[] GetTextureUV(Handle obj, Integer index)

Semantics

Get the value of the specified texture coordinate.

Input parameters

Parameter name

Parameter data type

index

Integer

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

u, v

Float

Exceptions

 


6.3.116 GetTextureUVCount
6.3.117 GetTimeDataType
6.3.118 GetTimeOfDay
6.3.119 GetTimeSignificance
6.3.120 GetTop

Table 6.127 specifies the GetTop function.

Table 6.127 — GetTop

Property Description

Declaration

Float GetTop(Handle obj)

Semantics

Get the Y coordinate of the upper right corner of the rectanglein the near clipping plane.

Input parameters

Parameter name

Parameter data type

None

None

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.121 GetTranslation
6.3.122 GetTranslucency
6.3.123 GetTransmittalName
6.3.124 GetUnit
6.3.125 GetUpperPlaneAngularOffset
6.3.126 GetUseFullIntensity
6.3.127 GetUseLeftRightBottomTop
6.3.128 GetVertexNormal
6.3.129 GetVertexNormalCount
6.3.130 GetVerticalDropOffRate
6.3.131 GetVerticalWidth
6.3.132 GetWorld3x3
6.3.133 ModifyCoordinate
6.3.134 ModifyFaceNormal
6.3.135 ModifyTextureUV
6.3.136 ModifyVertexNormal
6.3.137 RemoveCoordinate
6.3.138 RemoveFaceNormal
6.3.139 RemoveTextureUV
6.3.140 RemoveVertexNormal
6.3.141 SetAbsoluteTimeInterval
6.3.142 SetAbstract
6.3.143 SetActiveLightValue
6.3.144 SetAdjacentFaceTablePresent

Table 6.151 specifies the SetAdjacentFaceTablePresent function.

Table 6.151 — SetAdjacentFaceTablePresent

Property Description

Declaration

VOID SetAdjacentFaceTablePresent(Handle obj, Boolean present)

Semantics

Specify whether an adjacent face table is being provided.

Input parameters

Parameter name

Parameter data type

present

Boolean

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.145 SetAmbient
6.3.146 SetApplyToChildren

Table 6.153 specifies the SetApplyToChildren function.

Table 6.153 — SetApplyToChildren

Property Description

Declaration

VOID SetApplyToChildren(Handle obj, Boolen apply)

Semantics

Provide mechanism for limiting the scope of the light source.

Input parameters

Parameter name

Parameter data type

value

Boolean

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.147 SetAspectRatio

Table 6.154 specifies the SetAspectRatio function.

Table 6.154 — SetAspectRatio

Property Description

Declaration

VOID SetAspectRatio(Handle obj, Float width)

Semantics

Specify the width of the frustum divided by its height. This value is used for perspective viewing if th use flag of the use_left_right_bottom_top function is FALSE.

Input parameters

Parameter name

Parameter data type

width

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.148 SetBeginningFrame
6.3.149 SetBottom

Table 6.156 specifies the SetBottom function.

Table 6.156 — SetBottom

Property Description

Declaration

VOID SetBottom(Handle obj, Float y)

Semantics

Specify the Y coordinate of the lower left corner of the rectanglein the near clipping plane.

Input parameters

Parameter name

Parameter data type

y

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.150 SetBoundingVolume
6.3.151 SetCameraFar

Table 6.158 specifies the SetCameraFar function.

Table 6.158 — SetCameraFar

Property Description

Declaration

VOID SetCameraFar(Handle obj, Float value)

Semantics

Specify the distance from camera position to far clipping plane, in metres.

Input parameters

Parameter name

Parameter data type

value

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.152 SetCameraNear

Table 6.159 specifies the SetCameraNear function.

Table 6.159 — SetCameraNear

Property Description

Declaration

VOID SetCameraNear(Handle obj, Float value)

Semantics

Specify the distance from camera position to near clipping plane, in metres.

Input parameters

Parameter name

Parameter data type

value

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.153 SetCandelaValue
6.3.154 SetCMYColour
6.3.155 SetColourIndex
6.3.156 SetColourIntensityLevel
6.3.157 SetColumnCount
6.3.158 SetColumnIndex
6.3.159 SetConstantAttenuationFactor
6.3.160 SetCoordinate
6.3.161 SetCount
6.3.162 SetCredit
6.3.163 SetCylinderLength
6.3.164 SetDelay
6.3.165 SetDiffuse
6.3.166 SetDisplayStyle
6.3.167 SetEdgeDirection

Table 6.174 specifies the SetEdgeDirection function.

Table 6.174 — SetEdgeDirection

Property Description

Declaration

VOID SetEdgeDirection(Handle obj, Edge_Direction direction)

Semantics

Specify whether the target edge should be traversed forwards (from start node to end node) or backwards (in the opposite direction).

Input parameters

Parameter name

Parameter data type

direction

Edge_Direction

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.168 SetEmissive
6.3.169 SetEndingFrame
6.3.170 SetFaceDirection

Table 6.17 specifies the SetFaceDirection function.

Table 6.17 — SetFaceDirection

Property Description

Declaration

VOID SetFaceDirection(Handle obj, Face_Direction direction)

Semantics

Specify whether the given topological face is the front or the back.

Input parameters

Parameter name

Parameter data type

direction

Face_Direction

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.171 SetFaceNormal
6.3.172 SetGain
6.3.173 SetGeometryRepresentation
6.3.174 SetHasPlane
6.3.175 SetHorizontalDropOffRate
6.3.176 SetHorizontalFieldOfView

Table 6.183 specifies the SetHorizontalFieldOfView function.

Table 6.183 — SetHorizontalFieldOfView

Property Description

Declaration

VOID SetHorizontalFieldOfView(Handle obj, Float angle)

Semantics

Specify the angle, in radians, of the horizontal field of view. This value is used for perspective viewing if the use flag of the use_left_right_bottom_top function is FALSE, in the near clipping plane.

Input parameters

Parameter name

Parameter data type

angel

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.177 SetHorizontalWidth
6.3.178 SetHSVColour
6.3.179 SetImageDetailMapping
6.3.180 SetImageMappingMethod
6.3.181 SetImageProjectionType
6.3.182 SetImageWrapS
6.3.183 SetImageWrapT
6.3.184 SetIndexLODD
6.3.185 SetIntensityLevel
6.3.186 SetInvisibleBehind
6.3.187 SetLeft

Table 6.194 specifies the SetLeft function.

Table 6.194 — SetLeft

Property Description

Declaration

Void SetLeft(Handle obj, Float x)

Semantics

Specify the X coordinate of the lower left corner of the rectangle

in the near clipping plane.

Input parameters

Parameter name

Parameter data type

x

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.188 SetLightDiameter
6.3.189 SetLightExtinguishingRange
6.3.190 SetLinearAttenuationFactor
6.3.191 SetLocal4x4
6.3.192 SetLODDataType
6.3.193 SetLowerPlaneAngularOffset
6.3.194 SetMajorAxisLength

Table 6.201 specifies the SetMajorAxisLength function.

Table 6.201 — SetMajorAxisLength

Property Description

Declaration

Void set_major_axis_length(Handle obj, Float length)

Semantics

Set the major_axis_length of a ellipse.

The major_axis_length field is specified in metres.

Input parameters

Parameter name

Parameter data type

length

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.195 SetMajorAxisRadius

Table 6.202 specifies the SetMajorAxisRadius function.

Table 6.202 — SetMajorAxisRadius

Property Description

Declaration

VOID SetMajorAxisRadius(Handle obj, Float radius)

Semantics

Set the radius of the major axes that specify an elliptical cylinder volume relative

to the location of the volume centre. The minor_axis_radius field is specified in metres.

Input parameters

Parameter name

Parameter data type

radius

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.196 SetMapScaleLOD
6.3.197 SetMaterialUsage
6.3.198 SetMaximumFadeBand
6.3.199 SetMaximumRange
6.3.200 SetMaximumVerticesPerFace

Table 6.207 specifies the SetMaximumVerticesPerFace function.

Table 6.207 — SetMaximumVerticesPerFace

Property Description

Declaration

VOID SetMaximumVerticesPerFace(Handle obj, Integer count)

Semantics

Specify the maximum number of vertices in any one face element.

Input parameters

Parameter name

Parameter data type

count

Integer

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.201 SetMeshFaceCount

Table 6.208 specifies the SetMeshFaceCount function.

Table 6.208 — SetMeshFaceCount

Property Description

Declaration

VOID SetMeshFaceCount(Handle obj, Integer  count)

Semantics

Specify the total number of mesh faces in a finite element mesh.

Input parameters

Parameter name

Parameter data type

count

Integer

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.202 SetMinimumColourIntensity
6.3.203 SetMinimumFadeBand
6.3.204 SetMinimumRange
6.3.205 SetMinorAxisLength

Table 6.212 specifies the SetMinorAxisLength function.

Table 6.212 — SetMinorAxisLength

Property Description

Declaration

Void SetMinorAxisLength(Handle obj, Float length)

Semantics

Set the minor_axis_length field of an ellipse.

The minor_axis_length field is specified in metres.

Input parameters

Parameter name

Parameter data type

length

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.206 SetMinorAxisRadius

Table 6.213 specifies the SetMinorAxisRadius function.

Table 6.213 — SetMinorAxisRadius

Property Description

Declaration

Void SetMinorAxisRadius(Handle obj, Float radius)

Semantics

Set the radius of the minor axes that specify an elliptical cylinder volume relative

to the location of the volume centre. The minor_axis_radius field is specified in metres.

Input parameters

Parameter name

Parameter data type

radius

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.207 SetModelName
6.3.208 SetOrderingReason
6.3.209 SetOverrideInfiniteLights
6.3.210 SetOverridePositionalLights
6.3.211 SetParallelepipedDimensions

Table 6.218 specifies the SetParallelepipedDimensions function.

Table 6.218 — SetParallelepipedDimensions

Property Description

Declaration

Void SetParallelepipedDimensions(Handle obj, Float width, Float depth, Float height)

Semantics

Specify the length of each of the edges of a parallelepiped volume relative to the location of the volume centre.

Input parameters

Parameter name

Parameter data type

width

depth

height

Float

Float

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.212 SetPeriod
6.3.213 SetPixelFillMethod
6.3.214 SetPlaneAngularOffset
6.3.215 SetPointLightDisplayType
6.3.216 SetPrimaryTableIndex
6.3.217 SetProjection

Table 6.224 specifies the SetProjection function.

Table 6.224 — SetProjection

Property Description

Declaration

VOID SetProjection(Handle obj, Camera_Projection_Type projection_type)

Semantics

Specifies the type of projection. NOTE:  ORTHOGRAPHIC is not a perspective projection but is instead a parallel projection in which the projectors are perpendicular to the reference plane.

Input parameters

Parameter name

Parameter data type

projection_type

Camera_Projection_Type

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.218 SetPropertySetIndex
6.3.219 SetPurpose
6.3.220 SetQuadraticAttenuationFactor
6.3.221 SetRadius

Table 6.228 specifies the SetRadius function.

Table 6.228 — SetRadius

Property Description

Declaration

Void SetRadius(Handle obj, Float radius)

Semantics

Specify the radius of a spherical volume relative to the location of the volume centre.

The radius field is in metres.

Input parameters

Parameter name

Parameter data type

radius

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.222 SetRandomAreaLight
6.3.223 SetRandomBeginningFrame
6.3.224 SetRegular
6.3.225 SetRelativeTimeInterval
6.3.226 SetRenderingGroup
6.3.227 SetRenderingPriority
6.3.228 SetRGBColour
6.3.229 SetRight

Table 6.236 specifies the SetRight function.

Table 6.236 — SetRight

Property Description

Declaration

Void SetRight(Handle obj, Float x)

Semantics

Specify the X coordinate of the upper right corner of the rectangle in the near clipping plane.

Input parameters

Parameter name

Parameter data type

x

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.230 SetRotation
6.3.231 SetRowCount
6.3.232 SetRowIndex
6.3.233 SetScale
6.3.234 SetSeason
6.3.235 SetShadingMethod
6.3.236 SetShininess
6.3.237 SetSparse
6.3.238 SetSpatialIndexData
6.3.239 SetSpatialIndexSpacingUnit
6.3.240 SetSpatialResolutionLOD
6.3.241 SetSpecular
6.3.242 SetSpeed
6.3.243 SetSupplementalInformation
6.3.244 SetTableSize
6.3.245 SetTableUsage
6.3.246 SetTextureUV

Table 6.253 specifies the SetTextureUV function.

Table 6.253 — SetTextureUV

Property Description

Declaration

VOID SetTextureUV(Handle obj, Float u, Float v)

Semantics

Set the specified texture coordinate.

Input parameters

Parameter name

Parameter data type

u
V

Float
Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.247 SetTimeDataType
6.3.248 SetTimeOfDay
6.3.249 SetTimeSignificance
6.3.250 SetTop

Table 6.257 specifies the SetTop function.

Table 6.257 — SetTop

Property Description

Declaration

Void SetTop(Handle obj, Float y)

Semantics

Specify the Y coordinate of the upper right corner of the rectangle in the near clipping plane.

Input parameters

Parameter name

Parameter data type

y

Float

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.251 SetTranslation
6.3.252 SetTranslucency
6.3.253 SetTransmittalName
6.3.254 SetUnit
6.3.255 SetUpperPlaneAngularOffset
6.3.256 SetUseFullIntensity
6.3.257 SetUseLeftRightBottomTop

Table 6.264 specifies the SetUseLeftRightBottomTop function.

Table 6.264 — SetUseLeftRightBottomTop

Property Description

Declaration

Void SetUseLeftRightBottomTop(Handle obj, Boolean use)

Semantics

If the value of use parameter is TRUE, use the left, right, bottom, and top functions.

These functions are always used for orthographic viewing. but perspective viewing can either use these functions or the field_of_view and aspect_ratio functions.

Input parameters

Parameter name

Parameter data type

use

Boolean

Input/output parameters

Parameter name

Parameter data type

obj

Handle

Output parameters

Parameter name

Parameter data type

None

None

Exceptions

 


6.3.258 SetVertexNormal
6.3.259 SetVerticalDropOffRate
6.3.260 SetVerticalWidth
6.3.261 SetWorld3x3
 

http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_TR_24788_Ed1.html