private CCSignalType(string name, InnerEnum innerEnum, CCSignal theSignal)
        {
            _mySignal = theSignal;

            nameValue      = name;
            ordinalValue   = nextOrdinal++;
            innerEnumValue = innerEnum;
        }
        void DrawGradientCurve(CCSignal signal, Color color)
        {
            for (var i = 0; i < _curveResolution; i++)
            {
                var x     = (float)i / (_curveResolution - 1);
                var theta = x;
                var y     = signal.normed ? signal.Value(theta) : (signal.Value(theta) + 1) / 2;
                _curveVertices[i] = PointInRect(x, Mathf.Clamp01(y));
            }

            Handles.color = color;
            Handles.DrawAAPolyLine(2.0f, _curveResolution, _curveVertices);
        }
        public void DrawGraph(CCSignal signal)
        {
            _rectGraph = GUILayoutUtility.GetRect(128, 80);

            // Background
            DrawRect(0, 0, 1, 1, 0.1f, 0.4f);

            // Horizontal line
            var lineColor = Color.white * 0.4f;

            DrawLine(0, 0.5f, 1, 0.5f, lineColor);

            // Vertical lines
            DrawLine(0.25f, 0, 0.25f, 1, lineColor);
            DrawLine(0.50f, 0, 0.50f, 1, lineColor);
            DrawLine(0.75f, 0, 0.75f, 1, lineColor);

            // R/G/B curves
            DrawGradientCurve(signal, Color.red);
        }