/// <summary>
 /// Updates values from the camera and redraws the elements.
 /// Called whenever the application play state changes.
 /// </summary>
 void Draw()
 {
     if (zedCamera != null && Application.isPlaying)
     {
         parameters        = zedCamera.GetCalibrationParameters(false);
         zed_serial_number = zedCamera.GetZEDSerialNumber();
         zed_fw_version    = zedCamera.GetZEDFirmwareVersion();
         zed_model         = zedCamera.GetCameraModel();
     }
     this.Repaint();
 }
    /// <summary>
    /// Initializes all the starting values, and gets current values from the ZED.
    /// </summary>
    void FirstInit()
    {
        if (!isInit)
        {
            zedCamera = sl.ZEDCamera.GetInstance();
            EditorApplication.playmodeStateChanged += Draw;

            if (zedCamera != null && zedCamera.IsCameraReady)
            {
                isInit = true;

                if (!loaded)
                {
                    if (resetWanted)
                    {
                        ResetValues(groupAuto);
                        resetWanted = false;
                    }

                    zedCamera.RetrieveCameraSettings();
                    ZEDCameraSettingsManager.CameraSettings settings = zedCamera.GetCameraSettings();
                    groupAuto        = zedCamera.GetExposureUpdateType();
                    whiteBalanceAuto = zedCamera.GetWhiteBalanceUpdateType();

                    hue        = settings.Hue;
                    brightness = settings.Brightness;
                    contrast   = settings.Contrast;
                    saturation = settings.Saturation;

                    exposure = settings.Exposure;
                    gain     = settings.Gain;

                    zedCamera.SetCameraSettings(sl.CAMERA_SETTINGS.GAIN, gain, groupAuto);
                    zedCamera.SetCameraSettings(sl.CAMERA_SETTINGS.EXPOSURE, exposure, groupAuto);
                    zedCamera.SetCameraSettings(sl.CAMERA_SETTINGS.WHITEBALANCE, whiteBalance, whiteBalanceAuto);
                }
                else
                {
                    LoadCameraSettings();
                }

                parameters        = zedCamera.GetCalibrationParameters(false);
                zed_serial_number = zedCamera.GetZEDSerialNumber();
                zed_fw_version    = zedCamera.GetZEDFirmwareVersion();
                zed_model         = zedCamera.GetCameraModel();
            }
        }
    }
    /// <summary>
    /// Refreshes data. Called by Unity when this window gets focus, such as when
    /// it's clicked on or alt-tabbed to.
    /// </summary>
    void OnFocus()
    {
        if (zedCamera != null && zedCamera.IsCameraReady)
        {
            parameters        = zedCamera.GetCalibrationParameters(false);
            zed_serial_number = zedCamera.GetZEDSerialNumber();
            zed_fw_version    = zedCamera.GetZEDFirmwareVersion();
            zed_model         = zedCamera.GetCameraModel();

            if (!loaded)
            {
                zedCamera.RetrieveCameraSettings();
                UpdateValuesCameraSettings();
            }
        }
    }
Beispiel #4
0
    /// <summary>
    /// Instantiates the proper prefab for the ZED or ZED Mini as a child of this object.
    /// </summary>
    private void CreateModel()
    {
        if (zedModelObject != null)
        {
            Destroy(zedModelObject);                         //Shouldn't happen but just in case.
        }
        sl.MODEL model = zedManager.zedCamera.CameraModel;

        if (model == sl.MODEL.ZED)
        {
            if (!zedModelPrefab)
            {
                Debug.LogError("CameraAnchor tried to spawn ZED Model but zedModelPrefab is null.");
                return;
            }

            zedModelObject       = Instantiate(zedModelPrefab, transform);
            zedModelObject.layer = gameObject.layer;
        }
        else if (model == sl.MODEL.ZED_M)
        {
            if (!zedMiniModelPrefab)
            {
                Debug.LogError("CameraAnchor tried to spawn ZED Mini Model but zedMiniModelPrefab is null.");
                return;
            }

            zedModelObject = Instantiate(zedMiniModelPrefab, transform, false);
        }

        if (zedModelObject != null && centerOnGeometry == true)
        {
            float halfbaseline = zedManager.zedCamera.Baseline / 2f;
            zedModelObject.transform.localPosition = new Vector3(-halfbaseline, 0, 0);
        }
    }