Skip to main content

dear_imgui_rs/utils/
visibility.rs

1use super::validation::assert_finite_vec2;
2use crate::sys;
3
4impl crate::ui::Ui {
5    /// Test if rectangle (of given size, starting from cursor position) is visible / not clipped.
6    #[doc(alias = "IsRectVisible")]
7    pub fn is_rect_visible(&self, size: [f32; 2]) -> bool {
8        assert_finite_vec2("Ui::is_rect_visible()", "size", size);
9        unsafe {
10            let size = sys::ImVec2 {
11                x: size[0],
12                y: size[1],
13            };
14            sys::igIsRectVisible_Nil(size)
15        }
16    }
17
18    /// Test if rectangle (in screen space) is visible / not clipped.
19    #[doc(alias = "IsRectVisible")]
20    pub fn is_rect_visible_ex(&self, rect_min: [f32; 2], rect_max: [f32; 2]) -> bool {
21        assert_finite_vec2("Ui::is_rect_visible_ex()", "rect_min", rect_min);
22        assert_finite_vec2("Ui::is_rect_visible_ex()", "rect_max", rect_max);
23        unsafe {
24            let rect_min = sys::ImVec2 {
25                x: rect_min[0],
26                y: rect_min[1],
27            };
28            let rect_max = sys::ImVec2 {
29                x: rect_max[0],
30                y: rect_max[1],
31            };
32            sys::igIsRectVisible_Vec2(rect_min, rect_max)
33        }
34    }
35}