<?xml version="1.0" encoding="UTF-8" ?>
<sector name="RenderSector" >
	<vEye> {-1.0, 0.0, -2.0} </vEye>
	<vTarget> {0.0, 0.0, 0.0} </vTarget>
	<fHeading> 0.0 </fHeading> <!-- degrees -->
	<fPitch> 45.0 </fPitch> <!-- degrees -->
	<fZoom> 3.0 </fZoom>
	
	<fPitchIncrement> 5.0 </fPitchIncrement>
	<fHeadingIncrement> 5.0 </fHeadingIncrement>
	<fZoomIncrement> 0.25 </fZoomIncrement>
	
	<vViewport> {0.0, 0.0, 640.0, 480.0} </vViewport>
	<vUp> {0.0, 1.0, 0.0} </vUp>
	<fFOV> 90.0 </fFOV> <!-- horizontal -->
	<fClipNear> 0.1 </fClipNear>
	<fClipFar> 10000.0 </fClipFar>
	<tRenderInit prototype="Entity">
		<Init>
			<tInitOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tInitOrbitCam>
			<tInitCameras prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV> <!-- horizontal -->
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tInitCameras>
		</Init>
	</tRenderInit>
	
	<!-- Reactions -->
	<tReactionUp prototype="ReactionInput">
		<iSoughtInputs>btup</iSoughtInputs>
		<iMask>-1</iMask>
		
		<tUpdateCamera prototype="ActionList">
			<expr> fPitch = fPitch + fPitchIncrement </expr>
			<tRefreshOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tRefreshOrbitCam>
			<tRefreshCamera prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV>
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tRefreshCamera>
		</tUpdateCamera>
	</tReactionUp>
	
	<tReactionDown prototype="ReactionInput">
		<iSoughtInputs>btdn</iSoughtInputs>
		<iMask>-1</iMask>
		
		<tUpdateCamera prototype="ActionList">
			<expr> fPitch = fPitch - fPitchIncrement </expr>
			<tRefreshOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tRefreshOrbitCam>
			<tRefreshCamera prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV>
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tRefreshCamera>
		</tUpdateCamera>
	</tReactionDown>
	
	<tReactionLeft prototype="ReactionInput">
		<iSoughtInputs>btlt</iSoughtInputs>
		<iMask>-1</iMask>
		
		<tUpdateCamera prototype="ActionList">
			<expr> fHeading = fHeading + fHeadingIncrement </expr>
			<tRefreshOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tRefreshOrbitCam>
			<tRefreshCamera prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV>
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tRefreshCamera>
		</tUpdateCamera>
	</tReactionLeft>
	
	<tReactionF1 prototype="ReactionInput">
		<iSoughtInputs>btf1</iSoughtInputs>
		<iMask>-1</iMask>
		
		<tUpdateCamera prototype="ActionList">
			<expr> fZoom -= fZoomIncrement </expr>
			<tRefreshOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tRefreshOrbitCam>
			<tRefreshCamera prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV>
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tRefreshCamera>
		</tUpdateCamera>
	</tReactionF1>
	
	<tReactionF2 prototype="ReactionInput">
		<iSoughtInputs>btf2</iSoughtInputs>
		<iMask>-1</iMask>
		
		<tUpdateCamera prototype="ActionList">
			<expr> fZoom += fZoomIncrement </expr>
			<tRefreshOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tRefreshOrbitCam>
			<tRefreshCamera prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV>
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tRefreshCamera>
		</tUpdateCamera>
	</tReactionF2>
	
	<tReactionRight prototype="ReactionInput">
		<iSoughtInputs>btrt</iSoughtInputs>
		<iMask>-1</iMask>
		
		<tUpdateCamera prototype="ActionList">
			<expr> fHeading = fHeading - fHeadingIncrement </expr>
			<tRefreshOrbitCam prototype="ActionSetOrbitCamera">
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rHeading> fHeading </rHeading>
				<rPitch> fPitch </rPitch>
				<rZoom> fZoom </rZoom>
			</tRefreshOrbitCam>
			<tRefreshCamera prototype="ActionSetCamera">
				<rViewport> vViewport </rViewport>
				<rEye> vEye </rEye>
				<rTarget> vTarget </rTarget>
				<rUp>vUp </rUp>
				<rFOV> fFOV </rFOV>
				<rClipNear> fClipNear </rClipNear>
				<rClipFar> fClipFar </rClipFar>
			</tRefreshCamera>
		</tUpdateCamera>
	</tReactionRight>
	
	<tRenderScreen prototype="Entity">
		<pVertexBuffer>NULL</pVertexBuffer>
		<pXFormedVertexBuffer>NULL</pXFormedVertexBuffer>
		<pIndexBuffer>NULL</pIndexBuffer>
		<sFilename>teapot.obj</sFilename>
		<iNumVertices>0</iNumVertices>
		<iNumFaces>0</iNumFaces>
		<iUseIndexBuffer>true</iUseIndexBuffer>
		<vScale> {1.0, 1.0, 1.0} </vScale>
		<vRotate> {0.0, 0.0, 1.0, 0.0} </vRotate>
		<vTranslate> {0.0, 0.0, 0.0} </vTranslate>
		<Init>
			<tCreateGeometry prototype="ActionCreateGeometryBuffers">
				<rVertexBuffer>pVertexBuffer</rVertexBuffer>	
				<rXFormedVertexBuffer>pXFormedVertexBuffer</rXFormedVertexBuffer>
				<rIndexBuffer>pIndexBuffer</rIndexBuffer>
				<rFilename>sFilename</rFilename>
				<rNumVertices>iNumVertices</rNumVertices>
				<rNumFaces>iNumFaces</rNumFaces>
				<rUseIndexBuffer>iUseIndexBuffer</rUseIndexBuffer>
			</tCreateGeometry>
		</Init>
		<Render>
			<tRenderGeometry prototype="ActionRenderGeometry">
				<rVertexBuffer>pVertexBuffer</rVertexBuffer>
				<rXFormedVertexBuffer>pXFormedVertexBuffer</rXFormedVertexBuffer>
				<rIndexBuffer>pIndexBuffer</rIndexBuffer>
				<rFilename>sFilename</rFilename>
				<rNumVertices>iNumVertices</rNumVertices>
				<rNumFaces>iNumFaces</rNumFaces>
				<rUseIndexBuffer>iUseIndexBuffer</rUseIndexBuffer>
				<rScale>vScale</rScale>
				<rRotate>vRotate</rRotate>
				<rTranslate>vTranslate</rTranslate>
			</tRenderGeometry>
		</Render>
	</tRenderScreen>
</sector>

