vr_init.monkey2 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #Import "<std>"
  2. #Import "<mojo3d-vr>"
  3. Using std..
  4. Using openvr..
  5. Using mojo3d..
  6. Function Main()
  7. Print "Hello from vr_init"
  8. Local _leftEyeMatrix:=New AffineMat4f
  9. Local _rightEyeMatrix:=New AffineMat4f
  10. Local _leftEyeFrustum:Rectf
  11. Local _rightEyeFrustum:Rectf
  12. local type:=VRApplication_Scene,error:HmdError
  13. Print "Calling VR_Init()..."
  14. VR_Init( Varptr error,type )
  15. If error<>VRInitError_None RuntimeError( "VR_Init error:"+VR_GetVRInitErrorAsSymbol( error ) )
  16. Print "VR_Init() Success!"
  17. _leftEyeMatrix=Cast<AffineMat4f>( VRSystem().GetEyeToHeadTransform( Eye_Left ) )
  18. _rightEyeMatrix=Cast<AffineMat4f>( VRSystem().GetEyeToHeadTransform( Eye_Right ) )
  19. VRSystem().GetProjectionRaw( Eye_Left,Varptr _leftEyeFrustum.min.x,Varptr _leftEyeFrustum.max.x,Varptr _leftEyeFrustum.min.y,Varptr _leftEyeFrustum.max.y )
  20. VRSystem().GetProjectionRaw( Eye_Right,Varptr _rightEyeFrustum.min.x,Varptr _rightEyeFrustum.max.x,Varptr _rightEyeFrustum.min.y,Varptr _rightEyeFrustum.max.y )
  21. Print "~nleftEyeMatrix:~n"+_leftEyeMatrix
  22. Print "~nrightEyeMatrix:~n"+_rightEyeMatrix
  23. Print "~nleftEyeFrustum:~n"+_leftEyeMatrix
  24. Print "~nleftEyeFrustum:~n"+_leftEyeMatrix
  25. Local frustum:=vr.Frustum( _leftEyeFrustum.min.x,_leftEyeFrustum.max.x,_leftEyeFrustum.min.y,_leftEyeFrustum.max.y,.1,100 )
  26. Local inv:=-frustum
  27. Print (inv * New Vec3f( 0,0,-1 )).z 'near?
  28. Print (inv * New Vec3f( 0,0,+1 )).z 'far?
  29. VR_Shutdown()
  30. Print "Later fiend"
  31. End