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")
}
}
}