コード例 #1
0
ファイル: Api.cs プロジェクト: RCkanki/FreePIE
        public static TssError UpdateQuaternion(int deviceId, Quaternion quaternion)
        {
            uint timestamp;
            var quat = new float[4];
            TssStreamPacket packet;
            TssError error;
            if (isStreaming)
            {
                error = tss_getLastStreamData(deviceId, out packet, 16, out timestamp);
                quat[0] = packet.quat[0];
                quat[1] = packet.quat[1];
                quat[2] = packet.quat[2];
                quat[3] = packet.quat[3];
            }
            else
            {
                error = tss_getTaredOrientationAsQuaternion((uint)deviceId, quat, out timestamp); //xyzw
            }
            quaternion.Update(quat[3], quat[0], quat[1], quat[2], false);

            return error;
        }
コード例 #2
0
ファイル: Api.cs プロジェクト: Redacacia/FreePIE
        public static TssError UpdateSensor(uint deviceId, Quaternion quaternion, out byte button_state)
        {
            uint timestamp;
            var quat = new float[4];
            TssError error;
            if (stream_button_state)
            {
                TssStreamPacketQuatButton packet;
                error = tss_getLastStreamData(deviceId, out packet, 17, out timestamp);
                quat[0] = packet.quat[0];
                quat[1] = packet.quat[1];
                quat[2] = packet.quat[2];
                quat[3] = packet.quat[3];
                button_state = packet.button_state;
            }
            else
            {
                TssStreamPacketQuat packet;
                error = tss_getLastStreamData(deviceId, out packet, 16, out timestamp);
                quat[0] = packet.quat[0];
                quat[1] = packet.quat[1];
                quat[2] = packet.quat[2];
                quat[3] = packet.quat[3];
                button_state = 0;
            }
            quaternion.Update(quat[3], quat[0], quat[1], quat[2], false);

            return error;
        }