dim avx, avy, AvHeight, avYaw, avPitch, AvROLL, AvCAMERA_YAW, AvCAMERA_PITCH,DeltaVitesse,PlaneGroundH
dim ScreenLeft, ScreenTop, ScreenWidth, ScreenHeight, WX, WY, WH, ObjectID, ObjType
dim errorTLF
dim errorInterface
dim errorSky
dim Dist
dim test_vb
test_vb=1

' Fonction recuperant les coordonnees de la camera
Sub UpdatePosition()
	' plane.UpdateData 1
	plane.GetPositionEx avx, avy, AvHeight, avYaw, avPitch, AvROLL, AvCAMERA_YAW, AvCAMERA_PITCH, 8192
End Sub

' Fonction recuperant les coordonnees de la camera par rapport au sol
Sub GetHeightAboveGround()
	' plane.UpdateData 1
	plane.GetPositionEx avx, avy, AvHeight, avYaw, avPitch, AvROLL, AvCAMERA_YAW, AvCAMERA_PITCH, 4096
End Sub

Sub GetBottomLeftInfluence()
	ObjType = 0
	render.GetRenderRect ScreenLeft, ScreenTop, ScreenWidth, ScreenHeight 
	render.ScreenToWorld ScreenLeft, ScreenTop, ObjType, WX, WH, WY, ObjectID 
	If ObjType<>32 then 
		errorSky = false
	Else
		errorSky = true
	End If
End Sub

Sub GetTopRightInfluence()
	ObjType = 0
	render.GetRenderRect ScreenLeft, ScreenTop, ScreenWidth, ScreenHeight
	' Oblige de faire "-1" sur les deux Screens car sinon WX et WY valent 0
	render.ScreenToWorld ScreenWidth - 1, ScreenHeight - 1, ObjType, WX, WH, WY, ObjectID 
	If ObjType<>32 then 
		errorSky = false
	Else
		errorSky = true
	End If
End Sub

Sub InfosTLF()
	ObjType = 0
	render.GetRenderRect ScreenLeft, ScreenTop, ScreenWidth, ScreenHeight 
	render.ScreenToWorld ScreenWidth/2 , ScreenHeight/2 , ObjType , WX,WH,WY, ObjectID 
	If ObjType<>32 then 
		errorTLF = false
		' plane.GetPositionEx avx, avy, AvHeight, avYaw, avPitch, AvROLL, AvCAMERA_YAW, AvCAMERA_PITCH, 4096
	Else
		errorTLF = true
	End If
End Sub

Sub Inclinaison()
	ObjType = 0
	render.GetRenderRect ScreenLeft, ScreenTop, ScreenWidth, ScreenHeight 
	render.ScreenToWorld ScreenWidth/2 , ScreenHeight/2 , ObjType , WX,WH,WY, ObjectID 
	If (ObjType <> 32) Then
		errorSky = false
		plane.GetPositionEx avx, avy, AvHeight, avYaw, avPitch, AvROLL, AvCAMERA_YAW, AvCAMERA_PITCH, 8192
	Else
		errorSky = true
	End If
End Sub

' Fonction permettant de voler en arc par rapport au centre de l ecran 3D
Sub VolerEnArc()
	ObjType = 0
	' Recuperation des dimensions de la fenetre 3D
	render.GetRenderRect ScreenLeft, ScreenTop, ScreenWidth, ScreenHeight
	' recuperation des coordonnees terrain
	render.ScreenToWorld ScreenWidth/2, ScreenHeight/2, ObjType, WX, WH, WY, ObjectID
	If (ObjType <> 32) Then
		errorSky = false
	Else
		errorSky = true
	End If
End Sub


' TODO
Sub TE_OnFrame() 
	On Error Resume Next
	' Err.Raise 6
	If (Err.Number<>0) Then
	 MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
	 Err.Clear
	End If
End Sub

' Permet de ne pas afficher des informations sur la visualisation 3D
Sub TE_OnTerraExplorerMessage(TEMessageID,SourceObjectID,pbHandled) 
	If (SourceObjectID = "MessageBarText") Then 
		pbHandled = 1 
	End If
End Sub


' La fonction "dist" se desactive par un deuxieme clic droit
' cette fonction permet d empecher la desactivation de l outil "dist"
Sub TE_OnRButtonDown(Flags,X,Y,pbHandled)
	pbHandled = 1
	If (bool_dist) Then
		If (clicDroit=0) Then
			clicDroit=1
			pbHandled = 0
		Else
			pbHandled = 1
		End If
	End If
End Sub


' quand on clique gauche on remet a 0 le compteur de clicdroit qui est utilise pour la desactivation de l outil
Sub TE_OnLButtonDown(Flags,X,Y,pbHandled)
	If (bool_dist) Then
		clicDroit=0
		pbHandled = 0
	End If
End Sub

' quand on double clic sur le bouton gauche de la souris
Sub TE_OnLButtonDblClk(Flags,X,Y,pbHandled)
	volersVersInactif = false
	dblclkactif = true
End Sub


'Desactive les touches F9(=120), F10(=121), F11(=122) et Echap(=27)
Sub terra_OnKeyboardMessage(Message,KeyCode,KeyData,pbHandled)
	If(KeyCode=120 Or KeyCode=121 Or KeyCode=122 Or KeyCode=27) Then
		pbHandled=1
	End If
end Sub
