using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FurnaceUI.Controls
{
    class Curve
    {
    }
    /// 
    /// 曲线数据对象
    /// 
    public class HslCurveItem
    {
        /// 
        /// 实例化一个对象
        /// 
        public HslCurveItem()
        {
            LineColor = Color.Red;
            LineThickness = 1.0f;
            ReferenceAxisIndex = 0;
            Visible = true;
            LineRenderVisiable = true;
            TitleRegion = new RectangleF(0, 0, 0, 0);
            Style = CurveStyle.LineSegment;
        }
        /// 
        /// 数据
        /// 
        public float[] Data = null;
        /// 
        /// 标记文本
        /// 
        public string[] MarkText = null;
        /// 
        /// 线条的宽度
        /// 
        public float LineThickness { get; set; }
        /// 
        /// 是否平滑的曲线显示,默认为False
        /// 
        public CurveStyle Style { get; set; }
        /// 
        /// 曲线颜色
        /// 
        public Color LineColor { get; set; }
        /// 
        /// 是否左侧参考系,0为左侧,1为右侧,其他是辅助坐标轴
        /// 
        public int ReferenceAxisIndex { get; set; }
        /// 
        /// 本曲线是否显示出来,默认为显示
        /// 
        public bool Visible { get; set; }
        /// 
        /// 用于曲线自身选择是否显示的情况的判断
        /// 
        public bool LineRenderVisiable { get; set; }
        /// 
        /// 标题实现的基本区域
        /// 
        public RectangleF TitleRegion { get; set; }
        /// 
        /// 本曲线在图形上显示的格式化信息,对历史数据有效
        /// 
        public string RenderFormat { get; set; } = "{0}";
    }
    /// 
    /// 曲线的样式
    /// 
    public enum CurveStyle
    {
        /// 
        /// 线段,原始的多个点之间的直线连接
        /// 
        LineSegment,
        /// 
        /// 曲线,相对于线段比较平滑
        /// 
        Curve,
        /// 
        /// 阶梯线段,采用阶梯的样式表示
        /// 
        StepLine,
        /// 
        /// 阶梯线段,没有竖向的信息
        /// 
        StepLineWithoutVertical,
        /// 
        /// 点画线,类似 .......
        /// 
        LineDot,
        /// 
        /// 点画曲线,类似 .......
        /// 
        CurveDot,
        /// 
        /// 虚线,类似 -------
        /// 
        LineDash,
        /// 
        /// 虚曲线,类似 -------
        /// 
        CurveDash,
        /// 
        /// 长虚线,类似 -------
        /// 
        LineLongDath,
        /// 
        /// 长虚曲线,类似 -------
        /// 
        CurveLongDath,
    }
}