# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401, F403, F405
r"""
Rectangle intersection and containment tests.

Provides functions to test whether two axis-aligned rectangles intersect,
whether one rectangle fully contains another, and utilities for computing
the union bounding rectangle of multiple geometries.
"""

import raygeo
from raygeo.geo import types
__all__ = [
    "do_rects_intersect",
    "does_rect_contain_rect",
    "get_combined_rect",
    "is_point_inside_rect",
]

def do_rects_intersect(r1: types.Rect, r2: types.Rect) -> bool:
    r"""
    Check if two rectangles intersect.
    
    :param r1: First rectangle (x_min, y_min, x_max, y_max).
    :param r2: Second rectangle (x_min, y_min, x_max, y_max).
    :returns: True if the rectangles intersect.
    :complexity: O(1) time, O(1) space
    """

def does_rect_contain_rect(outer: types.Rect, inner: types.Rect) -> bool:
    r"""
    Check if one rectangle contains another.
    
    :param outer: Outer rectangle (x_min, y_min, x_max, y_max).
    :param inner: Inner rectangle (x_min, y_min, x_max, y_max).
    :returns: True if outer fully contains inner.
    :complexity: O(1) time, O(1) space
    """

def get_combined_rect(geometries: list[raygeo.geo.Geometry]) -> types.Rect:
    r"""
    Compute the union bounding box of multiple geometries.
    
    :param geometries: List of Geometry objects.
    :returns: Union bounding rectangle (x_min, y_min, x_max, y_max).
    :complexity: O(n) time, O(1) space where n is the number of geometries
    """

def is_point_inside_rect(point: types.Point, rect: types.Rect) -> bool:
    r"""
    Check if a point is inside a rectangle.
    
    :param point: Point (x, y) to test.
    :param rect: Rectangle (x_min, y_min, x_max, y_max).
    :returns: True if the point is inside the rectangle.
    :complexity: O(1) time, O(1) space
    """

