private calculateDataPoints()

in src/TornadoChart.ts [788:826]


    private calculateDataPoints(dataPoints: TornadoChartPoint[]): void {
        let categoriesLength: number = this.dataView.categories.length;
        let settings: TornadoChartSettings = this.dataView.settings;
        let heightColumn: number = Math.max(this.heightColumn, 0);
        let py: number = heightColumn / 2;
        let pyHighlighted: number = heightColumn * TornadoChart.HighlightedShapeFactor / 2;
        let maxSeries: boolean = this.dataView.series.length === TornadoChart.MaxSeries;

        for (let i: number = 0; i < dataPoints.length; i++) {
            let dataPoint: TornadoChartPoint = dataPoints[i];

            let shiftToMiddle: boolean = i < categoriesLength && maxSeries;
            let shiftToRight: boolean = i > categoriesLength - 1;
            let widthOfColumn: number = this.getColumnWidth(dataPoint.value, dataPoint.minValue, dataPoint.maxValue, this.columnWidth);
            let dx: number = (this.columnWidth - widthOfColumn) * Number(shiftToMiddle) + this.columnWidth * Number(shiftToRight)/* - scrollBarWidth*/;
            dx = Math.max(dx, 0);

            let highlighted: boolean = this.dataView.hasHighlights && dataPoint.highlight;
            let highlightOffset: number = highlighted ? heightColumn * (1 - TornadoChart.HighlightedShapeFactor) / 2 : 0;
            let dy: number = (heightColumn + this.columnPadding) * (i % categoriesLength) + highlightOffset;

            let label: LabelData = this.getLabelData(
                dataPoint.value,
                dx,
                widthOfColumn,
                shiftToMiddle,
                dataPoint.formatString,
                settings);

            dataPoint.dx = dx;
            dataPoint.dy = dy;
            dataPoint.px = widthOfColumn / 2;
            dataPoint.py = highlighted ? pyHighlighted : py;
            dataPoint.angle = shiftToMiddle ? TornadoChart.MaxAngle : TornadoChart.MinAngle;
            dataPoint.width = widthOfColumn;
            dataPoint.height = highlighted ? heightColumn * TornadoChart.HighlightedShapeFactor : heightColumn;
            dataPoint.label = label;
        }
    }