<!-- In this file a ray is constructed by reflecting another ray about a line,
     and then its properties are extracted: starting point, vector, carrying line.
     It still has not been run on any DGS, so it may contain bugs. -->
<construction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/intergeo.xsd">
	<elements>
		<point id="L1">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>-5.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="L2">
			<homogeneous_coordinates>
				<double>0.0</double>
				<double>5.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<line id="l">
			<homogeneous_coordinates>
				<double>1.0</double>
				<double>0.0</double>
				<double>0.0</double>
			</homogeneous_coordinates>
		</line>
		<point id="P">
			<homogeneous_coordinates>
				<double>1.0</double>
				<double>1.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<point id="Q">
			<homogeneous_coordinates>
				<double>2.0</double>
				<double>2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<ray id="r">
			<homogeneous_coordinates>
				<double>1.0</double>
				<double>1.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
			<homogeneous_coordinates>
				<double>2.0</double>
				<double>2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>			
		</ray>
		<ray id="r2">
			<homogeneous_coordinates>
				<double>-1.0</double>
				<double>1.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
			<homogeneous_coordinates>
				<double>-2.0</double>
				<double>2.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>			
		</ray>
		<vector id="v">
			<homogeneous_coordinates>
				<double>-1.0</double>
				<double>1.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>	
		</vector>
		<point id="sp">
			<homogeneous_coordinates>
				<double>-1.0</double>
				<double>1.0</double>
				<double>1.0</double>
			</homogeneous_coordinates>
		</point>
		<line id="cl">
			<homogeneous_coordinates>
				<double>1.0</double>
				<double>1.0</double>
				<double>0.0</double>
			</homogeneous_coordinates>
		</line>
	</elements>
	<constraints>
		<free_point>
			<point out="true">L1</point>
		</free_point>
		<free_point>
			<point out="true">L2</point>
		</free_point>
		<line_through_two_points>
			<line out="true">l</line>
			<point>L1</point>
			<point>L2</point>
		</line_through_two_points>
		<free_point>
			<point out="true">P</point>
		</free_point>
		<free_point>
			<point out="true">Q</point>
		</free_point>
		<ray_from_point_through_point>
			<ray out="true">r</ray>
			<point>P</point>
			<point>Q</point>
		</ray_from_point_through_point>
		<symmetry_by_line>
			<ray out="true">r2</ray>
			<ray>r</ray>
			<line>l</line>
		</symmetry_by_line>
		<vector_of_ray>
			<vector out="true">v</vector>
			<ray>r2</ray>
		</vector_of_ray>
		<starting_point_of_ray>
			<point out="true">sp</point>
			<ray>r2</ray>
		</starting_point_of_ray>
		<carrying_line_of_ray>
			<line out="true">cl</line>
			<ray>r2</ray>
		</carrying_line_of_ray>
	</constraints>
</construction>

