math2/
lib.rs

1pub mod align;
2pub mod bezier;
3pub mod box_fit;
4pub mod color;
5pub mod compass;
6pub mod delta;
7pub mod layout;
8pub mod measurement;
9pub mod packing;
10pub mod range;
11pub mod raster;
12pub mod rect;
13pub mod snap;
14pub mod transform;
15pub mod ui;
16pub mod utils;
17pub mod vector2;
18pub mod vector4;
19
20pub use align::{scalar as align_scalar, vector2 as align_vector2};
21pub use bezier::{
22    CubicBezier, CubicBezierWithTangents, a2c as bezier_a2c, get_bbox as bezier_get_bbox,
23};
24pub use color::{
25    RGBA8888, RGBAf, TRGBA, hex_to_rgba8888, rgba_to_unit8_chunk, rgba8888_to_hex,
26    rgbaf_multiply_alpha, rgbaf_to_rgba8888,
27};
28pub use compass::{invert_direction, to_rectangle_side};
29pub use delta::transform as delta_transform;
30pub use layout::flex::{
31    AxisDirection as FlexAxisDirection, CrossAxisAlignment as FlexCrossAxisAlignment,
32    Guessed as FlexGuessed, MainAxisAlignment as FlexMainAxisAlignment, guess as layout_flex_guess,
33};
34pub use measurement::{Measurement, auxiliary_line_xylr, guide_line_xylr, measure};
35pub use packing::{ext::walk_to_fit as packing_walk_to_fit, fit as packing_fit};
36pub use range::{
37    Range, UniformGapGroup, from_rectangle, group_ranges_by_uniform_gap, length as range_length,
38    mean as range_mean, to_3points_chunk,
39};
40pub use raster::{
41    Bitmap, bresenham as raster_bresenham, circle as raster_circle, ellipse as raster_ellipse,
42    floodfill as raster_floodfill, fract, gaussian as raster_gaussian, noise, pad as raster_pad,
43    pascaltriangle as raster_pascaltriangle, rectangle as raster_rectangle,
44    resize as raster_resize, scale as raster_scale, smoothstep as raster_smoothstep,
45    tile as raster_tile,
46};
47pub use rect::boolean::subtract as rect_boolean_subtract;
48pub use rect::{
49    AlignKind, Alignment, CardinalDirection, Rect9Points, Rectangle, RectangleSide, Sides,
50    align as rect_align, align_a as rect_align_a, aspect_ratio, axis_projection_intersection,
51    contains, contains_point, distribute_evenly as rect_distribute_evenly, from_points,
52    get_cardinal_point, get_center, get_gaps as rect_get_gaps, get_relative_transform,
53    get_scale_factors, get_uniform_gap as rect_get_uniform_gap, inset as rect_inset, intersection,
54    intersects, is_identical as rect_identical, is_uniform as rect_uniform, offset,
55    pad as rect_pad, positive as rect_positive, quantize as rect_quantize, rotate as rect_rotate,
56    to_9points, to_9points_chunk, transform as rect_transform, union,
57};
58pub use snap::axis::{
59    AxisAlignedPoint, Movement, Snap1DResult, Snap2DAxisAlignedResult, Snap2DAxisConfig,
60    axis_locked_by_dominance, normalize as movement_normalize, snap1d, snap2d_axis_aligned,
61};
62pub use snap::canvas::{Guide as SnapGuide, SnapToCanvasResult, snap_to_canvas_geometry};
63pub use snap::spacing::{
64    DistributionGeometry1D, ProjectionPoint as SnapProjectionPoint, plot_distribution_geometry,
65};
66pub use snap::viewport::{
67    Margins as ViewportMargins, transform_to_fit as viewport_transform_to_fit,
68};
69pub use ui::{
70    Line as UiLine, Point as UiPoint, Rule as UiRule, format_number, normalize_line,
71    transform_line, transform_point,
72};
73pub use utils::{
74    angle_to_axis, clamp, combinations, is_uniform, mean, nearest, permutations, powerset,
75    principal_angle, quantize,
76};
77pub use vector4::{Vector4, identical as vector4_identical};