/// <summary> /// Method implementation for Generate Labels in ChartAxis /// </summary> /// <param name="axis">The axis.</param> /// <param name="smallTicksPerInterval">The small ticks per interval.</param> internal static void GenerateVisibleLabels(ChartAxis axis, double smallTicksPerInterval) { double interval = axis.VisibleInterval; double position = axis.VisibleRange.Start - (axis.VisibleRange.Start % interval); for (; position <= axis.VisibleRange.End; position += interval) { if (axis.VisibleRange.Inside(position)) { axis.VisibleLabels.Add(new ChartAxisLabel(position, axis.GetActualLabelContent(position), position)); } if (axis.smallTicksRequired) { axis.AddSmallTicksPoint(position); } } }
/// <summary> /// Generates the visible labels. /// </summary> /// <param name="axis">The axis.</param> internal static void GenerateVisibleLabels3D(ChartAxis axis, object minimum, object maximum, object actualInterval) { double interval = axis.VisibleInterval; var range = axis.VisibleRange; double position; if ((minimum != null && maximum != null && actualInterval != null) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) { position = range.Start; } else { position = range.Start - (range.Start % interval); } for (; position <= axis.VisibleRange.End; position += interval) { if (axis.VisibleRange.Inside(position)) { axis.VisibleLabels.Add(new ChartAxisLabel(position, axis.GetLabelContent(position), position)); } if (axis.smallTicksRequired) { axis.AddSmallTicksPoint(position); } } #if NETFX_CORE if (((maximum != null && range.End.Equals((TimeSpan.Parse(maximum.ToString())).TotalMilliseconds)) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) && !range.End.Equals(position - interval)) #else if (((maximum != null && range.End.Equals(((TimeSpan)maximum).TotalMilliseconds)) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) && !range.End.Equals(position - interval)) #endif { axis.VisibleLabels.Add(new ChartAxisLabel(range.End, axis.GetLabelContent(range.End), range.End)); } }
/// <summary> /// Method implementation for Generate Labels in ChartAxis3D /// </summary> /// <param name="axis">The axis.</param> /// <param name="smallTicksPerInterval">The small ticks per interval.</param> internal static void GenerateVisibleLabels3D(ChartAxis axis, object minimum, object maximum, object actualInterval, double smallTicksPerInterval) { DoubleRange range = axis.VisibleRange; double interval = axis.VisibleInterval; double position; if ((minimum != null && maximum != null && actualInterval != null) || axis.DesiredIntervalsCount != null || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) { position = range.Start; } else { position = range.Start - (range.Start % interval); } for (; position <= range.End; position += interval) { if (range.Inside(position)) { axis.VisibleLabels.Add(new ChartAxisLabel(position, axis.GetActualLabelContent(position), position)); } if (axis.smallTicksRequired) { axis.AddSmallTicksPoint(position); } } if (((maximum != null && range.End.Equals(maximum)) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) && !range.End.Equals(position - interval)) { axis.VisibleLabels.Add(new ChartAxisLabel(range.End, axis.GetActualLabelContent(range.End), range.End)); } }
/// <summary> /// Method implementation for Generate Labels in ChartAxis3D /// </summary> /// <param name="axis">The axis.</param> /// <param name="maximum">The maximum.</param> /// <param name="minimum">The minimum.</param> /// <param name="actualInterval">The actual interval.</param> internal static void GenerateVisibleLabels3D(ChartAxis axis, object minimum, object maximum, object actualInterval, double logBase) { double interval = axis.VisibleInterval; double position; if ((minimum != null && maximum != null && actualInterval != null) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) { position = axis.VisibleRange.Start; } else { position = axis.VisibleRange.Start - (axis.VisibleRange.Start % axis.ActualInterval); } for (; position <= axis.VisibleRange.End; position += interval) { if (axis.VisibleRange.Inside(position)) { axis.VisibleLabels.Add(new ChartAxisLabel(position, axis.GetLabelContent(Math.Pow(logBase, position)), position)); } if (axis.smallTicksRequired) { axis.AddSmallTicksPoint(position, (axis as LogarithmicAxis3D).LogarithmicBase); } } if (((maximum != null && axis.VisibleRange.End.Equals(maximum)) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible)) && !axis.VisibleRange.End.Equals(position - interval)) { axis.VisibleLabels.Add(new ChartAxisLabel(axis.VisibleRange.End, axis.GetLabelContent(Math.Pow(logBase, axis.VisibleRange.End)), axis.VisibleRange.End)); } }
/// <summary> /// Generates the visible labels3D. /// </summary> /// <param name="axis">The axis.</param> /// <param name="intervalType">Type of the interval.</param> /// Method implementation for Create VisibleLabels for DateTime axis internal static void GenerateVisibleLabels3D(ChartAxis axis, object minimum, object maximum, DateTimeIntervalType intervalType) { var startDate = axis.VisibleRange.Start.FromOADate(); DateTime alignedDate; var interval = IncreaseInterval(startDate, axis.VisibleInterval, intervalType).ToOADate() - axis.VisibleRange.Start; if (axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible) { alignedDate = startDate; } else { alignedDate = AlignRangeStart(startDate, axis.VisibleInterval, intervalType); } var dateTimeAxis = axis as DateTimeAxis; var days = ""; double distinctDate = 0d; double position = alignedDate.ToOADate(); if (dateTimeAxis != null && dateTimeAxis.EnableBusinessHours) { days = dateTimeAxis.InternalWorkingDays; alignedDate = new DateTime(startDate.Year, startDate.Month, startDate.Day).AddHours(dateTimeAxis.OpenTime); position = alignedDate.ToOADate(); } var dateTimeAxis3D = axis as DateTimeAxis3D; while (position <= axis.VisibleRange.End) { if (axis.VisibleRange.Inside(position)) { var dateTimeAxisLabel = new DateTimeAxisLabel(position, alignedDate.ToString(axis.LabelFormat, CultureInfo.CurrentCulture), position); dateTimeAxisLabel.IntervalType = dateTimeAxis3D.ActualIntervalType3D; dateTimeAxisLabel.IsTransition = GetTransitionState(ref distinctDate, alignedDate, dateTimeAxis3D.ActualIntervalType3D); axis.VisibleLabels.Add(dateTimeAxisLabel); } alignedDate = IncreaseNonWorkingInterval(days, dateTimeAxis, alignedDate, axis.VisibleInterval, intervalType); if (dateTimeAxis != null && dateTimeAxis.EnableBusinessHours) { alignedDate = NonWorkingDaysIntervals(dateTimeAxis, alignedDate, interval, intervalType); } if (axis.smallTicksRequired) { axis.AddSmallTicksPoint(position, interval); } position = alignedDate.ToOADate(); } if (((maximum != null && axis.VisibleRange.End.FromOADate().Equals(maximum)) || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.AlwaysVisible || axis.EdgeLabelsVisibilityMode == EdgeLabelsVisibilityMode.Visible) && !axis.VisibleRange.End.Equals(position - interval)) { var dateTimeAxisLabel = new DateTimeAxisLabel(position, alignedDate.ToString(axis.LabelFormat, CultureInfo.CurrentCulture), position); dateTimeAxisLabel.IntervalType = dateTimeAxis3D.ActualIntervalType3D; dateTimeAxisLabel.IsTransition = GetTransitionState(ref distinctDate, alignedDate, dateTimeAxis3D.ActualIntervalType3D); axis.VisibleLabels.Add(dateTimeAxisLabel); } }