private void ThreadLoop() { while (m_IsRunning) { if (m_RudderEnabled) { if (m_VridgeRemote.Head != null) { var hmd = NoloClientLib.GetHMDData(); var pos = hmd.HMDPosition; if (m_RotationEnabled) { var rot = hmd.HMDRotation; m_VridgeRemote.Head.SetRotationAndPosition(0, 0, 0, pos.x, pos.y, pos.z); } else { m_VridgeRemote.Head.SetPosition(pos.x, pos.y, pos.z); } } if (m_VridgeRemote.Controller != null) { UpdateController(true); UpdateController(false); } } Thread.Sleep(10); } }
public static void Update() { if (Time.frameCount != preFrame) { preFrame = Time.frameCount; noloData = NoloClientLib.GetNoloData(); } }
public void StartNoloDevice() { var path = @"NoloServer\NoloServer.exe"; if (File.Exists(path)) { NoloClientLib.StartNoloServer(@"NoloServer\NoloServer.exe"); } NoloClientLib.OpenNoloZeroMQ(); }
private void Recenter() { var pos = new NVector3() { x = 0, y = m_HeadHeight, z = 0 }; NoloClientLib.SetHmdCenter(ref pos); }
public override void DisconnectDevice() { Debug.Log("NoloVR_WinPlayform DisconnectDevice"); playformError = NoloError.DisConnect; try { NoloClientLib.CloseNoloZeroMQ(); } catch (Exception ex) { Debug.Log("NoloVR_WinPlayform DisconnectDevice" + ex.Message); } }
private void InitCallBacks() { _OnNoloZqmStart = new pfnVoidCallBack(OnZmqConnected); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnZMQConnected, Marshal.GetFunctionPointerForDelegate(_OnNoloZqmStart)); _OnNoloZqmFinished = new pfnVoidCallBack(OnZmqDisConnected); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnZMQDisConnected, Marshal.GetFunctionPointerForDelegate(_OnNoloZqmFinished)); _OnNoloData = new pfnDataCallBack(OnNewData); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnNewData, Marshal.GetFunctionPointerForDelegate(_OnNoloData)); _OnNoloKeyEvent = new pfnKeyEvent(OnKeyDbClicked); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnButtonDoubleClicked, Marshal.GetFunctionPointerForDelegate(_OnNoloKeyEvent)); _OnNoloDevVersion = new pfnVoidIntCallBack(OnNoloDevVersion); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnNoloDevVersion, Marshal.GetFunctionPointerForDelegate(_OnNoloDevVersion)); }
private void UpdateController(bool left) { var controller = left ? NoloClientLib.GetLeftControllerData() : NoloClientLib.GetRightControllerData(); var position = controller.Position; var rotation = controller.Rotation; m_VridgeRemote.Controller.SetControllerState( left ? 0 : 1, HeadRelation.IsInHeadSpace, left ? HandType.Left : HandType.Right, new Quaternion(rotation.x, rotation.y, rotation.z, rotation.w), new Vector3(position.x, position.y, position.z), controller.TouchAxis.x, controller.TouchAxis.y, (controller.Buttons & (uint)EControlerButtonType.eTriggerBtn) > 0 ? 1 : 0, (controller.Buttons & (uint)EControlerButtonType.eMenuBtn) > 0, (controller.Buttons & (uint)EControlerButtonType.eSystemBtn) > 0, (controller.Buttons & (uint)EControlerButtonType.eTriggerBtn) > 0, (controller.Buttons & (uint)EControlerButtonType.eGripBtn) > 0, (controller.Buttons & (uint)EControlerButtonType.ePadTouch) > 0, controller.Touched > 0); }
public void Start() { Stop(); var path = @"NoloServer\NoloServer.exe"; //if (File.Exists(path)) //NoloClientLib.StartNoloServer(@"NoloServer\NoloServer.exe"); m_IsRunning = NoloClientLib.OpenNoloZeroMQ(); if (m_IsRunning) { m_Thread = new Thread(new ThreadStart(ThreadLoop)); m_Thread.Start(); StatusLabel.Text = "Started"; } else { StatusLabel.Text = "Not Started"; } }
public override bool InitDevice() { if (playformError == NoloError.None) { return(true); } try { Debug.Log("NoloVR_WinPlayform InitDevice"); disconn = new pfnVoidCallBack(DisConnectedCallBack); conn = new pfnVoidCallBack(ReconnectDeviceCallBack); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnZMQDisConnected, Marshal.GetFunctionPointerForDelegate(disconn)); NoloClientLib.RegisterCallBack(ECallBackTypes.eOnZMQConnected, Marshal.GetFunctionPointerForDelegate(conn)); NoloClientLib.OpenNoloZeroMQ(); playformError = NoloError.None; } catch (Exception ex) { Debug.Log("NoloVR_WinPlayform InitDevice:" + ex.Message); playformError = NoloError.ConnectFail; return(false); } return(true); }
public void StartNoloDevice() { //NoloClientLib.StartNoloServer(@"NoloServer\NoloServer.exe"); NoloClientLib.OpenNoloZeroMQ(); }
public static void TriggerHapticPulse(ENoloDeviceType deviceType, int intensity) { NoloClientLib.TriggerHapticPulse(deviceType, intensity); }