//! return current camera parameter value for slider value public float getCamParamValue(CameraObject.CameraParameter param) { switch (param) { case CameraObject.CameraParameter.LENS: return(cameraAdapter.Fov.vFovToLens()); break; case CameraObject.CameraParameter.FOV: return(cameraAdapter.Fov); break; //case CameraObject.CameraParameter.APERTURE: // return cameraAdapter.Aperture; // break; //case CameraObject.CameraParameter.FOCDIST: // return cameraAdapter.focDist; // break; //case CameraObject.CameraParameter.FOCSIZE: // return cameraAdapter.focSize; // break; } return(-1.0f); }
//! change the desired camera parameter (usually a callback triggered by the slider changes) public void setCamParamValue(CameraObject.CameraParameter param, float value) { switch (param) { case CameraObject.CameraParameter.LENS: cameraAdapter.Fov = value.lensToVFov(); break; case CameraObject.CameraParameter.FOV: cameraAdapter.Fov = value; break; case CameraObject.CameraParameter.APERTURE: cameraAdapter.Aperture = value; break; case CameraObject.CameraParameter.FOCDIST: cameraAdapter.focDist = value; break; case CameraObject.CameraParameter.FOCSIZE: cameraAdapter.focSize = value; break; } }
//! show desired camera parameter slider public void showCameraSlider(CameraObject.CameraParameter type) { // if the desired slider is not already displayed, show it if (slider.IsActive == false || type != sliderType) { // disable callback temporarily, sync slider value with the camera parameter slider.Callback = null; setSliderType(type); float newValue = mainController.getCamParamValue(type); updateSliderValue(newValue); // show slider slider.gameObject.SetActive(true); } else { // ... hide the slider, since the user pressed the button again hideCameraSlider(); } }
//! configure slider based on the chosen parameter private void setSliderType(CameraObject.CameraParameter type) { //! set slider type sliderType = type; //! change slider setup switch (sliderType) { case CameraObject.CameraParameter.FOV: slider.Callback = sliderCallback; slider.MinValue = 300.0f.lensToVFov(); slider.MaxValue = 10.0f.lensToVFov(); slider.FormatAsInt = false; slider.Sensitivity = 0.3f; slider.TextPrefix = "Field of view: "; slider.TextSuffix = " degrees"; break; case CameraObject.CameraParameter.LENS: slider.Callback = sliderCallback; slider.MinValue = 10.0f; slider.MaxValue = 300.0f; slider.FormatAsInt = true; slider.Sensitivity = 0.3f; slider.TextPrefix = "Lens focal length: "; slider.TextSuffix = "mm"; break; case CameraObject.CameraParameter.APERTURE: slider.Callback = sliderCallback; slider.MaxValue = 1.0f; slider.MinValue = 0.0f; slider.FormatAsInt = false; slider.Sensitivity = 0.003f; slider.TextPrefix = "Aperture: "; slider.TextSuffix = ""; break; case CameraObject.CameraParameter.FOCSIZE: slider.Callback = sliderCallback; slider.MaxValue = 1.0f; slider.MinValue = 0.0f; slider.FormatAsInt = false; slider.Sensitivity = 0.003f; slider.TextPrefix = "Focal size: "; slider.TextSuffix = "m"; break; case CameraObject.CameraParameter.FOCDIST: slider.Callback = sliderCallback; slider.MaxValue = 100.0f; slider.MinValue = 0.0f; slider.FormatAsInt = false; slider.Sensitivity = 0.05f; slider.TextPrefix = "Focal distance: "; slider.TextSuffix = "m"; break; default: break; } }