Как насчет общего решения, где вы моделируете прямоугольник, подобный этому:
data class Coord(val x: Float, val y: Float)
data class Rectangle(val topLeft: Coord, val bottomRight: Coord, val childRectangles: Collection<Rectangle>)
Затем у вас есть функция рисования, подобная этой:
fun draw(rectangle: Rectangle, canvas: Canvas, paint: Paint) {
canvas.drawRect(
rectangle.topLeft.x,
rectangle.topLeft.y,
rectangle.bottomRight.x,
rectangle.bottomRight.y,
paint
)
rectangle.childRectangles.forEach { childRectangle ->
draw(childRectangle, canvas, paint)
}
}