void ActivateCamera(CameraIndex cameraIndex)
    {
        switch (cameraIndex)
        {
        case CameraIndex.Right:
            m_frontCam.GetComponent <Camera>().enabled = false;
            m_rightCam.GetComponent <Camera>().enabled = true;
            m_backCam.GetComponent <Camera>().enabled  = false;
            m_leftCam.GetComponent <Camera>().enabled  = false;
            break;

        case CameraIndex.Back:
            m_frontCam.GetComponent <Camera>().enabled = false;
            m_rightCam.GetComponent <Camera>().enabled = false;
            m_backCam.GetComponent <Camera>().enabled  = true;
            m_leftCam.GetComponent <Camera>().enabled  = false;
            break;

        case CameraIndex.Left:
            m_frontCam.GetComponent <Camera>().enabled = false;
            m_rightCam.GetComponent <Camera>().enabled = false;
            m_backCam.GetComponent <Camera>().enabled  = false;
            m_leftCam.GetComponent <Camera>().enabled  = true;
            break;
        }
    }
Esempio n. 2
0
        public Laptop(Level owner)
        {
            Level          = owner;
            RebootProgress = 1.0f;

            cameraOffsets = new Dictionary <CameraIndex, CameraOffsetState>();
            for (CameraIndex ci = CameraIndex.Cam1; ci < (CameraIndex)8; ci++)
            {
                // IsEnabled is meaningless here. Instead I will use _updateRoomInputs to handle all at once.
                CameraIndex clone = ci;                 // Otherwise ci is passed by reference into lambda
                roomInputs.Add(ci, new InputRegion(MAP_OFFSET + MAP_CAMERA_OFFSETS[ci], ROOM_INPUT_SIZE, true, (i) => {
                    if (ActiveCamera == clone || Level.LaptopBattery <= 0.0f || IsRebooting)
                    {
                        return;
                    }

                    ActiveCamera          = clone;
                    _staticScreensLeft    = UIScreen.STATIC_SCREEN_LENGTH;
                    _currentStaticScreen  = Level.Rand.Next(0, UIScreen.STATIC_SCREEN_COUNT);
                    _isStaticIntermittent = false;

                    _timeUntilRoomIconSwitches = ROOM_ICON_TIME;
                    _roomIconBright            = true;

                    soundCameraChange.Stop();
                    soundCameraChange.Play();
                }));

                cameraOffsets.Add(clone, new CameraOffsetState(Level.Rand));
            }
        }
Esempio n. 3
0
        public override void DrawOnCamera(SpriteBatch sb, Vector2 offset, CameraIndex cam)
        {
            if (cam == CameraIndex.Cam3 && Pos == Position.Perch)
            {
                string sprite = IsActive ? "Glaring" : "Sleeping";
                perchSprites[sprite].Draw(sb, PERCH_OFFSET + offset);
            }

            if (_ventAnimPlaying)
            {
                if ((Pos == Position.VentMidW && cam == CameraIndex.Cam4) ||
                    (Pos == Position.VentMidE && cam == CameraIndex.Cam5))
                {
                    Vector2 v = VENT_OFFSETS[_ventCurrentFrame];
                    if (_ventCurrentFrame < 4)
                    {
                        if (Pos == Position.VentMidW)
                        {
                            v -= VENT_EARLY_EXTRA_OFFSET * (4 - _ventCurrentFrame);
                        }
                        else if (Pos == Position.VentMidE)
                        {
                            v += VENT_EARLY_EXTRA_OFFSET * (4 - _ventCurrentFrame);
                        }
                    }

                    ventSprites[_ventCurrentFrame].Draw(sb, v);
                }
            }
        }
Esempio n. 4
0
 public static CameraIndex getInstance()
 {
     if (_me == null)
     {
         _me = new CameraIndex(0);
     }
     return(_me);
 }
Esempio n. 5
0
 public static void TakeSnapshot(CameraIndex eCam)
 {
     foreach (Camera cam in m_lstCameras.Where(x => eCam == CameraIndex.All ? true : x.ID == eCam))
     {
         cam.TakeSnapshot();
         cam.AccionTerminada.WaitOne();
     }
 }
Esempio n. 6
0
 public static void StartGrab(CameraIndex eCam, string strPath)
 {
     foreach (Camera cam in m_lstCameras.Where(x => eCam == CameraIndex.All ? true : x.ID == eCam))
     {
         cam.StartGrab(strPath);
         cam.AccionTerminada.WaitOne();
     }
 }
Esempio n. 7
0
 public static void SetVideo(CameraIndex eCam)
 {
     foreach (Camera cam in m_lstCameras.Where(x => eCam == CameraIndex.All ? true : x.ID == eCam))
     {
         cam.SetVideo();
         cam.AccionTerminada.WaitOne();
     }
 }
Esempio n. 8
0
        public AlliedVisionCamera(CameraIndex DeviceID) : base(DeviceID)
        {
            VimbaHelper vimbaHelper = new VimbaHelper();

            vimbaHelper.Startup(null);
            m_vimbaHelper = vimbaHelper;
            var id = DeviceID == CameraIndex.Cam1 ? Properties.Settings.Default.AlliedID1 : Properties.Settings.Default.AlliedID2;

            m_cameraInfo = m_vimbaHelper.CameraList.First(x => x.ID == id);
            m_vimbaHelper.OpenCamera(m_cameraInfo.ID);
            Ready = true;
        }
        public override void DrawOnCamera(SpriteBatch sb, Vector2 offset, CameraIndex cam)
        {
            CameraIndex?visible = GetCameraVisible();

            if (visible == null)
            {
                return;                 // in case of office entry
            }

            if (visible.Value == cam)
            {
                roomSprites[Pos.ToString()].Draw(sb, offset + ROOM_OFFSETS[Pos]);
            }
        }
Esempio n. 10
0
 public override void DrawOnCamera(SpriteBatch sb, Vector2 offset, CameraIndex cam)
 {
     if (cam == CameraIndex.Cam2 && !IsExposing)
     {
         if (IsActive)
         {
             roomSprites["Active"].Draw(sb, ACTIVE_OFFSET + offset);
         }
         else
         {
             roomSprites["Waiting"].Draw(sb, WAITING_OFFSET + offset);
         }
     }
 }
Esempio n. 11
0
        public void DrawOnCamera(SpriteBatch sb, Vector2 offset, CameraIndex cam)
        {
            Owl.DrawOnCamera(sb, offset, cam);

            if (cam != CameraIndex.Cam6)
            {
                Eyesaur.DrawOnCamera(sb, offset, cam);
            }

            Clown.DrawOnCamera(sb, offset, cam);
            Flumpty.DrawOnCamera(sb, offset, cam);
            BBB.DrawOnCamera(sb, offset, cam);

            if (cam == CameraIndex.Cam6)
            {
                Eyesaur.DrawOnCamera(sb, offset, cam);
            }
        }
Esempio n. 12
0
    void Start()
    {
        obiekt           = GameObject.Find("Obiekt");
        myObiektPosition = ObiektPosition.getInstance(obiekt.transform.position);
        GameObject.Find("Obiekt").transform.position = myObiektPosition.pos;

        currentMax = Camera.allCamerasCount;
        cameras    = new Camera[currentMax];
        Camera.GetAllCameras(cameras);
        myCameraIndex = CameraIndex.getInstance();

        currentIndex = myCameraIndex.index;
        for (int i = 0; i < currentMax; i++)
        {
            cameras[i].gameObject.SetActive(false);
        }
        cameras[myCameraIndex.index].gameObject.SetActive(true);
    }
Esempio n. 13
0
        public static Camera CameraFactory(CameraIndex DeviceID)
        {
            var cameraType = DeviceID == CameraIndex.Cam1 ? Properties.Settings.Default.Camera1 : Properties.Settings.Default.Camera2;

            Enum.TryParse(cameraType, out CameraType type);

            switch (type)
            {
            case CameraType.AlliedVision:
                return(new AlliedVision.AlliedVisionCamera(DeviceID));

            case CameraType.IDS:
                return(new IDS.IDSCamera(DeviceID));

            default:
                return(null);
            }
        }
Esempio n. 14
0
        public override void DrawOnCamera(SpriteBatch sb, Vector2 offset, CameraIndex cam)
        {
            CameraIndex?visible = GetCameraVisible();

            if (visible == null)
            {
                return;                 // in case of office entry
            }

            if (visible.Value == cam)
            {
                roomSprites[Pos.ToString()].Draw(sb, offset + ROOM_OFFSETS[Pos]);
            }

            if (cam == CameraIndex.Cam1 && Pos != Position.Cam1_Waiting && Pos != Position.Cam1_Emerging)
            {
                roomSprites["Cam1_Missing"].Draw(sb, offset + ROOM_OFFSETS[Position.Cam1_Waiting]);
            }
        }
Esempio n. 15
0
        public IDSCamera(CameraIndex DevideID) : base(DevideID)
        {
            Ready = false;

            //Si no he obtenido la lista de camaras, la obtengo
            if (m_cameraList == null || m_cameraList.Length == 0)
            {
                uEye.Info.Camera.GetCameraList(out m_cameraList);
            }

            if (m_cameraList.Length == 0)
            {
                MessageBox.Show("No se han encontrado camaras...");
            }
            m_Camera   = new uEye.Camera();
            m_DeviceID = (int)m_cameraList.Where(x => x.CameraID == (int)DevideID).FirstOrDefault().DeviceID;
            EnqueueAction(Acciones.Init);
            m_threadCiclo = new Thread(Cycle);
            m_threadCiclo.IsBackground = true;
            m_threadCiclo.Name         = $"Camera {DevideID} thread";
            m_threadCiclo.Start();
        }
Esempio n. 16
0
 public virtual void DrawOnCamera(SpriteBatch sb, Vector2 offset, CameraIndex cam)
 {
 }
Esempio n. 17
0
 public Vector2 GetClickPos(CameraIndex cam)
 {
     return(Laptop.MAP_OFFSET + Laptop.MAP_CAMERA_OFFSETS[cam] + CAMERA_BUTTON_TARGET);
 }
Esempio n. 18
0
 public Matrix<double> GetCalibrationMatrix(CameraIndex idx)
 {
     return idx == CameraIndex.Left ? CalibrationLeft : CalibrationRight;
 }
Esempio n. 19
0
 public Camera(CameraIndex DevideID)
 {
     ID = DevideID;
     AccionTerminada = new AutoResetEvent(false);
 }
Esempio n. 20
0
        void UpdateCameraMatrix(Matrix<double> camera, CameraIndex index)
        {
            var RQ = camera.SubMatrix(0, 3, 0, 3).QR();

            var calib = RQ.R;
            if(Math.Abs(calib[2, 2] - 1) > 1e-6)
            {
                double scale = calib[2, 2];
                camera.MultiplyThis(scale);
                // NotifyPropertyChanged("CameraLeft");
                RQ = camera.SubMatrix(0, 3, 0, 3).QR();
            }
            calib = RQ.R;
            var rot = RQ.Q;

            // If fx < 0 then set fx = -fx and [r11,r12,r13] = -[r11,r12,r13]
            // As first row of rotation matrix is multiplied only with fx, then changing sign of both
            // fx and this row won't change matrix M = K*R, and so camera matrix (same with fy, but we need to change skew also)
            if(calib[0, 0] < 0)
            {
                calib[0, 0] = -calib[0, 0];
                rot[0, 0] = -rot[0, 0];
                rot[0, 1] = -rot[0, 1];
                rot[0, 2] = -rot[0, 2];
            }
            if(calib[1, 1] < 0)
            {
                calib[1, 1] = -calib[1, 1];
                calib[0, 1] = -calib[0, 1];
                rot[1, 0] = -rot[1, 0];
                rot[1, 1] = -rot[1, 1];
                rot[1, 2] = -rot[1, 2];
            }

            var trans = -camera.SubMatrix(0, 3, 0, 3).Inverse().Multiply(camera.Column(3));

            SetCalibrationMatrix(index, calib);
            SetRotationMatrix(index, rot);
            SetTranslationVector(index, trans);

            ComputeEssentialFundamental();
        }
Esempio n. 21
0
 public Matrix<double> GetCameraMatrix(CameraIndex idx)
 {
     return idx == CameraIndex.Left ? CameraLeft : CameraRight;
 }
Esempio n. 22
0
 public void SetRotationMatrix(CameraIndex idx, Matrix<double> matrix)
 {
     if(idx == CameraIndex.Left)
         RotationLeft = matrix;
     else
         RotationRight = matrix;
 }
Esempio n. 23
0
 public static Camera GetCamera(CameraIndex eCam)
 {
     return(m_lstCameras.Where(x => x.ID == eCam).FirstOrDefault());
 }
Esempio n. 24
0
 public void SetCameraMatrix(CameraIndex idx, Matrix<double> matrix)
 {
     if(idx == CameraIndex.Left)
         CameraLeft = matrix;
     else
         CameraRight = matrix;
 }
Esempio n. 25
0
 public void SetDistortionModel(CameraIndex idx, RadialDistortionModel model)
 {
     if(idx == CameraIndex.Left)
         DistortionModelLeft = model;
     else
         DistortionModelRight = model;
 }
Esempio n. 26
0
 public void SetCalibrationMatrix(CameraIndex idx, Matrix<double> matrix)
 {
     if(idx == CameraIndex.Left)
         CalibrationLeft = matrix;
     else
         CalibrationRight = matrix;
 }
Esempio n. 27
0
 public Vector<double> GetTranslationVector(CameraIndex idx)
 {
     return idx == CameraIndex.Left ? TranslationLeft : TranslationRight;
 }
Esempio n. 28
0
 public Matrix<double> GetRotationMatrix(CameraIndex idx)
 {
     return idx == CameraIndex.Left ? RotationLeft : RotationRight;
 }
 void ActivateCamera(CameraIndex cameraIndex)
 {
     switch(cameraIndex)
     {
     case CameraIndex.Right:
         m_frontCam.GetComponent<Camera>().enabled = false;
         m_rightCam.GetComponent<Camera>().enabled = true;
         m_backCam.GetComponent<Camera>().enabled = false;
         m_leftCam.GetComponent<Camera>().enabled = false;
         break;
     case CameraIndex.Back:
         m_frontCam.GetComponent<Camera>().enabled = false;
         m_rightCam.GetComponent<Camera>().enabled = false;
         m_backCam.GetComponent<Camera>().enabled = true;
         m_leftCam.GetComponent<Camera>().enabled = false;
         break;
     case CameraIndex.Left:
         m_frontCam.GetComponent<Camera>().enabled = false;
         m_rightCam.GetComponent<Camera>().enabled = false;
         m_backCam.GetComponent<Camera>().enabled = false;
         m_leftCam.GetComponent<Camera>().enabled = true;
         break;
     }
 }
Esempio n. 30
0
 public void SetTranslationVector(CameraIndex idx, Vector<double> matrix)
 {
     if(idx == CameraIndex.Left)
         TranslationLeft = matrix;
     else
         TranslationRight = matrix;
 }
Esempio n. 31
0
 public Vector<double> GetEpipole(CameraIndex idx)
 {
     return idx == CameraIndex.Left ? EpipoleLeft : EpipoleRight;
 }
Esempio n. 32
0
 public RadialDistortionModel GetDistortionModel(CameraIndex idx)
 {
     return idx == CameraIndex.Left ? DistortionModelLeft : DistortionModelRight;
 }