<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="SlangRef.xsl" type="text/xsl"?>
<Slang>
	<Name>Slang</Name>
	<Version>0.902000</Version>
	<Reference>
		<Created>2004.07.29 04:33:03</Created>
		<LastUpdate>2006.01.26 00:14:49</LastUpdate>
	</Reference>
	<Expression id="2">
		<Key>green</Key>
		<Syntax>green</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Returns the value of the green color channel of the pixel at the current position (implicitly adressed by x and y)</Return>
		<Description>The returned value can be a value between 0 and maxcol.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="3">
		<Key>red</Key>
		<Syntax>red</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Returns the value of the red color channel of the pixel at the current position (implicitly adressed by x and y)</Return>
		<Description>The returned value can be a value between 0 and maxcol.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="4">
		<Key>blue</Key>
		<Syntax>blue</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Returns the value of the blue color channel of the pixel at the current position (implicitly adressed by x and y)</Return>
		<Description>The returned value can be a value between 0 and maxcol.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="5">
		<Key>pi</Key>
		<Syntax>pi</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system constant</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Numeric constant 3.141593</Return>
		<Description>Mathematical constant, that descripes the raltionship between circumsference and diameter of a circle.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="6">
		<Key>x</Key>
		<Syntax>x</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The x coordinate of the current position</Return>
		<Description>The x coordinate of the current position is only valid for the following events:
- Each Pixel
- Each Red
- Each Green
- Each Blue
For all other events, x remains 0.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="7">
		<Key>y</Key>
		<Syntax>y</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The y coordinate of the current position.</Return>
		<Description>The y coordinate of the current position is only valid for the following events:
- Each Line
- Each Pixel
- Each Red
- Each Green
- Each Blue
For all other events, y remains 0.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="8">
		<Key>width</Key>
		<Syntax>width</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The width of the target frame/image that has to be rendered</Return>
		<Description>As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="9">
		<Key>height</Key>
		<Syntax>height</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The height of the target frame/image that has to be rendered</Return>
		<Description>As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="10">
		<Key>maxx</Key>
		<Syntax>maxx</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The maximum value that x can become.</Return>
		<Description>This is always calculated as width-1. 

The very first pixel in a pixel-row starts counting with 0. Therefore the last pixel in the row is always 1 lower then the number of pixels in a row.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="11">
		<Key>maxy</Key>
		<Syntax>maxy</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The maximum value that y can become.</Return>
		<Description>This is always calculated as height-1. 

The very first pixel in a pixel-column starts counting with 0. Therefore the last pixel in the column is always 1 lower then the number of pixels in a column.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="12">
		<Key>maxcol</Key>
		<Syntax>maxcol</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system constant</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The maximum value that one of the color channels (reg/green/blue) can have.</Return>
		<Description>maxcol is defined as 255.

As system constants are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="13">
		<Key>frame</Key>
		<Syntax>frame</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The index of the current frame, while rendering a video clip.</Return>
		<Description>The returned value can be a value between 0 and maxframe.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="14">
		<Key>maxframe</Key>
		<Syntax>maxframe</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The highest ordinal that the system variable &apos;frame&apos; may become while a sequence of frames is processed.</Return>
		<Description>See &apos;Return&apos;</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="15">
		<Key>progress</Key>
		<Syntax>progress</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system variable</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Indicator of the progress within a video clip</Return>
		<Description>The progress system variable indicates to progress within a video clip:

0.0 the very first frame has to be rendered
0.5 the frame closest to the middle of the clip has to be rendered
1.0 the very last frame has to be rendered

The value of progress is calculated for every frame within a video clip.

As system variables are read only to the script language, any attempt to assign values will fail.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="16">
		<Key>setoffscreen(</Key>
		<Syntax>setoffscreen( color_red, color_green, color_blue )</Syntax>
		<Introduced>0.811000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>color_red:   value of red color channel (0 to maxcol)
color_green: value of green color channel (0 to maxcol)
color_blue:  value of blue color channel (0 to maxcol)</Parameters>
		<Return>nothing</Return>
		<Description>The functions red@, green@ and blue@ can retrieve the color information of pixels at other coordinates then the current x/y-position.
For the case that invalid x/y-coordinates are pointing outside the source image, the offscreen-color is used.

The offscreen-color is by default RGB(0,0,0) (black). The setoffscreen function can be used to set a different color.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="17">
		<Key>blurred(</Key>
		<Syntax>blurred( int_size )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>int_size   integer value that defines the dimesions of the relevant area that surrounds the current pixel</Parameters>
		<Return>Average value of the red color channel of all pixels within the dimension int_size x int_size for the current pixel.</Return>
		<Description>See &apos;Return&apos;. 
The bigger int_size is, the bigger is the relevant square-region and therefore the image will become more blured.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="18">
		<Key>blurgreen(</Key>
		<Syntax>blurgreen( int_size )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>int_size   integer value that defines the dimesions of the relevant area that surrounds the current pixel</Parameters>
		<Return>Average value of the green color channel of all pixels within the dimension int_size x int_size for the current pixel.</Return>
		<Description>See &apos;Return&apos;. 
The bigger int_size is, the bigger is the relevant square-region and therefore the image will become more blured.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="19">
		<Key>blurblue(</Key>
		<Syntax>blurblue( int_size )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>int_size   integer value that defines the dimesions of the relevant area that surrounds the current pixel</Parameters>
		<Return>Average value of the blue color channel of all pixels within the dimension int_size x int_size for the current pixel.</Return>
		<Description>See &apos;Return&apos;. 
The bigger int_size is, the bigger is the relevant square-region and therefore the image will become more blured.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="20">
		<Key>blurred@(</Key>
		<Syntax>blurred@( coord_x, coord_y, int_size )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>coord_x    x-coordinate of a given position
coord_y    y-coordinate of a given position
int_size   integer value that defines the dimesions of the relevant area that surrounds the pixel at the given position</Parameters>
		<Return>Average value of the red color channel of all pixels within the dimension int_size x int_size for the pixel of the given position.</Return>
		<Description>See &apos;Return&apos;. 
The bigger int_size is, the bigger is the relevant square-region and therefore the image will become more blured.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="21">
		<Key>blurgreen@(</Key>
		<Syntax>blurgreen@( coord_x, coord_y, int_size )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>coord_x    x-coordinate of a given position
coord_y    y-coordinate of a given position
int_size   integer value that defines the dimesions of the relevant area that surrounds the pixel at the given position</Parameters>
		<Return>Average value of the green color channel of all pixels within the dimension int_size x int_size for the pixel of the given position.</Return>
		<Description>See &apos;Return&apos;. 
The bigger int_size is, the bigger is the relevant square-region and therefore the image will become more blured.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="22">
		<Key>blurblue@(</Key>
		<Syntax>blurblue@( coord_x, coord_y, int_size )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>coord_x    x-coordinate of a given position
coord_y    y-coordinate of a given position
int_size   integer value that defines the dimesions of the relevant area that surrounds the pixel at the given position</Parameters>
		<Return>Average value of the blue color channel of all pixels within the dimension int_size x int_size for the pixel of the given position.</Return>
		<Description>See &apos;Return&apos;. 
The bigger int_size is, the bigger is the relevant square-region and therefore the image will become more blured.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="23">
		<Key>edge(</Key>
		<Syntax>edge( int_clear )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>int_clear   integer between 1 and 10 to clear unwanted edge details (1=many edge details, 10 very low edge details)</Parameters>
		<Return>Real number between 0 and 1 that represents the likelihood that the current pixel represents an edge.</Return>
		<Description>Sobel edge detection. Examines the surrounding of the current pixel and evaluates how likely the pixel represents an edge.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="24">
		<Key>edge@(</Key>
		<Syntax>edge@( coord_x, coord_y, int_clear )</Syntax>
		<Introduced>0.815000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>coord_x     x-coordinate of a given position
coord_y     y-coordinate of a given position
int_clear   integer between 1 and 10, to clear unwanted edge details (1=many edge details, 10 very low edge details)</Parameters>
		<Return>Real number between 0 and 1 that represents the likelihood that the pixel at the given position represents an edge.</Return>
		<Description>Sobel edge detection. Examines the surrounding of the pixel at the given position and evaluates how likely the pixel represents an edge.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="25">
		<Key>+</Key>
		<Syntax>+</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The sum of the values of the left and the right side of the plus operator.</Return>
		<Description>The mathematical plus operator calculates the sum of two values.</Description>
		<Sample>The following sample sets &apos;somevariable&apos; to the value of 12:

somevariable=8+4;</Sample>
	</Expression>
	<Expression id="26">
		<Key>-</Key>
		<Syntax>-</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>The difference between the value of the left- and rightside operand.</Return>
		<Description>The mathematical minus operator is used to calculate differences between to given values.</Description>
		<Sample>The following code sets the variable &apos;result&apos; to a value of 15:

val1=25; val2=10;
result=val1-val2;</Sample>
	</Expression>
	<Expression id="27">
		<Key>*</Key>
		<Syntax>*</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Product of the left and right side of the operator</Return>
		<Description>Multiplication operator: multiplies the left side of the operator with the expression at the right side.

Note: The interpreter is not yet capable of operator precedence, except in case of use of parenthesis.

This means that &apos;2+3*4&apos; is computed as 20 and not as 14. A simple workaround is the use of paranthesis. The expression &apos;2+(3*4)&apos; will be correctly computed as 14.</Description>
		<Sample>The following example assigns the value 12 to &apos;somevariable&apos;:

somevariable = 3*4</Sample>
	</Expression>
	<Expression id="28">
		<Key>/</Key>
		<Syntax>/</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Product of the left and right side of the operator</Return>
		<Description>Division operator: divides the left side of the operator by the expression at the right side. The right side (divisor) must be different from 0.

Note: The interpreter is not yet capable of operator precedence, except in case of use of parenthesis.

This means that &apos;4+16/4&apos; is computed as 5 and not as 8. A simple workaround is the use of paranthesis. The expression &apos;4+(16/4)&apos; will be correctly computed as 8.</Description>
		<Sample>The following example assigns the value 5 to &apos;somevariable&apos;:

somevariable = 20/4</Sample>
	</Expression>
	<Expression id="29">
		<Key>%</Key>
		<Syntax>%</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>none</Parameters>
		<Return>reminder of the division</Return>
		<Description>The result of the modulus operator is the reminder from the division of the first operator with the second.</Description>
		<Sample>The following example sets &apos;somevariable&apos; to the value of 2:

somevariable = 10 % 4</Sample>
	</Expression>
	<Expression id="30">
		<Key>(</Key>
		<Syntax>(</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>none</Return>
		<Description>Parenthesis are either used to specify operator precedence or to determine begin and end of a functions parameter list.

The compiler/interpreter processes formulas from left to right by default. Within complex calculations, it is usually necessary to specify which math operation shall be prior to the others. Prior operations must be encapsulated between an opening and an closing parenthesis. It is possible to nest multiple occurances of parenthesis. In that case, the most inner parenthesis operation will become priority to the others.</Description>
		<Sample>In the follwing sample the multiplication (4*5) will be calculated first. Then the result of that multiplication (20) will become devided by 10 (20/10). Finaly, 123 will be reduced by the result of the division (123-2):

value=(123-((4*5)/10))</Sample>
	</Expression>
	<Expression id="31">
		<Key>==</Key>
		<Syntax>==</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression (true or false) as result of a comparison between the left and the right operand of the operator.</Return>
		<Description>The logical operator &apos;equal&apos; is used to determine whether the operand left to the operator is equal to the operand at the right side of the operator. It can be used in conjunction with the &apos;if&apos; function.

It shall not be confused with the single equal sign, that is for assignment of values to variables.</Description>
		<Sample>In the following sample 3 will be assigned to value3, because value1 is equal to value2:

value1=20; value2=20;
value3=if(value1==value2,3,7)</Sample>
	</Expression>
	<Expression id="32">
		<Key>&lt;</Key>
		<Syntax>&lt;</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression (true or false) as result of a comparison between the left and the right operand of the operator.</Return>
		<Description>The logical operator &apos;lower than&apos; is used to determine whether the operand left to the operator is lower than the operand right to the operator. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>In the following sample 3 will be assigned to value3, because value1 is lower than value2:

value1=20; value2=30;
value3=if(value1&lt;value2,3,7)</Sample>
	</Expression>
	<Expression id="33">
		<Key>&gt;</Key>
		<Syntax>&gt;</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression (true or false) as result of a comparison between the left and the right operand of the operator.</Return>
		<Description>The logical operator &apos;greater than&apos; is used to determine whether the operand left to the operator is greater than the operand at the right side of the operator. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>In the following sample 7 will be assigned to value3, because value1 is higher than value2:

value1=20; value2=30;
value3=if(value1&gt;value2,3,7)</Sample>
	</Expression>
	<Expression id="34">
		<Key>&lt;=</Key>
		<Syntax>&lt;=</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression (true or false) as result of a comparison between the left and the right operand of the operator.</Return>
		<Description>The logical operator &apos;lower/equal than&apos; is used to determine whether the operand left to the operator is lower or equal to the operand at the right side of the operator. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>In the following sample 3 will be assigned to value3, because value1 is equal to value2:

value1=20; value2=20;
value3=if(value1&lt;=value2,3,7)</Sample>
	</Expression>
	<Expression id="35">
		<Key>&gt;=</Key>
		<Syntax>&gt;=</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression (true or false) as result of a comparison between the left and the right operand of the operator.</Return>
		<Description>The logical operator &apos;greater/equal&apos; is used to determine whether the operand left to the operator is greater or equal to the operand at the right side of the operator. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>In the following sample 3 will be assigned to value3, because value1 is equal to value2:

value1=20; value2=20;
value3=if(value1&gt;=value2,3,7)</Sample>
	</Expression>
	<Expression id="36">
		<Key>||</Key>
		<Syntax>||</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression: 1 if true, 0 if false.</Return>
		<Description>The logical or-operator is used to combine logical expressions. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>The following example returns value_1 if condition_1 OR condition_2 is true:

somevariable = if( condition_1 || condition_2, value_1, value_2 )</Sample>
	</Expression>
	<Expression id="37">
		<Key>&amp;&amp;</Key>
		<Syntax>&amp;&amp;</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Boolean expression: 1 if true, 0 if false.</Return>
		<Description>The logical and-operator is used to combine logical expressions. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>The following example returns value_1 if condition_1 AND condition_2 is true:

somevariable = if( condition_1 &amp;&amp; condition_2, value_1, value_2 )</Sample>
	</Expression>
	<Expression id="38">
		<Key>)</Key>
		<Syntax>)</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>none</Return>
		<Description>Parenthesis are either used to specify operator precedence or to determine begin and end of a functions parameter list.

The compiler/interpreter processes formulas from left to right by default. Within complex calculations, it is usually necessary to specify which math operation shall be prior to the others. Prior operations must be encapsulated between an opening and an closing parenthesis. It is possible to nest multiple occurances of parenthesis. In that case, the most inner parenthesis operation will become priority to the others.</Description>
		<Sample>In the follwing sample the multiplication (4*5) will be calculated first. Then the result of that multiplication (20) will become devided by 10 (20/10). Finaly, 123 will be reduced by the result of the division (123-2):

value=(123-((4*5)/10))</Sample>
	</Expression>
	<Expression id="41">
		<Key>=</Key>
		<Syntax>=</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>none</Return>
		<Description>The single equal sign is used to assign values to variables.

It shall not be confused with the double equal sign (&apos;==&apos;), that is for comparison of two given values.</Description>
		<Sample>In the following sample the value 123 will be assigned to the variable &apos;somevariable&apos;:

somevariable=123

In the following sample the result of the calculation 4*5 will be assigned to &apos;somevariable&apos;:

somevariable=4*5</Sample>
	</Expression>
	<Expression id="43">
		<Key>pow(</Key>
		<Syntax>pow( base, exponent )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>base      numeric value that will be raised to the power of exponent
exponent  numeric value where base will raised to</Parameters>
		<Return>Returns base, raised to the power of exponent.</Return>
		<Description>The pow function computes base raised to the power of exponent.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="45">
		<Key>sqrt(</Key>
		<Syntax>sqrt( numeric )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>numeric   numeric expression</Parameters>
		<Return>Square root of &apos;numeric&apos;</Return>
		<Description>See &apos;Return&apos;.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="46">
		<Key>tan(</Key>
		<Syntax>tan( angle_rad )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>angle_rad   numeric expression</Parameters>
		<Return>tan returns the tangent of angle_rad.</Return>
		<Description>See &apos;Return&apos;.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="47">
		<Key>atan(</Key>
		<Syntax>atan( numeric )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>numeric   numeric expression</Parameters>
		<Return>atan returns the arctangent of x.</Return>
		<Description>Calculates the arctangent of x.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="48">
		<Key>sin(</Key>
		<Syntax>sin( angle_rad )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>angle_rad   numeric expression</Parameters>
		<Return>sin returns the sine of angle_rad.</Return>
		<Description>See &apos;Return&apos;.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="49">
		<Key>asin(</Key>
		<Syntax>asin( numeric )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>numeric   numeric expression</Parameters>
		<Return>The asin function returns the arcsine of numeric in radians. If numeric is less than –1 or greater than 1, asin causes an math error.</Return>
		<Description>Calculates the arcsine.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="50">
		<Key>cos(</Key>
		<Syntax>cos( angle_rad )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="51">
		<Key>acos(</Key>
		<Syntax>acos( numeric )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>numeric   numeric expression</Parameters>
		<Return>The acos function returns the arccosine of numeric in the range 0 to p radians. If numeric is less than –1 or greater than 1, acos causes an math error.</Return>
		<Description>Calculates the arccosine.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="52">
		<Key>int(</Key>
		<Syntax>int( numeric )</Syntax>
		<Introduced>0.812000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>a numeric expression</Parameters>
		<Return>Returns the integer part of the numeric expression.</Return>
		<Description>See &apos;Return&apos;</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="53">
		<Key>red@(</Key>
		<Syntax>red@( coord_x, coord_y )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>coord_x  x-coordinate of a provided position
coord_y  y-coordinate of a provided position</Parameters>
		<Return>Returns the value of the red color channel of the pixel at the given position (explicitly adressed by parameters coord_x and coord_y)</Return>
		<Description>The parameter coord_x must be a value between 0 and maxx.
The parameter coord_y must be a value between 0 and maxy.

For the case that one of both parameters is outside the valid range, the value of the red channel of the offscreen-color will be returned.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="54">
		<Key>green@(</Key>
		<Syntax>green@( coord_x,	coord_y )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>coord_x  x-coordinate of a provided position
coord_y  y-coordinate of a provided position</Parameters>
		<Return>Returns the value of the green color channel of the pixel at the given position (explicitly adressed by parameters coord_x and coord_y)</Return>
		<Description>The parameter coord_x must be a value between 0 and maxx.
The parameter coord_y must be a value between 0 and maxy.

For the case that one of both parameters is outside the valid range, the value of the green channel of the offscreen-color will be returned.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="55">
		<Key>blue@(</Key>
		<Syntax>blue@( coord_x, coord_y )</Syntax>
		<Introduced>0.799000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>coord_x  x-coordinate of a provided position
coord_y  y-coordinate of a provided position</Parameters>
		<Return>Returns the value of the blue color channel of the pixel at the given position (explicitly adressed by parameters coord_x and coord_y)</Return>
		<Description>The parameter coord_x must be a value between 0 and maxx.
The parameter coord_y must be a value between 0 and maxy.

For the case that one of both parameters is outside the valid range, the value of the blue channel of the offscreen-color will be returned.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="56">
		<Key>if(</Key>
		<Syntax>if( condition, case_true, case_false )</Syntax>
		<Introduced>0.803000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>condition   boolean expression that will be evaluated
case_true   the value that will be returned if condition is true
case_false  the value that will be returned if condition is false</Parameters>
		<Return>The function will return the second parameter (case_true) if the first parameter (condition) is true, otherwise it will return the second parameter (case_false).</Return>
		<Description>See &apos;Return&apos;</Description>
		<Sample>In the following example 456 will be assigned to value5, because value1 (30) is not lower/equal value2 (19):

value1=30; value2=19; value3=123; value4=456;
value5=if(value1&lt;=value2,value3,value4)

The following example shows how severall if-functions are nested within each other:

value5=if(value1&lt;=value2,if(value2&gt;=234,345,456),if(value3==333,123,345))</Sample>
	</Expression>
	<Expression id="57">
		<Key>max(</Key>
		<Syntax>max( value_1, value_2 )</Syntax>
		<Introduced>0.804000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>value_1   one of the two numeric values that are to be compared
value_2   one of the two numeric values that are to be compared</Parameters>
		<Return>either value_1 or value_2</Return>
		<Description>Compares value_1 with value_2 and returns the higher value of both.</Description>
		<Sample>in the following sample somevariable will become 456:

somevariable = min( 123, 456 )</Sample>
	</Expression>
	<Expression id="58">
		<Key>min(</Key>
		<Syntax>min( value_1, value_2 )</Syntax>
		<Introduced>0.804000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>value_1   one of the two numeric values that are to be compared
value_2   one of the two numeric values that are to be compared</Parameters>
		<Return>either value_1 or value_2</Return>
		<Description>Compares value_1 with value_2 and returns the lower of both values.</Description>
		<Sample>in the following sample somevariable will become 123:

somevariable = min( 123, 456 )</Sample>
	</Expression>
	<Expression id="59">
		<Key>rotatex(</Key>
		<Syntax>rotatex( center_x, center_y, angle_deg )</Syntax>
		<Introduced>0.802000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>center_x   x-coordinate of a given position
center_y   y-coordinate of a given position
angle_deg  degree of angle for rotation</Parameters>
		<Return>Returns the transformed x-coordinate of the current position.</Return>
		<Description>By using this function, it is possible to transform the coordinates of the current position. The position will become rotated around a given center-position for a given amount of degrees.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="60">
		<Key>rotatey(</Key>
		<Syntax>rotatey( center_x, center_y, angle_deg )</Syntax>
		<Introduced>0.802000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>center_x   x-coordinate of a given position
center_y   y-coordinate of a given position
angle_deg  degree of angle for rotation</Parameters>
		<Return>Returns the transformed y-coordinate of the current position.</Return>
		<Description>By using this function, it is possible to transform the coordinates of the current position. The position will become rotated around a given center-position for a given amount of degrees.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="61">
		<Key>distance(</Key>
		<Syntax>distance( to_x, to_y )</Syntax>
		<Introduced>0.802000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>to_x  x coordinate of the second point
to_y  y coordinate of the second point</Parameters>
		<Return>The distance between the position of the current pixel and the given point in pixels</Return>
		<Description>The distance is calculated as follows:

distance = sqrt( pow( x-to_x, 2 ) + pow( y-to_y, 2 ) )</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="62">
		<Key>distance@(</Key>
		<Syntax>distance@( from_x, from_y, to_x, to_y )</Syntax>
		<Introduced>0.811000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>from_x   x coordinate of point 1
from_y   y coordinate of point 1
to_x     x coordinate of point 2
to_y     y coordinate of point 2</Parameters>
		<Return>The distance between two given points in pixels</Return>
		<Description>The distance is calculated as follows:

distance = sqrt( pow( from_x-to_x, 2 ) + pow( from_y-to_y, 2 ) )</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="63">
		<Key>colordist(</Key>
		<Syntax>colordist( color_red, color_green, color_blue )</Syntax>
		<Introduced>0.811000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>color_red    red color channel of the second color
color_green  grenn color channel of the second color
color_blue   blue color channel of the second color</Parameters>
		<Return>The distance between the given color and the color of the pixel at the current position.</Return>
		<Description>A color is defined by its three color channels red, green and blue, where every channel can have a value between 0 and 255. 

Those values can be used as coordinates in a 3d cube. The cube has a resolution of 255 by 255 by 255, where every possible color has its position. 

Like in any other 3d space the distance between two given points can be computed:

distance=sqrt( pow( red1-red2, 2 ) + pow( green1-green2, 2 ) + pow( blue1-blue2, 2 ) )

The distance can be used as an indicator for the similarity of two given colors.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="65">
		<Key>abs(</Key>
		<Syntax>abs( numeric )</Syntax>
		<Introduced>0.811000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>numeric   numeric expression</Parameters>
		<Return>abs returns the absolute value of its argument.</Return>
		<Description>Calculates the absolute value of the numeric argument.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="66">
		<Key>tracegrey(</Key>
		<Syntax>tracegrey( to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="67">
		<Key>tracered(</Key>
		<Syntax>tracered( to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="68">
		<Key>tracegreen(</Key>
		<Syntax>tracegreen( to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="69">
		<Key>traceblue(</Key>
		<Syntax>traceblue( to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="70">
		<Key>tracegrey@(</Key>
		<Syntax>tracegrey@( from_x, from_y, to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="71">
		<Key>tracered@(</Key>
		<Syntax>tracered@( from_x, from_y, to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="72">
		<Key>tracegreen@(</Key>
		<Syntax>tracegreen@( from_x, from_y, to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="73">
		<Key>traceblue@(</Key>
		<Syntax>traceblue@( from_x, from_y, to_x, to_y, percent )</Syntax>
		<Introduced>0.817000</Introduced>
		<LocationBased>yes</LocationBased>
		<Category>function</Category>
		<WorkLoad>heavy</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>not yet done</Return>
		<Description>not yet done</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="74">
		<Key>rotatex@(</Key>
		<Syntax>rotatex@( point_x, point_y, center_x, center_y, angle_deg )</Syntax>
		<Introduced>0.818000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>point_x    x-coordinate of a given position
point_y    y-coordinate of a given position
center_x   x-coordinate of a given position
center_y   y-coordinate of a given position
angle_deg  degree of angle for rotation</Parameters>
		<Return>Returns the transformed x-coordinate of a given position.</Return>
		<Description>By using this function, it is possible to transform the coordinates of the given position. The position will become rotated around a given center-position for a given amount of degrees.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="75">
		<Key>rotatey@(</Key>
		<Syntax>rotatey@( point_x, point_y, center_x, center_y, angle_deg )</Syntax>
		<Introduced>0.818000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>average</WorkLoad>
		<Parameters>point_x    x-coordinate of a given position
point_y    y-coordinate of a given position
center_x   x-coordinate of a given position
center_y   y-coordinate of a given position
angle_deg  degree of angle for rotation</Parameters>
		<Return>Returns the transformed y-coordinate of a given position.</Return>
		<Description>By using this function, it is possible to transform the coordinates of the given position. The position will become rotated around a given center-position for a given amount of degrees.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="76">
		<Key>true</Key>
		<Syntax>true</Syntax>
		<Introduced>0.821000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system constant</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Numeric value 1</Return>
		<Description>This keyword represents one of the two values that a boolean expression can have. The second value is &apos;false&apos;.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="77">
		<Key>false</Key>
		<Syntax>false</Syntax>
		<Introduced>0.821000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>system constant</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>none</Parameters>
		<Return>Numeric value 0</Return>
		<Description>This keyword represents one of the two values that a boolean expression can have. The second value is &apos;true&apos;.</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="78">
		<Key>seed(</Key>
		<Syntax>seed( use_static )</Syntax>
		<Introduced>0.821000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>use_static   boolean expression, that indicates that the pattern of generated random values shall remain static for each rendered frame</Parameters>
		<Return>The function returns true if it was successfull, otherwise false.</Return>
		<Description>Initiates the rand() function (function to retrieve random numeric values).
It should only be used once for each frame (at event &apos;Each Frame&apos;).</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="79">
		<Key>rand(</Key>
		<Syntax>rand( lower_bound, upper_bound )</Syntax>
		<Introduced>0.821000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>function</Category>
		<WorkLoad>somewhat</WorkLoad>
		<Parameters>lower_bound   numeric value that determines the lowest random value
upper_bound   numeric value that determines the highest random value</Parameters>
		<Return>Random numeric value within the range of lower_bound to upper_bound.</Return>
		<Description>See &apos;Return&apos;</Description>
		<Sample>none</Sample>
	</Expression>
	<Expression id="80">
		<Key>!=</Key>
		<Syntax>!=</Syntax>
		<Introduced>0.902000</Introduced>
		<LocationBased>no</LocationBased>
		<Category>operator</Category>
		<WorkLoad>almost nothing</WorkLoad>
		<Parameters>not yet done</Parameters>
		<Return>Boolean expression (true or false) as result of a comparison between the left and the right operand of the operator.</Return>
		<Description>The logical operator &apos;unequal&apos; is used to determine whether the operand left to the operator is unequal to the operand at the right side of the operator. It can be used in conjunction with the &apos;if&apos; function.</Description>
		<Sample>In the following sample the value of the system variable &apos;red&apos; will be assigned for the case that the value of x is different to the value of centerx. Otherwise 0 will be assigned:

centerx=height/2
...
if(x!=centerx,red,0)</Sample>
	</Expression>
	<Url>http://www.burgers-transition-site.de/downloads/fxbench/SlangReference.xml</Url>
</Slang>

