<!-- This example ilustrates the use of the extended intersection attribute.
     Segments u1 and u2 are intersected "as usual"; whether to extend the segments 
         by default is DGS dependent, and so the intersection i3 may be computed or not.
     Segments e1 and e2 are intersected with 'extended="true"', and so the 
         intersection i1 should always be displayed.
     Segments e1 and u2 are intersected after e1 is extended, so that the intersection
         must be shown at least when it falls on u2; each DGS is free to decide whether
         to extend u2.
     Segments u1 and e2 are intersected with e2 explicitly extended and u1 
         explicityl not extended ('extended="false"'). Hence, the intersection i4 
         must be displayed if and only if it falls within u1.
-->
<construction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/intergeo.xsd">
	<elements>
		<point id="p1">
			<homogeneous_coordinates>
				<double>-2.0</double>
				<double>0.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p2">
			<homogeneous_coordinates>
				<double>8.0</double>
				<double>0.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p3">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>-2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p4">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>8.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p5">
			<homogeneous_coordinates>
				<double>2.0</double>
				<double>6.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p6">
			<homogeneous_coordinates>
				<double>4.0</double>
				<double>6.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p7">
			<homogeneous_coordinates>
				<double>6.0</double>
				<double>4.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="p8">
			<homogeneous_coordinates>
				<double>6.0</double>
				<double>2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<line_segment id="u1">
			<homogeneous_coordinates>
				<double>-2.0</double>
				<double>0.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
			<homogeneous_coordinates>
				<double>8.0</double>
				<double>0.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</line_segment>
		<line_segment id="u2">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>-2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>8.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</line_segment>
		<line_segment id="e1">
			<homogeneous_coordinates>
				<double>2.0</double>
				<double>6.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
			<homogeneous_coordinates>
				<double>4.0</double>
				<double>6.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</line_segment>
		<line_segment id="e2">
			<homogeneous_coordinates>
				<double>6.0</double>
				<double>4.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
			<homogeneous_coordinates>
				<double>6.0</double>
				<double>2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</line_segment>
		<point id="i1">
			<homogeneous_coordinates>
				<double>6.0</double>
				<double>6.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="i2">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>6.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="i3">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>0.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="i4">
			<homogeneous_coordinates>
				<double>6.0</double>
				<double>0.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
	</elements>
	<constraints>
		<free_point>
			<point out="true">p1</point>
		</free_point>
		<free_point>
			<point out="true">p2</point>
		</free_point>
		<free_point>
			<point out="true">p3</point>
		</free_point>
		<free_point>
			<point out="true">p4</point>
		</free_point>
		<free_point>
			<point out="true">p5</point>
		</free_point>
		<free_point>
			<point out="true">p6</point>
		</free_point>
		<free_point>
			<point out="true">p7</point>
		</free_point>
		<free_point>
			<point out="true">p8</point>
		</free_point>
		<line_segment_by_points>
			<line_segment out="true">u1</line_segment>
			<point>p1</point>
			<point>p2</point>
		</line_segment_by_points>
		<line_segment_by_points>
			<line_segment out="true">u2</line_segment>
			<point>p3</point>
			<point>p4</point>
		</line_segment_by_points>
		<line_segment_by_points>
			<line_segment out="true">e1</line_segment>
			<point>p5</point>
			<point>p6</point>
		</line_segment_by_points>
		<line_segment_by_points>
			<line_segment out="true">e2</line_segment>
			<point>p7</point>
			<point>p8</point>
		</line_segment_by_points>
		<point_intersection_of_two_lines>
			<point out="true">i1</point>
			<line extended="true">e1</line>
			<line extended="true">e2</line>
		</point_intersection_of_two_lines>
		<point_intersection_of_two_lines>
			<point out="true">i2</point>
			<line extended="true">e1</line>
			<line>u2</line>
		</point_intersection_of_two_lines>
		<point_intersection_of_two_lines>
			<point out="true">i3</point>
			<line>u1</line>
			<line>u2</line>
		</point_intersection_of_two_lines>
		<point_intersection_of_two_lines>
			<point out="true">i4</point>
			<line extended="false">u1</line>
			<line extended="true">e2</line>
		</point_intersection_of_two_lines>
	</constraints>
</construction>

