Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public static void Update()
 {
     if (Time.frameCount != preFrame)
     {
         preFrame = Time.frameCount;
         noloData = NoloClientLib.GetNoloData();
     }
 }
Ejemplo n.º 3
0
        public void StartNoloDevice()
        {
            var path = @"NoloServer\NoloServer.exe";

            if (File.Exists(path))
            {
                NoloClientLib.StartNoloServer(@"NoloServer\NoloServer.exe");
            }

            NoloClientLib.OpenNoloZeroMQ();
        }
Ejemplo n.º 4
0
        private void Recenter()
        {
            var pos = new NVector3()
            {
                x = 0,
                y = m_HeadHeight,
                z = 0
            };

            NoloClientLib.SetHmdCenter(ref pos);
        }
Ejemplo n.º 5
0
 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);
     }
 }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
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";
            }
        }
Ejemplo n.º 9
0
 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);
 }
Ejemplo n.º 10
0
 public void StartNoloDevice()
 {
     //NoloClientLib.StartNoloServer(@"NoloServer\NoloServer.exe");
     NoloClientLib.OpenNoloZeroMQ();
 }
Ejemplo n.º 11
0
 public static void TriggerHapticPulse(ENoloDeviceType deviceType, int intensity)
 {
     NoloClientLib.TriggerHapticPulse(deviceType, intensity);
 }