using System;

namespace OpenCVStudio_v0
{
    /// <summary>
    /// Свойства блока SplitChannels.
    /// Разделяет цветное изображение
    /// на отдельные каналы B, G, R.
    /// </summary>
    public sealed class SplitChannelsBlockProperties
    {
        private readonly ProjectManager projectManager;
        private readonly ProjectBlock projectBlock;

        public SplitChannelsBlockProperties(ProjectManager projectManager, ProjectBlock projectBlock)
        {
            this.projectManager = projectManager ?? throw new ArgumentNullException(nameof(projectManager));
            this.projectBlock = projectBlock ?? throw new ArgumentNullException(nameof(projectBlock));
        }

        public string FunctionName => "Cv2.Split";

        public string Description => "Разделяет цветное изображение BGR на отдельные одноканальные изображения.";

        public string InputDescription => "Вход: основное изображение pipeline.";

        public string OutputDescription => "Выход: коллекция каналов изображения.\r\nКанал 0: Blue.\r\nКанал 1: Green.\r\nКанал 2: Red.";

        public string Requirements => "Входное изображение должно быть цветным трехканальным BGR.";

        public string Parameters => "Нет параметров OpenCV.";

        public string ResultDescription => "Создаётся ChannelCollection, содержащий отдельные каналы изображения.";

        public string ChannelOrder => "OpenCV BGR: 0 - Blue, 1 - Green, 2 - Red.";
    }
}