There are two types of domain information:
The specification of a domain consists of two parts and .
The first part of the domain entry is the name of the element, for which the domain is. Elements/names that can be set for the domains are listed in table 5 on page .
Also listed there are the standard domains of the elements. Of the listed standard domains the scalar (sub-)domains can be changed, the number of scalar subdomains of a domain, however, should not be changed (if not specified otherwise). So if the standard domain of an element is for scalars values (e. g. ), for this element never a vector domain should be set. On the other hand, if the standard domain of an element is for vectors with elements, for this element only domains should be set, which are for vectors with elements. In this way, for example, properties can be always interpreted in the same way. For elements (e. g. Properties), which are not listed in table 5, the domains can of course be set freely.
The second part of the domain entry is the domain to apply to the element . A list of the possible domains is given in table 6 on page .
Values outside of their domain are rounded to values in the domain. The rounded value of a (scalar) number, is the value with the minimum distance to the not rounded value. If there are several of them, the smallest value of them is taken, as the rounded value.
Rounding of vectors is done with their distance. The distance between two vectors is the sum of the distances of their elements. The rounded vector of a domain is the vector in the domain with the smallest distance from the unrounded vector. If several vectors have a minimum distance from the unrounded vector, the rounded vector is the vector, whose first elements have a minimal distance from the unrounded vector. Where , starting from the number of elements in the unrounded vector, is reduced by one till a vector is found or 1 is reached. If even then more vectors remain, the rounded vector is the vector, whose 'th element is less than the 'th element of the other remaining vectors, where is counted from 1 to the number of elements in the vector.
If the vector to be rounded has too many elements, the number of its elements is reduced to the correct number. Should the to round vector contain not enough elements, the missing elements are created and assigned to the zero value of the respective element domains.
Each domain has a null value. The null value of a scalar domain (a domain for numbers), is the value rounded to a value in the domain. For vectors the null vector is the vector, which is generated if a vector whose elements are all is rounded to a vector in the domain.
Each scalar domain has a maximum value and minimum value. The maximum value is the highest value in the domain and the minimum value is the smallest value.
The domains, which contain only integers, have a scale factor , which apply for the corresponding element of the . This factor is a floating point number, with which the values of the unscaled domain are multiplied, to obtain the scaled domain. As standard, the scaling factor is assumed. The scaling factor is useful for example, if the horizontal dimension should not be measured in meter but in milli meter or when the temperature is not given in degrees Kelvin, but in tenth of a degree Kelvin.
In the following notation the scale factor is indicated by the notation, that the domain is multiplied with it "". A Skalierungsfaltor of is not specified here. For example, " " means that the 16-bit integer domain is scaled with the scaling factor . In contrast "" means that the scaling factor is , that is the domain is not scaled.
Example: The basis domain is for integers from to (which are 4 values) with the scaling factor . Possible values are: ; ; ; . If a number in an element for the domain is for example unscaled , it is interpreted as the scaled number .
|dim( , , , )||This is the domain for position vectors. The number is the number of dimensions respectively elements of a position vector. The value is an integer, which determines, in which direction the dimension will be mapped (see table 7 on page for the possible values, there numerical values are specified [in the "value" column]). The domain is a vector with numbers (or scalars). The default value for the number of dimensions is , it will be used, if no domain is specified for position vectors. Then (standard case) the first dimension points in the horizontally direction and the second dimension in the vertically direction. Regardless of this, the direction value of the domains for elements (also inherited) overrides the value domains . Normally, however, the direction specifications should be the same for all position vector domains.||, ,|
|subfunction||values which can appear in subfunctions|
|area||domain for the area element (see section 9.6 on page )|
|inVar(i)||domain for the i'th input variable ()|
|set||zeroth domain for set-elements|
|set(i)||i'th domain for set-elements|
|matrix||zeroth domain for matrix elements|
|matrix(i)||i'th domain for matrix elements|
|externSubobject( Number )||The domain for the external subobject with the given number (see section 9.10 on page ) of the multimedia object. The output values of the external subobject with the given number can be set to the values of this domain. In the main-Fib-object for each externSubobjectOutput domain external subobjects with the given number can exist. Also for each external subobject (each number) in the main-Fib-object an externSubobjectOutput domain with the number should exist. At least for the external subobjects with the highest number an externSubobject domain have to be created, so that it is known, how much external subobjects in the main-Fib-object exists. The externSubobjectOutput domain isn't inherited by other root-elements.|
|property( Name )||domain of the properties for the given ; see table 2 on page for the possible names ()||dependent of the type () of the property|
|property( whatever )||The properties of the points dosn't matter. Whatever properties are assigned to a point with this property, they are correct.|
|property( colorRGB)||domain for RGB-colors|
|property( colorGrayscale )||domain for monocrome colors|
|property( layer )||number of possible layers|
|property( transparency )||transparency of the points|
|property( persistent )||This property is only useful for a period of time. Points in space with this property only lose their other properties, if they are overwritten by a respective property of the same type. This of however is only the case, as long as the particular point has the property . This property is for example useful, if in a movie objects should be visible as long as they are not overwritten by other objects. In this case, the entire background can get the property . If an object is defined and displayed at a time, it will be there in the future as long as it won't get overwritten. (The possible values are for persistent and for non persistent.)|
|property( sound )||a sound; the values are: 1. frequency in Hertz (), 2. sound pressure in Pascal (), 3. phase shift in radians, 4. duration in seconds; a sound is additive to other sounds||, , , ,|
|property( soundPolarized )||a sound; the values are: 1. frequency in Hertz (), 2. sound pressure in Pascal (), 3. phase shift in radians, 4. duration in seconds; r = to ( ) polarization fraction (as an angle in radians) in the dimension plane, which is spanned by the respective dimensions and ( is the number of dimensions), the angle origin is the axis and goes in positive direction; a sound is additive to other sounds||, , , ,|
|property( soundAmplitude )||the amplitude of a sound; the values are: 1. sound pressure in Pascal (), 2. phase shift in radians, 3. duration in seconds; a sound is additive to other sounds; With this properties sounds can be build by their amplitude with a specific sampling rate, such as in the WAVE file format.||, , ,|
|property( soundBarrier )||speed of sound in meters per second (); With this property objects can change the acoustics.||,|
|property( soundReflected )||fraction of sound reflected from the object; This property applies to the surface/the edge of the object and not for all his individual points||,|
|property( soundDamping )||fraction of the sound swallowed by a point||,|
|property( kelvin )||temperature in Kelvin||,|
|property( electroMagnetic )||an electromagnetic radiation source, the values are: 1. frequency in Hertz (), 2. amplitude in Candela cd, 3. phase shift in radians, 4. duration in seconds, r = to ( ), r = to ( ) polarization fraction (as an angle in radians) in the dimension direction, which is spanned by the respective dimensions and ( is the number of dimensions), the angular information is provided by the axis in positive direction, an electromagnetic wave is additive to other electromagnetic waves||, , , ,|
|property( periodBegin )||Time in seconds () from the beginning of the whole multimedia object, from which the object is to be displayed; if possible, this property should be near the root of the multimedia object; when a multimedia object is played it can be determined with this property: the order in which subobjects should be evaluated and/or till which time to evaluate a part object||,|
|property( periodEnd )||Time in seconds () from the beginning of the whole multimedia object, till which the object is to be displayed; if possible, this property should be near the root of the multimedia object and follow a "periodBegin" property; when a multimedia object is played it can be determined with this property: the order in which subobjects should be evaluated and/or till which time to evaluate a part object completely||,|
|property( evaluationTime )||Time required for evaluating a multimedia object, in proportion to a multimedia object, which contains only one point (the value should be seen as a multiple of the evaluation time of a point); with this property in combination with the properties "periodBegin" und "periodEnd" a good evaluation order and time can be evalued for the partobjects, when playing a multimedia object; this property should stand immediately after (or below/within) the "periodBegin" and "periodEnd" properties||,|
|property( checksum )||A checksum for the object will be generated. The first parameter determines the type of the checksum. The second parameter specifies any which number of bits, a checksum is to be generated, and the third parameter defines how many bits the checksum is long. The last block of the checksum will be padded with 0 after loading the blocks, so that it too has the desired length. If there are enough bits to correct an existing error, it will be attempted to correct the error. (see section 21.3.3 on page )||, , ,|
|property( boundSize )||For the part object the border/size in bits will be stored, when saving it. If an error occured while loading the part object, the (in the bitstream after the faulty part object) following part objects can still be loaded, because their beginning is known. (see section 21.3.3 on page )|
|naturalNumberB(X) * S||bit integers without sign (natural numbers), which are scaled with|
|integerB(X) * S||bit integers with sign, which are scaled with|
|naturalNumberB(32)||32 bit integers without sign (the scaling factor is not shown, because it is )|
|integerB(32)||32 bit integers with sign|
|naturalNumber(X) * S||integers in the range from to (without sign), which are scaled with|
|integer(X, Y) * S||integers in the range from to , which are scaled with|
|integerValues( ) * S||all given integers , which are scaled with|
|naturalNumberUL() * S||unlimited positiv integers, which are scaled with||all positiv natural numbers|
|integerUL() * S||unlimited integers, which are scaled with||all integers|
|real()||The domain for floating point numbers. A floating point number consists of two integer fields, the first is for the exponent and the second for the mantissa . The floating point number is then . The domains and are the domains for the integers, defined like above (e. g. integerB(8)). The domain is the domain for the values of the mantissa and is the domain for the values of the exponent.|
|realValues( )||all given floating point numbers|
|realUL()||all floating point numbers||all floating point numbers|
|vector( )||a vector with elements, in which the 'th element has the domain|
|vectorValues( ; )||The basis domain are vectors. The given vectors are all possible vectors in the domain. The domain is the domain of the 'th vector element (if it isn't a variable). If a variable is given as a vector elements the varible identifier is left out (omitted).||for ; with|
|vectorOpenEnd( )||This is the domain for vectors with or more elements, in which the 'th element has the domain , for lower , and else the domain . This domain is for elements, which can contain vectors of diffent sizes. The number of elements in the vector should be determined by the containing Fib element.|
|domainReference( Name.[Element]* )||The domain is the domain of the Element of the given domain name . With the parameters a subdomain can be choosen (e. g. for the first subdomain of the third subdomain for the set-element or ). If no domain for the element with the exist, the default domain of the element is taken. If there is not even standard domain the general standard domain is used. If ther is no subdomain for , the last subdomain for is used, that still exists.||the ( sub-)domain for the element with the domain name|
|defaultDomain( Domain )||The domain is used, if no other domain exists for the corresponding element.||if no other domain exists for the corresponding element|