fun createTipLayoutHint()

in plot-builder/src/commonMain/kotlin/org/jetbrains/letsPlot/core/plot/builder/tooltip/loc/TargetPrototype.kt [45:117]


        fun createTipLayoutHint(
            hitCoord: DoubleVector,
            hitShapeKind: HitShape.Kind,
            tooltipKind: TipLayoutHint.Kind,
            stemLength: TipLayoutHint.StemLength,
            fillColor: Color?,
            markerColors: List<Color>,
            objectRadius: Double
        ): TipLayoutHint {

            return when (hitShapeKind) {
                POINT -> when (tooltipKind) {
                    VERTICAL_TOOLTIP ->
                        verticalTooltip(
                            hitCoord,
                            objectRadius,
                            stemLength,
                            fillColor,
                            markerColors
                        )

                    CURSOR_TOOLTIP -> cursorTooltip(hitCoord, stemLength, fillColor, markerColors)
                    else -> error("Wrong TipLayoutHint.kind = $tooltipKind for POINT")
                }

                RECT -> when (tooltipKind) {
                    VERTICAL_TOOLTIP -> verticalTooltip(
                        hitCoord,
                        objectRadius,
                        stemLength,
                        fillColor,
                        markerColors
                    )

                    HORIZONTAL_TOOLTIP -> horizontalTooltip(
                        hitCoord,
                        objectRadius,
                        stemLength,
                        fillColor,
                        markerColors
                    )

                    CURSOR_TOOLTIP -> cursorTooltip(hitCoord, stemLength, fillColor, markerColors)
                    ROTATED_TOOLTIP -> rotatedTooltip(hitCoord, objectRadius = 0.0, color = null, stemLength)
                    else -> error("Wrong TipLayoutHint.kind = $tooltipKind for RECT")
                }

                PATH -> when (tooltipKind) {
                    HORIZONTAL_TOOLTIP -> horizontalTooltip(
                        hitCoord,
                        objectRadius = 0.0,
                        stemLength,
                        fillColor,
                        markerColors
                    )

                    VERTICAL_TOOLTIP -> verticalTooltip(
                        hitCoord,
                        objectRadius = 0.0,
                        stemLength,
                        fillColor,
                        markerColors
                    )

                    else -> error("Wrong TipLayoutHint.kind = $tooltipKind for PATH")
                }

                POLYGON -> when (tooltipKind) {
                    CURSOR_TOOLTIP -> cursorTooltip(hitCoord, stemLength, fillColor, markerColors)
                    else -> error("Wrong TipLayoutHint.kind = $tooltipKind for POLYGON")
                }
            }
        }