diff --git a/src/Tools/Draw.gd b/src/Tools/Draw.gd index 9944369b8..3ff6059d9 100644 --- a/src/Tools/Draw.gd +++ b/src/Tools/Draw.gd @@ -234,7 +234,6 @@ func _prepare_tool() -> void: func _prepare_circle_tool(fill: bool) -> void: - _circle_tool_shortcut = PoolVector2Array() var circle_tool_map := _create_circle_indicator(_brush_size, fill) # Go through that BitMap and build an Array of the "displacement" from the center of the bits # that are true. @@ -510,33 +509,9 @@ func _create_pixel_indicator(size: int) -> BitMap: func _create_circle_indicator(size: int, fill := false) -> BitMap: - var bitmap := BitMap.new() - bitmap.create(Vector2.ONE * (size * 2 + 1)) - var position := Vector2(size, size) - var r := size - var x := -r - var y := 0 - var err := 2 - r * 2 - var draw := true - if fill: - bitmap.set_bit(position, true) - while x < 0: - if draw: - for i in range(1 if fill else -x, -x + 1): - bitmap.set_bit(position + Vector2(-i, y), true) - bitmap.set_bit(position + Vector2(-y, -i), true) - bitmap.set_bit(position + Vector2(i, -y), true) - bitmap.set_bit(position + Vector2(y, i), true) - draw = not fill - r = err - if r <= y: - y += 1 - err += y * 2 + 1 - draw = true - if r > x || err > y: - x += 1 - err += x * 2 + 1 - return bitmap + _circle_tool_shortcut = PoolVector2Array() + var diameter := Vector2(size, size) * 2 + Vector2.ONE + return _fill_bitmap_with_points(_compute_draw_tool_circle(Vector2(size, size), fill), diameter) func _create_line_indicator(indicator: BitMap, start: Vector2, end: Vector2) -> BitMap: