Introduce `Rectangle.sub` and `Box.sub` functions to derive sub-rectangles and sub-boxes from existing shapes using relative dimensions. Add `Box.place` to position a box relative to another using customizable anchors.
Introduce the `imageFitSub` function, enabling subsections of images to be drawn with fit and alignment capabilities. Added a demo showcasing its usage with grid-based rendering and updated dependencies with `orx-noise` for randomness support.
Introduce `uniformSub` functions to generate sub-boxes and sub-rectangles with random dimensions within specified ranges. These additions enhance functionality for creating randomized geometric shapes.
Introduced horizontalAlign and verticalAlign properties in WriteStyle and TextWriter, enabling precise text alignment within bounding boxes. Enhanced text token management to support alignment calculations and adjusted demos to showcase the new capabilities.
Introduce `Rectangle.place` to position rectangles dynamically within bounds using anchor points. Added a demo (`DemoRectanglePlace01`) showcasing a 10x10 grid of rectangles evenly distributed across the canvas.
Introduce `Boolean.random` and `Boolean.randoms` functions for generating random Boolean values with a specified probability. These utilities support single values and lists, using a customizable `Random` instance.
Introduce `splitAtX`, `splitAtY`, and `splitAtZ` methods to divide a box along specific axes. Implement `subtract` methods to handle box subtraction and remove intersecting regions, with support for operations on individual boxes and lists of boxes.
Introduce functions to split rectangles at specified axes and subtract overlapping areas. These utilities allow precise manipulation of rectangle shapes, including dividing and removing intersections while preserving non-overlapping sections.
This commit introduces `Rectangle.irregularGrid`, enabling the creation of grids with irregular spacing based on weights. New helper methods and properties for 2D rectangle lists, such as subgrid selection, bounds calculation, and random access, are also added. Additionally, two new demos showcase regular and irregular grid features.