public void applyTheTransforms(int e)
        {
            //apply transforms at the current time index to all the objects
            //These have to match what is in Manifest.XML AND manifest loader in terms of order mytype etc.
            string st = GetLine(e);

            string[] stA = Regex.Split(st, myManifest.getSeparator());
            string   quatString;

            string[] valArray;
            int      myType = -1;
            int      startString;
            int      endString;
            int      staLength = stA.Length;

            logInfoDisplay.ChangeIndexText(e);

            for (int i = 0; i < staLength; i++)
            {
                if (stA[i].IndexOf("(") != -1)
                {
                    string label = (stA[i].Substring(0, stA[i].IndexOf("(")));
                    myType = myManifest.getTypeByLabel(label);
                }
                startString = stA[i].IndexOf("(") + 1;
                endString   = stA[i].Length - (1 + startString);
                if (startString < 0)
                {
                    startString = 0;
                }
                if (endString < 1)
                {
                    endString = 1;
                }
                quatString = "";
                if (stA[i].Length > 0)
                {
                    quatString = stA[i].Substring(startString, endString);
                    valArray   = Regex.Split(quatString, ",");
                    switch (myType)
                    {
                    case 1:
                        Quaternion HeadRot = new Quaternion(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]), GetFloat(valArray[3]));
                        CameraHead.transform.rotation  = HeadRot;
                        leftCamera.transform.rotation  = HeadRot;
                        rightCamera.transform.rotation = HeadRot;
                        break;

                    case 2:
                        Vector3 HeadPos = new Vector3(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]));
                        CameraHead.transform.position  = HeadPos;
                        leftCamera.transform.position  = HeadPos;
                        rightCamera.transform.position = HeadPos;
                        break;

                    case 3:
                        Vector3 LE = new Vector3(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]));
                        //LeftEye.transform.rotation = mainScript.GetEyeRotQuat(LE, CameraHead.transform.rotation);
                        //Kyle's entry
                        LeftEye.transform.localRotation = mainScript.eyeTrackInterpret.AssignRotation(LE, 1);
                        logInfoDisplay.ChangeLEyeText(LE);
                        //Quaternion LE = new Quaternion(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]), GetFloat(valArray[3]));
                        break;

                    case 4:
                        Vector3 RE = new Vector3(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]));
                        //RightEye.transform.rotation = mainScript.GetEyeRotQuat(RE, CameraHead.transform.rotation);
                        //Kyle's entry
                        RightEye.transform.localRotation = mainScript.eyeTrackInterpret.AssignRotation(RE, 0);
                        logInfoDisplay.ChangeREyeText(RE);
                        //Quaternion RE = new Quaternion(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]), GetFloat(valArray[3]));
                        break;

                    case 5:
                        Vector3 LContPos = new Vector3(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]));
                        LeftController.transform.position = LContPos;
                        break;

                    case 6:
                        Vector3 RContPos = new Vector3(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]));
                        RightController.transform.position = RContPos;
                        break;

                    case 7:
                        Quaternion LContRot = new Quaternion(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]), GetFloat(valArray[3]));
                        LeftController.transform.rotation = LContRot;
                        break;

                    case 8:
                        Quaternion RContRot = new Quaternion(GetFloat(valArray[0]), GetFloat(valArray[1]), GetFloat(valArray[2]), GetFloat(valArray[3]));
                        RightController.transform.rotation = RContRot;
                        break;

                    case 9:
                        float LTAxis = GetFloat(quatString);
                        LeftTrigger.transform.rotation = mainScript.getQuatFromTriggerValue(LTAxis, mainScript.LeftTriggerOrienter.transform.rotation.eulerAngles);
                        if (LTAxis > 0)
                        {
                            if (LTAxisTrackedValue == 0)
                            {
                                mainScript.DoTriggerPress("left");
                            }
                        }
                        else
                        if (LTAxis == 0)
                        {
                            if (LTAxisTrackedValue > 0)
                            {
                                mainScript.DoTriggerRelease("left");
                            }
                        }
                        LTAxisTrackedValue = LTAxis;
                        break;

                    case 10:
                        float RTAxis = GetFloat(quatString);
                        RightTrigger.transform.rotation = mainScript.getQuatFromTriggerValue(RTAxis, mainScript.RightTriggerOrienter.transform.rotation.eulerAngles);
                        if (RTAxis > 0)
                        {
                            if (RTAxisTrackedValue == 0)
                            {
                                mainScript.DoTriggerPress("right");
                            }
                        }
                        if (RTAxis == 0)
                        {
                            if (RTAxisTrackedValue > 0)
                            {
                                mainScript.DoTriggerRelease("right");
                            }
                        }
                        RTAxisTrackedValue = RTAxis;
                        break;

                    case 11:
                        Vector2 LCtopAxisPos = new Vector2(GetFloat(valArray[0]), GetFloat(valArray[1]));
                        Vector3 newPos       = LeftTopAxisOrienter.transform.localPosition;
                        newPos.x = LeftTopAxisOrienter.transform.localPosition.x + (LCtopAxisPos.x * AxialRadialExtent);
                        newPos.z = LeftTopAxisOrienter.transform.localPosition.z - (LCtopAxisPos.y * AxialRadialExtent);
                        LeftTopAxis.transform.localPosition = newPos;
                        break;

                    case 12:
                        Vector2 RCtopAxisPos = new Vector2(GetFloat(valArray[0]), GetFloat(valArray[1]));
                        Vector3 newRPos      = RightTopAxisOrienter.transform.localPosition;
                        newRPos.x = RightTopAxisOrienter.transform.localPosition.x + (RCtopAxisPos.x * AxialRadialExtent);
                        newRPos.z = RightTopAxisOrienter.transform.localPosition.z - (RCtopAxisPos.y * AxialRadialExtent);
                        RightTopAxis.transform.localPosition = newRPos;
                        break;

                    case 13:
                        //Left top button pressed
                        if (quatString.ToLower().IndexOf("true") != -1)
                        {
                            LeftTopButton.SetActive(false);
                            LeftTopButtonDown.SetActive(true);
                        }
                        else
                        {
                            LeftTopButton.SetActive(true);
                            LeftTopButtonDown.SetActive(false);
                        }
                        break;

                    case 14:
                        //Right top button pressed
                        if (quatString.ToLower().IndexOf("true") != -1)
                        {
                            RightTopButton.SetActive(false);
                            RightTopButtonDown.SetActive(true);
                        }
                        else
                        {
                            RightTopButton.SetActive(true);
                            RightTopButtonDown.SetActive(false);
                        }
                        break;

                    case 15:
                        //Left Grip button pressed
                        if (quatString.ToLower().IndexOf("true") != -1)
                        {
                            LeftGripButton.SetActive(false);
                            LeftGripButtonDown.SetActive(true);
                        }
                        else
                        {
                            LeftGripButton.SetActive(true);
                            LeftGripButtonDown.SetActive(false);
                        }
                        break;

                    case 16:
                        //Right Grip button pressed
                        if (quatString.ToLower().IndexOf("true") != -1)
                        {
                            RightGripButton.SetActive(false);
                            RightGripButtonDown.SetActive(true);
                        }
                        else
                        {
                            RightGripButton.SetActive(true);
                            RightGripButtonDown.SetActive(false);
                        }
                        break;

                    case 17:
                        //LeftPupil.GetComponent<RectTransform>().localScale = new Vector3(GetFloat(quatString), LeftPupil.GetComponent<RectTransform>().localScale.y, GetFloat(quatString));
                        mainScript.setPupilWidth(LeftPupil, GetFloat(quatString));
                        logInfoDisplay.ChangeLEyeWidthText(GetFloat(quatString));
                        break;

                    case 18:
                        //RightPupil.GetComponent<RectTransform>().localScale = new Vector3(GetFloat(quatString), RightPupil.GetComponent<RectTransform>().localScale.y, GetFloat(quatString));
                        mainScript.setPupilWidth(RightPupil, GetFloat(quatString));
                        logInfoDisplay.ChangeREyeWidthText(GetFloat(quatString));
                        break;

                    case 19:
                        int endSpot = quatString.IndexOf(":");
                        int theCurrentTest;
                        if (endSpot > 0)
                        {
                            theCurrentTest = int.Parse(quatString.Substring(0, endSpot));
                        }
                        else
                        {
                            theCurrentTest = int.Parse(quatString);
                        }
                        //put a colon in there so its plus 2 to skip the colon in manifest loader.
                        string testDataString = stA[i].Substring(startString + 2, endString - 1);
                        //this is test specific data stored in an open ended string that the specific test script can record and playback.
                        if (myTests.currentTest != -1)
                        {
                            myTests.baseTests[myTests.currentTest].dataString = testDataString;
                        }
                        if (theCurrentTest != myTests.currentTest)
                        {
                            myTests.showTest(theCurrentTest);
                        }

                        break;

                    case 20:
                        int theCurrentEnvironment = int.Parse(stA[i].Substring(startString, endString));
                        if (theCurrentEnvironment != myEnvironments.currentEnvironment)
                        {
                            myEnvironments.showObj(theCurrentEnvironment);
                        }
                        break;

                    case 21:
                        logInfoDisplay.ChangeTimeText(stA[i]);
                        break;

                    default:
                        break;
                    }
                }
            }
        }