<?xml version="1.0" encoding="UTF-8"?>
<fib_object
			xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
			xmlns="http://www.fib-development.org/"
			xsd:schemaLocation="http://www.fib-development.org/fib.xsd">
	<root>
		<multimedia_info fib_version="3" db_version="2"/>
		<optionalpart>
			<pair key="name" value="quadrangle with antialising"/>
			<pair key="description" value="This object represents a quadrangle (box) with one line / side antialiased. In the first dimension it goes from x_s to x_e (borders not antialiased). In the second dimension the area is filled between two lines y_s = f_1( x ) = a_0 + a_1 * x , which is antialiased, and y_e = f_2( x ) = b_0 + b_1 * x (wher x goes from x_s to x_e; border / line f_1 antialiased and f_2, x_e, x_s not antialiased). The points of the quadrangle (box) are given back as variables of the subobject."/>
			<pair key="inVar1::description" value="position start point dimension 1 (x_s)"/>
			<pair key="inVar2::description" value="position end point dimension 1 (x_e)"/>
			<pair key="inVar3::description" value="parameter a_0 of the first antialiased line function f_1"/>
			<pair key="inVar4::description" value="parameter a_1 of the first antialiased line function f_1"/>
			<pair key="inVar5::description" value="parameter b_0 of the second line function f_2"/>
			<pair key="inVar6::description" value="parameter b_1 of the second line function f_2"/>
			
			<pair key="subObj1::description" value="The points of the quadrangle (box). The subobject is called for every point on the quadrangle (box)."/>
			<pair key="subObj1::outVar1::description" value="the position of the quadrangle point in dimension 1 (x)"/>
			<pair key="subObj1::outVar2::description" value="the position of the quadrangle point in dimension 2 (y)"/>
			<pair key="subObj1::outVar3::description" value="the antialising factor (1 is full transparent and 0 full opaque)"/>
			
			<pair key="author" value="Betti Oesterholz"/>
			<pair key="author::email" value="Oesterholz@Fib-Development.org"/>
			<pair key="copyright" value="LGPL3"/>
			
			<pair key="isPointSubObject" value=""/>
			<pair key="isAntialiased" value=""/>
			<pair key="DbObject::isNotAntialiased" value="-410"/>
		</optionalpart>
		<input_variables>
			<variable number="1" default="0"/>
			<variable number="2" default="0"/>
			<variable number="3" default="0"/>
			<variable number="4" default="0"/>
			<variable number="5" default="0"/>
			<variable number="6" default="0"/>
		</input_variables>
		<domains>
			<inVar number="1">
				<domainReference subdomain="1">
					<dim count="2">
						<dimension number="1" direction="anywhere"/>
						<dimension number="2" direction="anywhere"/>
					</dim>
				</domainReference>
			</inVar>
			<inVar number="2">
				<domainReference subdomain="1">
					<dim count="2">
						<dimension number="1" direction="anywhere"/>
						<dimension number="2" direction="anywhere"/>
					</dim>
				</domainReference>
			</inVar>
			<externSubobject number="1">
				<vector elements="3">
					<!--actually any numbers are possible;
						the next lines are just a space holders-->
					<naturalNumberB bit="0" />
					<naturalNumberB bit="0" />
					<naturalNumberB bit="0" />
				</vector>
			</externSubobject>
			<subfunction>
				<naturalNumber scalingfactor="0.5" max="2" />
			</subfunction>
		</domains>
		<valuedomains>
			<externObject>
				<vector elements="4">
					<integer min="1" max="2" /><!--Identifier-->
					<integer min="8" max="8" /><!--number input values-->
					<naturalNumber max="1" /><!--number subobjects-->
					<naturalNumber max="2" /><!--number output values-->
				</vector>
			</externObject>
			<externObjectInput identifier="1">
				<vector elements="9">
					<domainReference subdomain="1">
						<dim count="2">
							<dimension number="1" direction="anywhere"/>
							<dimension number="2" direction="anywhere"/>
						</dim>
					</domainReference>
					<domainReference>
						<inVar number="3"/>
					</domainReference>
					<domainReference>
						<inVar number="4"/>
					</domainReference>
					<domainReference subdomain="2">
						<dim count="2">
							<dimension number="1" direction="anywhere"/>
							<dimension number="2" direction="anywhere"/>
						</dim>
					</domainReference>
					<domainReference subdomain="2">
						<dim count="2">
							<dimension number="1" direction="anywhere"/>
							<dimension number="2" direction="anywhere"/>
						</dim>
					</domainReference>
					<domainReference>
						<inVar number="5"/>
					</domainReference>
					<domainReference>
						<inVar number="6"/>
					</domainReference>
					<domainReference subdomain="2">
						<dim count="2">
							<dimension number="1" direction="anywhere"/>
							<dimension number="2" direction="anywhere"/>
						</dim>
					</domainReference>
					<domainReference subdomain="2">
						<dim count="2">
							<dimension number="1" direction="anywhere"/>
							<dimension number="2" direction="anywhere"/>
						</dim>
					</domainReference>
				</vector>
			</externObjectInput>
		</valuedomains>
		<database_identifiers>
			<identifier>-900</identifier>
			<identifier>-901</identifier>
			<identifier>-905</identifier>
		</database_identifiers>
		<main_fib_object>
			<area define_variable="7">
				<vector type="subarea">
					<variable>1</variable>
					<variable>2</variable>
				</vector>
				<!-- evalue through wich points the border lines go
					- for pixels through wich points the border lines f_1 go:
					evalue the transparency
					- else transparency is 0 full opaque and give back points
					
				For every vertical line of the rectangle:
					First step: sort border points of bordes (lines) (max, min)
					and sort borders (border with the highest border point first)
				-->
				<function define_variable="8">
					<!--f_1( x ) = a_0 + a_1 * x -->
					<subfunction>
						<add>
							<variable>3</variable>
							<mult>
								<variable>4</variable>
								<variable>7</variable>
							</mult>
						</add>
					</subfunction>
					<function define_variable="9">
						<!--f_1( x + 1 ) = f_1( x ) + a_1 -->
						<subfunction>
							<add>
								<variable>8</variable>
								<variable>4</variable>
							</add>
						</subfunction>
					
						<function define_variable="10">
							<!--f_2( x ) = b_0 + b_1 * x -->
							<subfunction>
								<add>
									<variable>5</variable>
									<mult>
										<variable>6</variable>
										<variable>7</variable>
									</mult>
								</add>
							</subfunction>
								
								<function define_variable="12">
									<!--max (integer) border f_1 -->
									<subfunction>
										<round>
											<add>
												<max>
													<variable>8</variable>
													<variable>9</variable>
												</max>
												<value>0.5</value>
											</add>
										</round>
									</subfunction>
									<function define_variable="13">
									<!--min (integer) border f_1 -->
									<subfunction>
										<round>
											<sub>
												<min>
													<variable>8</variable>
													<variable>9</variable>
												</min>
												<value>0.5</value>
											</sub>
										</round>
									</subfunction>
									
									<if><!-- check wich border line has the biggest max point -->
										<condition>
											<gr>
												<variable>12</variable>
												<variable>10</variable>
											</gr>
										</condition>
										<!-- f_1 has the biggest max point -->
										<obj identifier="1">
											<vector type="externObjectInput">
												<variable>7</variable>
												<variable>3</variable>
												<variable>4</variable>
												<variable>12</variable>
												<variable>13</variable>
												<variable>5</variable>
												<variable>6</variable>
												<variable>10</variable>
											</vector>
											<subobject>
												<output_variables>
													<variable>16</variable>
													<variable>17</variable>
												</output_variables>
												<subobject number="1">
													<vector type="externSubobject">
														<variable>7</variable>
														<variable>16</variable>
														<variable>17</variable>
													</vector>
												</subobject>
											</subobject>
										</obj>
										<!-- else f_2 has the biggest max point -->
										<obj identifier="2">
											<vector type="externObjectInput">
												<variable>7</variable>
												<variable>5</variable>
												<variable>6</variable>
												<variable>10</variable>
												<variable>3</variable>
												<variable>4</variable>
												<variable>12</variable>
												<variable>13</variable>
											</vector>
											<subobject>
												<output_variables>
													<variable>16</variable>
													<variable>17</variable>
												</output_variables>
												<subobject number="1">
													<vector type="externSubobject">
														<variable>7</variable>
														<variable>16</variable>
														<variable>17</variable>
													</vector>
												</subobject>
											</subobject>
										</obj>
									</if>
								</function>
							</function>
						</function>
					</function>
				</function>
			</area>
		</main_fib_object>
		
		<sub_roots>
			<sub_root identifier="1">
				<root>
					<optionalpart>
						<pair key="description" value="This object represents a vertical line wich upper end is antialiased. It is a helper object for the top most main Fib object. The pixles for the x (first dimension) position go from x to x+1 . Fot this x position pixles the lines y_s = f_1( x ) = a_0 + a_1 * x and y_e = f_2( x ) = b_0 + b_1 * x are the borders."/>
						<pair key="inVar1::description" value="x (first dimension) position for the line"/>
						<pair key="inVar2::description" value="parameter a_0 of the first antialiased line function f_1 (the function has the greatest y (second dimension) value for the x position pixles)"/>
						<pair key="inVar3::description" value="parameter a_1 of the first antialiased line function f_1"/>
						<pair key="inVar4::description" value="maximal (integer) point for the x position pixles of the antialiased line f_1 (f_1_max)"/>
						<pair key="inVar5::description" value="minimal (integer) point for the x position pixles of the antialiased line f_1 (f_1_min)"/>
						<pair key="inVar6::description" value="parameter b_0 of the second line function f_2"/>
						<pair key="inVar7::description" value="parameter b_1 of the second line function f_2"/>
						<pair key="inVar8::description" value="point for the x position pixles of the line f_2"/>
						<pair key="subObj1::description" value="The points of the line. The subobject is called for every point on the line."/>
						<pair key="subObj1::outVar1::description" value="the position of the line point in dimension 2 (y) (the x position is known by the calling object)"/>
						<pair key="subObj1::outVar2::description" value="the antialising factor (1 is full transparent and 0 full opaque)"/>
					</optionalpart>
					<input_variables>
						<variable number="1" default="0"/>
						<variable number="2" default="0"/>
						<variable number="3" default="0"/>
						<variable number="4" default="0"/>
						<variable number="5" default="0"/>
						<variable number="6" default="0"/>
						<variable number="7" default="0"/>
						<variable number="8" default="0"/>
					</input_variables>
					<domains>
						<inVar number="1">
							<domainReference subdomain="1">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<inVar number="4">
							<domainReference subdomain="2">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<inVar number="5">
							<domainReference subdomain="2">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<inVar number="8">
							<domainReference subdomain="2">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<externSubobject number="1">
							<vector elements="2">
								<!--actually any numbers are possible;
									the next two lines are just a space holder-->
								<naturalNumberB bit="0" />
								<naturalNumberB bit="0" />
							</vector>
						</externSubobject>
						<externObject>
							<vector elements="4">
								<integer min="-905" max="-900" /><!--Identifier-->
								<integer min="4" max="6" /><!--number input values-->
								<integer min="1" max="1" /><!--number subobjects-->
								<integer min="1" max="1" /><!--number output values-->
							</vector>
						</externObject>
						<externObjectInput identifier="-900">
							<vector elements="4">
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
							</vector>
						</externObjectInput>
						<externObjectInput identifier="-901">
							<vector elements="4">
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
							</vector>
						</externObjectInput>
						<externObjectInput identifier="-905">
							<vector elements="6">
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
							</vector>
						</externObjectInput>
					</domains>
					<main_fib_object>
						<!-- ther are 2 possible basis case for the lines:
							(f_1: 1 and f_2: 2 ; y direction -> ; 1=by line f_1 touched pixle )
							case 1:
								11111111
								  2
							case 2:
								111
								      2
						This 2 cases results in 4 possible areas for the line:
							- top line f_1 without line f_2
							- line f_1 and f_2
							- bottom line f_1 without line f_2
							- between line f_1 and f_2, but no pixle touched by them
						-->
						<list>
							<!-- if f_2 < f_1_max draw a antialiased line for f_1 from f_1_max to max( f_2, f_1_min ) -->
							<if><!-- if f_2 < f_1_max -->
								<condition>
									<lo>
										<variable>8</variable>
										<variable>4</variable>
									</lo>
								</condition>
								<!-- draw a antialiased line for f_1 from f_1_max to max( f_2, f_1_min ) -->
								<function define_variable="9">
									<!-- max( f_2, f_1_min ) -->
									<subfunction>
										<max>
											<variable>8</variable>
											<variable>5</variable>
										</max>
									</subfunction>
									<area define_variable="10">
										<vector type="subarea">
											<variable>4</variable>
											<variable>9</variable>
										</vector>
										<!-- evalue area in pixles above line f_1 -->
										<obj identifier="-901">
											<vector type="externObjectInput">
												<variable>2</variable>
												<variable>3</variable>
												<variable>1</variable>
												<variable>10</variable>
											</vector>
											<subobject>
												<output_variables>
													<variable>11</variable>
												</output_variables>
												<subobject number="1">
													<vector type="externSubobject">
														<variable>10</variable>
														<variable>11</variable>
													</vector>
												</subobject>
											</subobject>
										</obj>
									</area>
								</function>
								<!-- else do nothing -->
								<point/>
							</if>
							<!-- if f_1_min < f_2 draw a antialiased line for f_1 and f_2 from f_2 - 1 to max( f_1_min, f_2_min ) -->
							<if><!-- if f_1_min < f_2 -->
								<condition>
									<lo>
										<variable>5</variable>
										<variable>8</variable>
									</lo>
								</condition>
								<!-- draw a antialiased line for f_1 and f_2 from f_2 - 1 to max( f_1_min, f_2_min ) -->
								<function define_variable="9">
									<!-- max( f_1_min, f_2_min ) -->
									<subfunction>
										<max>
											<variable>5</variable>
											<variable>9</variable>
										</max>
									</subfunction>
									<function define_variable="10">
										<!-- f_2 - 1  -->
										<subfunction>
											<sub>
												<variable>8</variable>
												<value>1</value>
											</sub>
										</subfunction>
										<area define_variable="11">
											<vector type="subarea">
												<variable>9</variable>
												<variable>10</variable>
											</vector>
											<!-- evalue area in pixles between (in f(y) = x = dim 2 direction) line f_1 and f_2 -->
											<obj identifier="-905">
												<vector type="externObjectInput">
													<variable>2</variable>
													<variable>3</variable>
													<variable>6</variable>
													<variable>7</variable>
													<variable>1</variable>
													<variable>11</variable>
												</vector>
												<subobject>
													<output_variables>
														<variable>12</variable>
													</output_variables>
													<function define_variable="13">
														<subfunction>
															<sub>
																<value>1</value>
																<variable>12</variable>
															</sub>
														</subfunction>
														<subobject number="1">
															<vector type="externSubobject">
																<variable>11</variable>
																<variable>13</variable>
															</vector>
														</subobject>
													</function>
												</subobject>
											</obj>
										</area>
									</function>
								</function>
								<!-- else do nothing -->
								<point/>
							</if>
							<!-- if f_1_min < f_2 draw a antialiased line for f_1 from f_1_min to min( f_1_max, f_2 - 1 ) -->
							<if><!-- if f_1_min < f_2 -->
								<condition>
									<lo>
										<variable>5</variable>
										<variable>8</variable>
									</lo>
								</condition>
								<!-- draw a antialiased line for f_1 from f_1_min to min( f_1_max, f_2 - 1 ) -->
								<function define_variable="9">
									<!-- min( f_1_max, f_2 - 1 ) -->
									<subfunction>
										<min>
											<variable>4</variable>
											<sub>
												<variable>8</variable>
												<value>1</value>
											</sub>
										</min>
									</subfunction>
									<area define_variable="10">
										<vector type="subarea">
											<variable>5</variable>
											<variable>9</variable>
										</vector>
										<!-- evalue area in pixles below line f_1 -->
										<obj identifier="-900">
											<vector type="externObjectInput">
												<variable>2</variable>
												<variable>3</variable>
												<variable>1</variable>
												<variable>10</variable>
											</vector>
											<subobject>
												<output_variables>
													<variable>11</variable>
												</output_variables>
												<subobject number="1">
													<vector type="externSubobject">
														<variable>10</variable>
														<variable>11</variable>
													</vector>
												</subobject>
											</subobject>
										</obj>
									</area>
								</function>
								<!-- else do nothing -->
								<point/>
							</if>
							<!-- if f_2 <= f_1_min - 1 draw line from f_1_min - 1 to f_2 (no antialising, line opaque) -->
							<function define_variable="9">
								<!-- f_1_min - 1 -->
								<subfunction>
									<sub>
										<variable>5</variable>
										<value>1</value>
									</sub>
								</subfunction>
								<if><!-- f_2 <= f_1_min - 1 -->
									<condition>
										<not>
											<gr>
												<variable>8</variable>
												<variable>9</variable>
											</gr>
										</not>
									</condition>
									<!-- draw line from f_1_min - 1 to f_2 (no antialising, line opaque) -->
									<area define_variable="11">
										<vector type="subarea">
											<variable>9</variable>
											<variable>8</variable>
										</vector>
										<subobject number="1">
											<vector type="externSubobject">
												<variable>11</variable>
												<value>0</value>
											</vector>
										</subobject>
									</area>
									<!-- else do nothing -->
									<point/>
								</if>
							</function>
						</list>
					</main_fib_object>
				</root>
			</sub_root>
			
			<sub_root identifier="2">
				<root>
					<optionalpart>
						<pair key="description" value="This object represents a vertical line wich lower end is antialiased. It is a helper object for the top most main Fib object. The pixles for the x (first dimension) position go from x to x+1 . Fot this x position pixles the lines y_s = f_1( x ) = a_0 + a_1 * x and y_e = f_2( x ) = b_0 + b_1 * x are the borders."/>
						<pair key="inVar1::description" value="x (first dimension) position for the line"/>
						<pair key="inVar2::description" value="parameter a_0 of the first line function f_1 (the function has the greatest y (second dimension) value for the x position pixles)"/>
						<pair key="inVar3::description" value="parameter a_1 of the first line function f_1"/>
						<pair key="inVar4::description" value="point for the x position pixles of the line f_1"/>
						<pair key="inVar5::description" value="parameter b_0 of the antialiased second line function f_2"/>
						<pair key="inVar6::description" value="parameter b_1 of the antialiased second line function f_2"/>
						<pair key="inVar7::description" value="maximal (integer) point for the x position pixles of the antialiased line f_2 (f_2_max)"/>
						<pair key="inVar8::description" value="minimal (integer) point for the x position pixles of the antialiased line f_2 (f_2_min)"/>
						<pair key="subObj1::description" value="The points of the line. The subobject is called for every point on the line."/>
						<pair key="subObj1::outVar1::description" value="the position of the line point in dimension 2 (y) (the x position is known by the calling object)"/>
						<pair key="subObj1::outVar2::description" value="the antialising factor (1 is full transparent and 0 full opaque)"/>
					</optionalpart>
					<input_variables>
						<variable number="1" default="0"/>
						<variable number="2" default="0"/>
						<variable number="3" default="0"/>
						<variable number="4" default="0"/>
						<variable number="5" default="0"/>
						<variable number="6" default="0"/>
						<variable number="7" default="0"/>
						<variable number="8" default="0"/>
					</input_variables>
					<domains>
						<inVar number="1">
							<domainReference subdomain="1">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<inVar number="4">
							<domainReference subdomain="2">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<inVar number="7">
							<domainReference subdomain="2">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<inVar number="8">
							<domainReference subdomain="2">
								<dim count="2">
									<dimension number="1" direction="anywhere"/>
									<dimension number="2" direction="anywhere"/>
								</dim>
							</domainReference>
						</inVar>
						<externSubobject number="1">
							<vector elements="2">
								<!--actually any numbers are possible;
									the next two lines are just a space holder-->
								<naturalNumberB bit="0" />
								<naturalNumberB bit="0" />
							</vector>
						</externSubobject>
						<externObject>
							<vector elements="4">
								<integer min="-905" max="-900" /><!--Identifier-->
								<integer min="4" max="6" /><!--number input values-->
								<integer min="1" max="1" /><!--number subobjects-->
								<integer min="1" max="1" /><!--number output values-->
							</vector>
						</externObject>
						<externObjectInput identifier="-900">
							<vector elements="4">
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
							</vector>
						</externObjectInput>
						<externObjectInput identifier="-901">
							<vector elements="4">
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
							</vector>
						</externObjectInput>
						<externObjectInput identifier="-905">
							<vector elements="6">
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
								<naturalNumber max="0" />
							</vector>
						</externObjectInput>
					</domains>
					<main_fib_object>
						<!-- ther are 2 possible basis case for the lines:
							(f_1: 1 and f_2: 2 ; y direction -> ; 1=by line f_1 touched pixle )
							case 1:
								1
								  222222222
							case 2:
								   1
								  22222
						This 2 cases results in 3 possible areas for the line:
							- line f_1 and f_2
							- bottom line f_2 without line f_1
							- between line f_1 and f_2, but no pixle touched by them
						-->
<!-- TODO var 5 deleted -->
						<list>
							<!-- if f_1 < f_2_max draw a antialiased line for f_1 and f_2 from f_2_max - 1 to max( f_1, f_2_min ) -->
							<if><!-- if f_1 < f_2_max -->
								<condition>
									<lo>
										<variable>4</variable>
										<variable>7</variable>
									</lo>
								</condition>
								<!-- draw a antialiased line for f_1 and f_2 from f_2_max - 1 to max( f_1, f_2_min ) -->
								<function define_variable="9">
									<!-- max( f_1, f_2_min ) -->
									<subfunction>
										<max>
											<variable>4</variable>
											<variable>8</variable>
										</max>
									</subfunction>
									<function define_variable="10">
										<!-- f_2_max - 1  -->
										<subfunction>
											<sub>
												<variable>7</variable>
												<value>1</value>
											</sub>
										</subfunction>
										<area define_variable="11">
											<vector type="subarea">
												<variable>9</variable>
												<variable>10</variable>
											</vector>
											<!-- evalue area in pixles between (in f(y) = x = dim 2 direction) line f_1 and f_2 -->
											<obj identifier="-905">
												<vector type="externObjectInput">
													<variable>2</variable>
													<variable>3</variable>
													<variable>5</variable>
													<variable>6</variable>
													<variable>1</variable>
													<variable>11</variable>
												</vector>
												<subobject>
													<output_variables>
														<variable>12</variable>
													</output_variables>
													<function define_variable="13">
														<subfunction>
															<sub>
																<value>1</value>
																<variable>12</variable>
															</sub>
														</subfunction>
														<subobject number="1">
															<vector type="externSubobject">
																<variable>11</variable>
																<variable>13</variable>
															</vector>
														</subobject>
													</function>
												</subobject>
											</obj>
										</area>
									</function>
								</function>
								<!-- else do nothing -->
								<point/>
							</if>
							<!-- if f_2_min < f_1 draw a antialiased line for f_2 from f_2_min to max( f_2_max, f_1 - 1 ) -->
							<if><!-- if f_2_min < f_1 -->
								<condition>
									<lo>
										<variable>8</variable>
										<variable>4</variable>
									</lo>
								</condition>
								<!-- draw a antialiased line for f_2 from f_2_min to max( f_2_max, f_1 - 1 ) -->
								<function define_variable="9">
									<!-- max( f_2_max, f_1 - 1 )) -->
									<subfunction>
										<min>
											<variable>7</variable>
											<sub>
												<variable>4</variable>
												<value>1</value>
											</sub>
										</min>
									</subfunction>
									<area define_variable="10">
										<vector type="subarea">
											<variable>8</variable>
											<variable>9</variable>
										</vector>
										<!-- evalue area in pixles below line f_2 -->
										<obj identifier="-900">
											<vector type="externObjectInput">
												<variable>5</variable>
												<variable>6</variable>
												<variable>1</variable>
												<variable>10</variable>
											</vector>
											<subobject>
												<output_variables>
													<variable>11</variable>
												</output_variables>
												<subobject number="1">
													<vector type="externSubobject">
														<variable>10</variable>
														<variable>11</variable>
													</vector>
												</subobject>
											</subobject>
										</obj>
									</area>
								</function>
								<!-- else do nothing -->
								<point/>
							</if>
							<!-- if f_2_max < f_1 - 1 draw line from f_1 - 1 to f_2_max + 1 (no antialising, line opaque) -->
							<function define_variable="9">
								<!-- f_1_min - 1 -->
								<subfunction>
									<sub>
										<variable>4</variable>
										<value>1</value>
									</sub>
								</subfunction>
								<if><!-- f_2_max < f_1 - 1 -->
									<condition>
										<lo>
											<variable>7</variable>
											<variable>9</variable>
										</lo>
									</condition>
									<!-- draw line from f_1 - 1 to f_2_max + 1 (no antialising, line opaque) -->
									<function define_variable="10">
										<!-- f_2_max + 1 -->
										<subfunction>
											<add>
												<variable>7</variable>
												<value>1</value>
											</add>
										</subfunction>
										<area define_variable="11">
											<vector type="subarea">
												<variable>9</variable>
												<variable>10</variable>
											</vector>
											<subobject number="1">
												<vector type="externSubobject">
													<variable>11</variable>
													<value>0</value>
												</vector>
											</subobject>
										</area>
									</function>
									<!-- else do nothing -->
									<point/>
								</if>
							</function>
						</list>
					</main_fib_object>
				</root>
			</sub_root>
		</sub_roots>
	</root>
</fib_object>