コード例 #1
0
ファイル: Camera.cs プロジェクト: Metfield/QualisysViewFinder
        /// <summary>
        /// Update the settings of the camera if the QTM host updated the settings successfully
        /// </summary>
        /// <param name="settings"></param>
        public void UpdateSettings(SettingsGeneralCameraSystem?settings)
        {
            if (settings != null)
            {
                if (settings.Value.Mode != Settings.Mode)
                {
                    ApplyMode(settings.Value.Mode);
                }

                Settings = settings.Value;
            }
        }
コード例 #2
0
        /// <summary>
        /// Generates camera screens to use inside an Urho context based on the
        /// ImageCameras recieved from the QTM host.
        /// </summary>
        /// <returns></returns>
        public static bool GenerateCameras()
        {
            CurrentCamera = null;
            Cameras       = new Dictionary <int, Camera>();
            CameraScreen.ResetScreenCounter();

            // Get Camera Settings
            List <SettingsGeneralCameraSystem> cameraSettingsList = SettingsService.GetCameraSettings();

            // Get Image Settings
            List <ImageCamera> imageCameraSettingsList = SettingsService.GetImageCameraSettings();

            // Iterate over image settings list and create camera objects
            foreach (ImageCamera imageCameraSettings in imageCameraSettingsList)
            {
                SettingsGeneralCameraSystem cameraSettings = cameraSettingsList
                                                             .Where(c => c.CameraId == imageCameraSettings.CameraID)
                                                             .First();

                if (!imageCameraSettings.Enabled && cameraSettings.Mode != CameraMode.ModeMarker)
                {
                    SettingsService.SetCameraMode(imageCameraSettings.CameraID, cameraSettings.Mode);
                }

                ImageResolution imageResolution = new ImageResolution(imageCameraSettings.Width / 2, imageCameraSettings.Height / 2);

                // Create camera object and add it to dictionary
                Camera camera = new Camera(imageCameraSettings.CameraID, cameraSettings, imageResolution);
                Cameras.Add(camera.ID, camera);

                // Make sure that the current settings are reflected in the state of the application
                // The state of the QTM host should always have precedence unless expliciltly told to
                // change settings
                if (CurrentCamera == null)
                {
                    CurrentCamera = camera;
                }
            }

            // Load and run profiler
            CameraProfiler cameraProfiler = new CameraProfiler(Cameras, "CameraProfiles.json");

            cameraProfiler.Run();

            // Dispose of it once it's done
            cameraProfiler.Dispose();
            cameraProfiler = null;

            return(true);
        }
コード例 #3
0
ファイル: Camera.cs プロジェクト: Metfield/QualisysViewFinder
        public Camera(int id, SettingsGeneralCameraSystem settings, ImageResolution imageResolution)
        {
            ID              = id;
            Settings        = settings;
            ImageResolution = imageResolution;
            Model           = GetModelName(settings.Model);
            Orientation     = settings.Orientation;

            PageTitle = "#" + ID + " " + Model;

            LensControlEnabled = CheckForLensControl();

            // TODO: this should not have to be done in the constructor
            if (IsImageMode())
            {
                EnableImageMode(false);
            }
        }