/// <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(); } } }
/// <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); } }