Skip to content

Instantly share code, notes, and snippets.

@oas004
Created December 7, 2022 22:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oas004/1a009a45ecf4bed0b04cd777148466f1 to your computer and use it in GitHub Desktop.
Save oas004/1a009a45ecf4bed0b04cd777148466f1 to your computer and use it in GitHub Desktop.
internal fun splitSegments(
indicatorColor: Color,
trackColor: Color,
range: ClosedFloatingPointRange<Float>
): List<CalculatedSegment> {
return buildList {
range.intersect(topRightRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, topRight, it))
}
}
range.intersect(rightTopCornerRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, rightTopCorner, it))
}
}
range.intersect(rightRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, right, it))
}
}
range.intersect(rightBottomCornerRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, rightBottomCorner, it))
}
}
range.intersect(bottomRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, bottom, it))
}
}
range.intersect(leftBottomCornerRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, leftBottomCorner, it))
}
}
range.intersect(leftRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, left, it))
}
}
range.intersect(leftTopCornerRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, leftTopCorner, it))
}
}
range.intersect(topLeftRange)?.let {
if (!it.isZeroWidth()) {
add(CalculatedSegment(indicatorColor, trackColor, topLeft, it))
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment