Example #1
0
        public void SetHandPresence(Hand p_hand, bool p_state, GlmSharp.vec3 p_tipPos)
        {
            switch (p_hand)
            {
            case Hand.Left:
            {
                m_leftHandOverlay.SetHandPresence(p_state, p_tipPos);

                Valve.VR.HmdMatrix34_t l_matrix = new Valve.VR.HmdMatrix34_t();
                (m_headTransform * GlmSharp.mat4.Translate(p_tipPos)).Convert(ref l_matrix);
                Valve.VR.OpenVR.Overlay.SetOverlayTransformAbsolute(m_leftFingerOverlay, Valve.VR.ETrackingUniverseOrigin.TrackingUniverseRawAndUncalibrated, ref l_matrix);
            }
            break;

            case Hand.Right:
            {
                m_rightHandOverlay.SetHandPresence(p_state, p_tipPos);

                Valve.VR.HmdMatrix34_t l_matrix = new Valve.VR.HmdMatrix34_t();
                (m_headTransform * GlmSharp.mat4.Translate(p_tipPos)).Convert(ref l_matrix);
                Valve.VR.OpenVR.Overlay.SetOverlayTransformAbsolute(m_rightFingerOverlay, Valve.VR.ETrackingUniverseOrigin.TrackingUniverseRawAndUncalibrated, ref l_matrix);
            }
            break;
            }
        }
Example #2
0
        public static void Convert(this GlmSharp.mat4 p_src, ref Valve.VR.HmdMatrix34_t p_dst)
        {
            p_dst.m0 = p_src.m00;
            p_dst.m1 = p_src.m10;
            p_dst.m2 = p_src.m20;
            p_dst.m3 = p_src.m30;

            p_dst.m4 = p_src.m01;
            p_dst.m5 = p_src.m11;
            p_dst.m6 = p_src.m21;
            p_dst.m7 = p_src.m31;

            p_dst.m8  = p_src.m02;
            p_dst.m9  = p_src.m12;
            p_dst.m10 = p_src.m22;
            p_dst.m11 = p_src.m32;
        }
Example #3
0
        public static void Convert(this Valve.VR.HmdMatrix34_t p_src, ref GlmSharp.mat4 p_dst)
        {
            p_dst.m00 = p_src.m0;
            p_dst.m01 = p_src.m4;
            p_dst.m02 = p_src.m8;
            p_dst.m03 = 0f;

            p_dst.m10 = p_src.m1;
            p_dst.m11 = p_src.m5;
            p_dst.m12 = p_src.m9;
            p_dst.m13 = 0f;

            p_dst.m20 = p_src.m2;
            p_dst.m21 = p_src.m6;
            p_dst.m22 = p_src.m10;
            p_dst.m23 = 0f;

            p_dst.m30 = p_src.m3;
            p_dst.m31 = p_src.m7;
            p_dst.m32 = p_src.m11;
            p_dst.m33 = 1f;
        }
Example #4
0
        public Pose(Valve.VR.HmdMatrix34_t pose)
        {
            var m = Matrix4x4.identity;

            m[0, 0] = pose.m0;
            m[0, 1] = pose.m1;
            m[0, 2] = -pose.m2;
            m[0, 3] = pose.m3;

            m[1, 0] = pose.m4;
            m[1, 1] = pose.m5;
            m[1, 2] = -pose.m6;
            m[1, 3] = pose.m7;

            m[2, 0] = -pose.m8;
            m[2, 1] = -pose.m9;
            m[2, 2] = pose.m10;
            m[2, 3] = -pose.m11;

            pos = m.GetPosition();
            rot = m.GetRotation();
        }