Exemple #1
0
 /*internal void flyByWire(Vector3 camPos, Vector3 camRot, float scale, Vector3 modelRot)
 {
     RecorderFrame frame;
     frame.
 }*/
 internal void flyByWire(RecorderFrame frameData, PreloadedModelsStorage modelStorage, bool forceCam)
 {
     if (forceCam)
     {
         //MonoBehaviour.print("Forcing cam to "+frameData.camPos+" , "+frameData.camRot);
         OVRcamRig.transform.position = frameData.camPos;
         OVRcamRig.transform.rotation = Quaternion.Euler(frameData.camRot);
     }
     if (frameData.textState == RecorderFrame.TEXTSTATE.BIG | frameData.textState == RecorderFrame.TEXTSTATE.BOTH)
     {
         setBigText(frameData.bigText);
     }
     if (frameData.textState == RecorderFrame.TEXTSTATE.STATE | frameData.textState == RecorderFrame.TEXTSTATE.BOTH)
     {
         setStateText(frameData.stateText);
     }
     currentZoom = frameData.modelScale;
     currentRotEuler = frameData.modelRot;
     for (int i = 0; i < frameData.modelIDs.Length; i++)
     {
         MonoBehaviour.print("Assinging model "+frameData.modelFilenames[i]+" to "+frameData.modelIDs[i]);
         assignSpecific(frameData.modelIDs[i], modelStorage.getModelForcedLoad(frameData.modelFilenames[i]));
     }
 }
Exemple #2
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (open)
        {
            RecorderFrame frame = new RecorderFrame();
            Transform camTransform = GlobalStateHolder.unityInterface.OVRcamera.GetComponent<Transform>();
            frame.camPos = camTransform.position;
            //MonoBehaviour.print(camTransform.name+"(camPos) is "+frame.camPos);
            frame.camRot = camTransform.rotation.eulerAngles;
            frame.modelScale = GlobalStateHolder.unityInterface.getCurrentScale();
            frame.modelRot = GlobalStateHolder.unityInterface.getCurrentRotation();
            //MonoBehaviour.print("scale " + frame.modelScale + " rot " + frame.modelRot);

            Model[] duplet = GlobalStateHolder.unityInterface.getCurrentDuplet();
            if (duplet == null) duplet = new Model[2];
            Model[] triplet = GlobalStateHolder.unityInterface.getCurrentTriplet();
            if (triplet == null) triplet = new Model[3];
            Model[] models = duplet.Concat(triplet).ToArray();

            int modelDiff = 0;
            for (int i = 0; i < models.Length; i++)
            {
                if (models[i] != currentModels[i])
                {
                    modelDiff++;
                    if (models[i] != null)
                        addUsedModel(models[i]);
                }
            }
            frame.modelIDs = new int[modelDiff];
            frame.modelFilenames = new string[modelDiff];
            int modelPos = 0;
            for (int i = 0; i < models.Length; i++)
            {
                if (models[i] != currentModels[i])
                {
                    currentModels[i] = models[i];
                    frame.modelIDs[modelPos] = i;
                    if (models[i] != null)
                        frame.modelFilenames[modelPos] = models[i].Path;
                    else
                        frame.modelFilenames[modelPos] = "NO_MODEL";
                    modelPos++;
                }
            }

            string stateText = GlobalStateHolder.unityInterface.getStateText();
            string bigText = GlobalStateHolder.unityInterface.getBigText();
            //MonoBehaviour.print("bigText:" + bigText);
            if ((currentStateText.CompareTo(stateText) != 0))
            {
                frame.stateText = stateText;
                currentStateText = stateText;
            }
            if ((currentBigText.CompareTo(bigText) != 0))
            {
                frame.bigText = bigText;
                currentBigText = bigText;
            }
            frame.textState = RecorderFrame.TEXTSTATE.NONE;
            if (frame.stateText != null & frame.bigText != null)
                frame.textState = RecorderFrame.TEXTSTATE.BOTH;
            else
            {
                if (frame.stateText != null)
                    frame.textState = RecorderFrame.TEXTSTATE.STATE;
                if (frame.bigText != null)
                    frame.textState = RecorderFrame.TEXTSTATE.BIG;
            }
            frame.write(writer);
            MonoBehaviour.print("Wrote recorder frame");
            //IMCOScreen currentScreen = unityInterface.g
        }
    }