resvg/
geom.rs

1// Copyright 2023 the Resvg Authors
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3
4/// Fits the current rect into the specified bounds.
5pub fn fit_to_rect(
6    r: tiny_skia::IntRect,
7    bounds: tiny_skia::IntRect,
8) -> Option<tiny_skia::IntRect> {
9    let mut left = r.left();
10    if left < bounds.left() {
11        left = bounds.left();
12    }
13
14    let mut top = r.top();
15    if top < bounds.top() {
16        top = bounds.top();
17    }
18
19    let mut right = r.right();
20    if right > bounds.right() {
21        right = bounds.right();
22    }
23
24    let mut bottom = r.bottom();
25    if bottom > bounds.bottom() {
26        bottom = bounds.bottom();
27    }
28
29    tiny_skia::IntRect::from_ltrb(left, top, right, bottom)
30}