i_curve 0.1.2

Boolean operations on closed paths of lines, Bezier curves, and rational elliptic arcs
Documentation
//! Advanced integer-coordinate curve API.
//!
//! Integer paths and shapes are plain structural containers. [`IntCurveOverlay`]
//! validates that inputs are non-empty and closed and that rational arcs meet
//! the integer kernel invariants when they are added. Most applications should
//! prefer the crate-level float API, which selects and applies an integer
//! conversion scale automatically.
//!
//! Every integer geometry type uses the sealed [`CurveInt`] engine bound. The
//! supported coordinate types are `i16`, `i32`, and `i64`.

mod bool;
mod curve;

/// Fixed-point rational arcs and their supporting ellipse representation.
pub mod arc {
    pub use crate::kernel::int::curve::arc::{
        ArcDirection, ArcPhase, ArcSegment as RationalArc, ArcVector, EllipseFrame, RationalArcError,
    };
    pub use crate::kernel::int::curve::param::SegmentParam as CurveParameter;
}

pub(crate) use bool::overlay::validate_shape;
pub use bool::overlay::{
    CurveInputError, CurveOverlayOptions, CurveOverlayOptionsError, IntCurveOverlay, overlay,
};
pub use curve::path::CurvePath;
pub use curve::segment::CurveSegment;
pub use curve::shape::CurveShape;
/// Integer engine supported by curve conversion and Boolean operations.
///
/// This trait is sealed and implemented for `i16`, `i32`, and `i64`.
pub use i_overlay::core::integer::OverlayInt as CurveInt;
pub use i_overlay::core::overlay::ShapeType;
pub use i_overlay::i_shape::int::IntPoint;

/// Bits reserved for intermediate polynomial coefficient growth.
pub(crate) const CURVE_COORDINATE_SAFETY_BITS: u32 = 6;