Exemple #1
0
        public void addPose(string gameObjectName, float time, HmdMatrix34_t trackingInfo, VRControllerState_t controllerState)
        {
            if (!started)
            {
                return;
            }

            bool populated = false;

            while (!populated)
            {
                if (currentKeyframe == null || time > currentKeyframe.time + RECORD_FREQUENCY)
                {
                    if (currentKeyframe == null)
                    {
                        currentKeyframe = new VrKeyframe();
                    }
                    currentKeyframe.time            = currentKeyframe == null ? 0 : currentKeyframe.time + RECORD_FREQUENCY;
                    currentKeyframe.m0              = trackingInfo.m0;
                    currentKeyframe.m1              = trackingInfo.m1;
                    currentKeyframe.m2              = trackingInfo.m2;
                    currentKeyframe.m3              = trackingInfo.m3;
                    currentKeyframe.m4              = trackingInfo.m4;
                    currentKeyframe.m5              = trackingInfo.m5;
                    currentKeyframe.m6              = trackingInfo.m6;
                    currentKeyframe.m7              = trackingInfo.m7;
                    currentKeyframe.m8              = trackingInfo.m8;
                    currentKeyframe.m9              = trackingInfo.m9;
                    currentKeyframe.m10             = trackingInfo.m10;
                    currentKeyframe.m11             = trackingInfo.m11;
                    currentKeyframe.controllerState = controllerState;
                    populated = true;

                    String str = String.Format("({13}) # ({0}) # {1}/{2}/{3}/{4}/{5}/{6}/{7}/{8}/{9}/{10}/{11}/{12}/{13}/{14}/{15}/{16}/{17}/{18}/{19}/{20}/{21}/{22}/{23}/{24}/{25}",
                                               currentKeyframe.time,
                                               currentKeyframe.m0,
                                               currentKeyframe.m1,
                                               currentKeyframe.m2,
                                               currentKeyframe.m3,
                                               currentKeyframe.m4,
                                               currentKeyframe.m5,
                                               currentKeyframe.m6,
                                               currentKeyframe.m7,
                                               currentKeyframe.m8,
                                               currentKeyframe.m9,
                                               currentKeyframe.m10,
                                               currentKeyframe.m11,

                                               currentKeyframe.controllerState.ulButtonPressed,
                                               currentKeyframe.controllerState.ulButtonTouched,
                                               currentKeyframe.controllerState.rAxis0.x,
                                               currentKeyframe.controllerState.rAxis0.y,
                                               currentKeyframe.controllerState.rAxis1.x,
                                               currentKeyframe.controllerState.rAxis1.y,
                                               currentKeyframe.controllerState.rAxis2.x,
                                               currentKeyframe.controllerState.rAxis2.y,
                                               currentKeyframe.controllerState.rAxis3.x,
                                               currentKeyframe.controllerState.rAxis3.y,
                                               currentKeyframe.controllerState.rAxis4.x,
                                               currentKeyframe.controllerState.rAxis4.y,

                                               gameObjectName
                                               );
                    trackerArray.Add(str);
                }
                else
                {
                    populated = true;
                }
            }
        }
Exemple #2
0
        private void load(string trackerDataFile)
        {
            if (new FileInfo(trackerDataFile).Exists == false)
            {
                return;
            }

            using (FileStream fs = File.OpenRead(trackerDataFile))
            {
                using (StreamReader sr = new StreamReader(fs))
                {
                    String line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        String[] parts = line.Split('#');
                        if (parts[0].StartsWith("("))
                        {
                            VrKeyframe frame = new VrKeyframe();
                            frame.name = parts[0].Trim();
                            if (frame.name.StartsWith("(") && frame.name.EndsWith(")"))
                            {
                                frame.name = frame.name.Substring(1, frame.name.Length - 2);
                            }

                            String timeStr = parts[1].Trim();
                            if (timeStr.StartsWith("(") && timeStr.EndsWith(")"))
                            {
                                timeStr = timeStr.Substring(1, timeStr.Length - 2);
                            }

                            frame.time = Convert.ToSingle(timeStr);
                            if (clipDuration < frame.time)
                            {
                                clipDuration = frame.time;
                            }

                            String[] mBits = parts[2].Trim().Split('/');
                            frame.m0  = Convert.ToSingle(mBits[0]);
                            frame.m1  = Convert.ToSingle(mBits[1]);
                            frame.m2  = Convert.ToSingle(mBits[2]);
                            frame.m3  = Convert.ToSingle(mBits[3]);
                            frame.m4  = Convert.ToSingle(mBits[4]);
                            frame.m5  = Convert.ToSingle(mBits[5]);
                            frame.m6  = Convert.ToSingle(mBits[6]);
                            frame.m7  = Convert.ToSingle(mBits[7]);
                            frame.m8  = Convert.ToSingle(mBits[8]);
                            frame.m9  = Convert.ToSingle(mBits[9]);
                            frame.m10 = Convert.ToSingle(mBits[10]);
                            frame.m11 = Convert.ToSingle(mBits[11]);

                            frame.controllerState.ulButtonPressed = Convert.ToUInt64(mBits[12]);
                            frame.controllerState.ulButtonTouched = Convert.ToUInt64(mBits[13]);
                            frame.controllerState.rAxis0.x        = Convert.ToSingle(mBits[14]);
                            frame.controllerState.rAxis0.y        = Convert.ToSingle(mBits[15]);

                            frame.controllerState.rAxis1.x = Convert.ToSingle(mBits[16]);
                            frame.controllerState.rAxis1.y = Convert.ToSingle(mBits[17]);

                            frame.controllerState.rAxis2.x = Convert.ToSingle(mBits[18]);
                            frame.controllerState.rAxis2.y = Convert.ToSingle(mBits[19]);

                            frame.controllerState.rAxis3.x = Convert.ToSingle(mBits[20]);
                            frame.controllerState.rAxis3.y = Convert.ToSingle(mBits[21]);

                            frame.controllerState.rAxis4.x = Convert.ToSingle(mBits[22]);
                            frame.controllerState.rAxis4.y = Convert.ToSingle(mBits[23]);

                            linkedList.AddLast(frame);
                        }
                    }
                }
            }
        }