private static getBubbleRadius()

in src/EnhancedScatterChart.ts [1924:1972]


    private static getBubbleRadius(
        radiusData: EnhancedScatterChartRadiusData,
        sizeRange: NumberRange,
        viewport: IViewport
    ): number {

        let actualSizeDataRange: EnhancedScatterDataRange = null,
            bubblePixelAreaSizeRange: EnhancedScatterDataRange = null,
            measureSize: DataViewValueColumn = radiusData.sizeMeasure;

        if (!measureSize) {
            return EnhancedScatterChart.BubbleRadius;
        }

        const minSize: number = sizeRange.min
            ? sizeRange.min
            : EnhancedScatterChart.DefaultBubbleRadius;

        const maxSize = sizeRange.max
            ? sizeRange.max
            : EnhancedScatterChart.DefaultBubbleRadius;

        const min: number = Math.min(minSize, EnhancedScatterChart.DefaultBubbleRadius),
            max: number = Math.max(maxSize, EnhancedScatterChart.DefaultBubbleRadius);

        actualSizeDataRange = {
            minRange: min,
            maxRange: max,
            delta: max - min
        };

        bubblePixelAreaSizeRange = EnhancedScatterChart.getBubblePixelAreaSizeRange(
            viewport,
            EnhancedScatterChart.MinSizeRange,
            EnhancedScatterChart.MaxSizeRange);

        if (measureSize.values) {
            const sizeValue: number = <number>measureSize.values[radiusData.index];

            if (sizeValue != null) {
                return EnhancedScatterChart.PROJECT_SIZE_TO_PIXELS(
                    sizeValue,
                    actualSizeDataRange,
                    bubblePixelAreaSizeRange) / EnhancedScatterChart.BubbleRadiusDivider;
            }
        }

        return EnhancedScatterChart.BubbleRadius;
    }