Esempio n. 1
0
 public void Clear()
 {
     this.m_pVRSystem          = null;
     this.m_pVRChaperone       = null;
     this.m_pVRChaperoneSetup  = null;
     this.m_pVRCompositor      = null;
     this.m_pVROverlay         = null;
     this.m_pVRRenderModels    = null;
     this.m_pVRExtendedDisplay = null;
     this.m_pVRSettings        = null;
     this.m_pVRApplications    = null;
 }
Esempio n. 2
0
	public static bool GetBounds( Size size, ref HmdQuad_t pRect )
	{
		if (size == Size.Calibrated)
		{
			var error = EVRInitError.None;
			if (!SteamVR.active)
			{
				OpenVR.Init(ref error, EVRApplicationType.VRApplication_Other);
				if (error != EVRInitError.None)
					return false;
			}

			var pChaperone = OpenVR.GetGenericInterface(OpenVR.IVRChaperone_Version, ref error);
			if (pChaperone == System.IntPtr.Zero || error != EVRInitError.None)
			{
				if (!SteamVR.active)
					OpenVR.Shutdown();
				return false;
			}

			var chaperone = new CVRChaperone(pChaperone);

			bool success = chaperone.GetPlayAreaRect( ref pRect );
			if (!success)
				Debug.LogWarning("Failed to get Calibrated Play Area bounds!  Make sure you have tracking first, and that your space is calibrated.");

			if (!SteamVR.active)
				OpenVR.Shutdown();

			return success;
		}
		else
		{
			try
			{
				var str = size.ToString().Substring(1);
				var arr = str.Split(new char[] {'x'}, 2);
				// convert to half size in meters (from cm)
				var x = float.Parse(arr[0]) / 200;
				var z = float.Parse(arr[1]) / 200;
				pRect.vCorners = new HmdVector3_t[ 4 ];
				pRect.vCorners[ 0 ].v = new float[ 3 ] { x, 0, z };
				pRect.vCorners[ 1 ].v = new float[ 3 ] { x, 0, -z };
				pRect.vCorners[ 2 ].v = new float[ 3 ] { -x, 0, -z };
				pRect.vCorners[ 3 ].v = new float[ 3 ] { -x, 0, z };
				return true;
			}
			catch {}
		}

		return false;
	}
Esempio n. 3
0
 public CVRChaperone VRChaperone()
 {
     this.CheckClear();
     if (this.m_pVRChaperone == null)
     {
         EVRInitError eVRInitError     = EVRInitError.None;
         IntPtr       genericInterface = OpenVRInterop.GetGenericInterface("FnTable:IVRChaperone_003", ref eVRInitError);
         if (genericInterface != IntPtr.Zero && eVRInitError == EVRInitError.None)
         {
             this.m_pVRChaperone = new CVRChaperone(genericInterface);
         }
     }
     return(this.m_pVRChaperone);
 }
Esempio n. 4
0
	IEnumerator UpdateBounds()
	{
		GetComponent<MeshFilter>().mesh = null; // clear existing

		var vr = SteamVR.instance;
		if (vr == null)
			yield break;

		var error = EVRInitError.None;
		var pChaperone = OpenVR.GetGenericInterface(OpenVR.IVRChaperone_Version, ref error);
		if (pChaperone == System.IntPtr.Zero || error != EVRInitError.None)
			yield break;

		var chaperone = new CVRChaperone(pChaperone);
		while (chaperone.GetCalibrationState() != ChaperoneCalibrationState.OK)
			yield return null;

		BuildMesh();
	}
Esempio n. 5
0
		public CVRChaperone VRChaperone()
		{
			CheckClear();
			if (m_pVRChaperone == null)
			{
				var eError = EVRInitError.None;
				var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRChaperone_Version, ref eError);
				if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
					m_pVRChaperone = new CVRChaperone(pInterface);
			}
			return m_pVRChaperone;
		}
Esempio n. 6
0
 public void Clear()
 {
     m_pVRSystem = null;
     m_pVRChaperone = null;
     m_pVRChaperoneSetup = null;
     m_pVRCompositor = null;
     m_pVROverlay = null;
     m_pVRRenderModels = null;
     m_pVRExtendedDisplay = null;
     m_pVRSettings = null;
     m_pVRApplications = null;
 }
Esempio n. 7
0
 public CVRChaperone VRChaperone()
 {
     this.CheckClear();
     if (this.m_pVRChaperone == null)
     {
         EVRInitError eVRInitError = EVRInitError.None;
         IntPtr genericInterface = OpenVRInterop.GetGenericInterface("FnTable:IVRChaperone_003", ref eVRInitError);
         if (genericInterface != IntPtr.Zero && eVRInitError == EVRInitError.None)
         {
             this.m_pVRChaperone = new CVRChaperone(genericInterface);
         }
     }
     return this.m_pVRChaperone;
 }