private void DrawPolarIndicator(VertexHelper vh, Tooltip tooltip, PolarCoord m_Polar)
        {
            if (tooltip.context.angle < 0)
            {
                return;
            }
            var theme        = chart.theme;
            var m_AngleAxis  = ComponentHelper.GetAngleAxis(chart.components, m_Polar.index);
            var lineColor    = TooltipHelper.GetLineColor(tooltip, theme);
            var lineType     = tooltip.lineStyle.GetType(theme.tooltip.lineType);
            var lineWidth    = tooltip.lineStyle.GetWidth(theme.tooltip.lineWidth);
            var cenPos       = m_Polar.context.center;
            var radius       = m_Polar.context.radius;
            var sp           = m_Polar.context.center;
            var tooltipAngle = m_AngleAxis.GetValueAngle(tooltip.context.angle);

            var ep = ChartHelper.GetPos(sp, radius, tooltipAngle, true);

            switch (tooltip.type)
            {
            case Tooltip.Type.Corss:
                ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor);
                var dist = Vector2.Distance(chart.pointerPos, cenPos);
                if (dist > radius)
                {
                    dist = radius;
                }
                var outsideRaidus = dist + tooltip.lineStyle.GetWidth(theme.tooltip.lineWidth) * 2;
                UGL.DrawDoughnut(vh, cenPos, dist, outsideRaidus, lineColor, Color.clear);
                break;

            case Tooltip.Type.Line:
                ChartDrawer.DrawLineStyle(vh, lineType, lineWidth, sp, ep, lineColor);
                break;

            case Tooltip.Type.Shadow:
                UGL.DrawSector(vh, cenPos, radius, lineColor, tooltipAngle - 2, tooltipAngle + 2, chart.settings.cicleSmoothness);
                break;
            }
        }
        private bool SetSerieTooltip(Tooltip tooltip, List <Serie> series)
        {
            if (tooltip.trigger == Tooltip.Trigger.None)
            {
                return(false);
            }

            if (series.Count <= 0)
            {
                return(false);
            }

            string category        = null;
            var    showCategory    = false;
            var    isTriggerByAxis = false;
            var    dataIndex       = -1;

            tooltip.context.data.param.Clear();
            tooltip.context.pointer = chart.pointerPos;
            if (m_PointerContainer is GridCoord)
            {
                if (tooltip.trigger == Tooltip.Trigger.Axis)
                {
                    isTriggerByAxis = true;
                    GetAxisCategory(m_PointerContainer.index, ref dataIndex, ref category);
                    if (series.Count <= 1)
                    {
                        showCategory = true;
                        tooltip.context.data.title = series[0].serieName;
                    }
                    else
                    {
                        tooltip.context.data.title = category;
                    }
                }
            }

            for (int i = 0; i < series.Count; i++)
            {
                var serie = series[i];
                serie.context.isTriggerByAxis = isTriggerByAxis;
                if (isTriggerByAxis && dataIndex >= 0)
                {
                    serie.context.pointerItemDataIndex = dataIndex;
                }
                serie.handler.UpdateTooltipSerieParams(dataIndex, showCategory, category,
                                                       tooltip.marker, tooltip.itemFormatter, tooltip.numericFormatter,
                                                       ref tooltip.context.data.param,
                                                       ref tooltip.context.data.title);
            }
            TooltipHelper.ResetTooltipParamsByItemFormatter(tooltip, chart);
            if (tooltip.context.data.param.Count > 0)
            {
                tooltip.SetActive(true);
                if (tooltip.view != null)
                {
                    tooltip.view.Refresh();
                }
                TooltipHelper.LimitInRect(tooltip, chart.chartRect);
                return(true);
            }
            return(false);
        }