microui  14.5.5
microui
ui_rect_util.h
Go to the documentation of this file.
1 /*
2  * C
3  *
4  * Copyright 2024-2026 MicroEJ Corp. All rights reserved.
5  * MicroEJ Corp. PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
6  */
7 
8 #ifndef UI_RECT_UTIL_H
9 #define UI_RECT_UTIL_H
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
25 // --------------------------------------------------------------------------------
26 // Includes
27 // --------------------------------------------------------------------------------
28 
29 #include <stddef.h>
30 
31 #include "ui_rect.h"
32 #include "ui_util.h"
33 
34 // --------------------------------------------------------------------------------
35 // Constants
36 // --------------------------------------------------------------------------------
37 
41 #define UI_RECT_EMPTY { 1u, 1u, 0u, 0u }
42 
43 // --------------------------------------------------------------------------------
44 // Functions
45 // --------------------------------------------------------------------------------
46 
56 static inline ui_rect_t UI_RECT_get_minimum_bounding_rect_two_rects(const ui_rect_t *first, const ui_rect_t *second) {
57  return UI_RECT_new_xyxy(MIN(first->x1, second->x1), MIN(first->y1, second->y1), MAX(first->x2, second->x2),
58  MAX(first->y2, second->y2));
59 }
60 
70 ui_rect_t UI_RECT_get_minimum_bounding_rect(const ui_rect_t rects[], const size_t count);
71 
81 uint32_t UI_RECT_union(ui_rect_t output[3], const ui_rect_t *first, const ui_rect_t *second);
82 
92 uint32_t UI_RECT_subtract(ui_rect_t output[4], const ui_rect_t *first, const ui_rect_t *second);
93 
94 // --------------------------------------------------------------------------------
95 // EOF
96 // --------------------------------------------------------------------------------
97 
98 #ifdef __cplusplus
99 }
100 #endif
101 
102 #endif // UI_RECT_UTIL_H
ui_rect_t UI_RECT_get_minimum_bounding_rect(const ui_rect_t rects[], const size_t count)
Computes the minimum bounding rectangle of an array of rectangles.
Definition: ui_rect_util.c:32
uint32_t UI_RECT_subtract(ui_rect_t output[4], const ui_rect_t *first, const ui_rect_t *second)
Computes the difference between two rectangles.
Definition: ui_rect_util.c:89
uint32_t UI_RECT_union(ui_rect_t output[3], const ui_rect_t *first, const ui_rect_t *second)
Computes the union of two rectangles.
Definition: ui_rect_util.c:42
Utility functions.
#define MIN(a, b)
Gets the lowest value.
Definition: ui_util.h:31
#define MAX(a, b)
Gets the highest value.
Definition: ui_util.h:38