#![doc = include_str!("../README.md")]
#[cfg(feature = "std")]
extern crate std;
extern crate alloc;
mod bool_ops;
mod combinators;
mod inflate;
mod laminate;
mod polygon;
mod polygon_set;
mod polygon_unionfind;
mod unionfind;
pub use bool_ops::{Difference, Intersection, Union};
pub use combinators::{Inflated, Negated, Paralleled};
#[cfg(feature = "undoredo")]
pub use combinators::{RecordingInflated, RecordingNegated, RecordingParalleled};
pub use inflate::Inflate;
pub use laminate::Laminate;
#[cfg(feature = "undoredo")]
pub use laminate::{LaminateDelta, LaminateHalfDelta, RecordingLaminate};
pub use polygon::{Polygon, PolygonId, PolygonWithData, Rings};
pub use polygon_set::PolygonSet;
#[cfg(feature = "undoredo")]
pub use polygon_set::{PolygonSetDelta, PolygonSetHalfDelta, RecordingPolygonSet};
pub use polygon_unionfind::PolygonUnionFind;
#[cfg(feature = "undoredo")]
pub use polygon_unionfind::{
PolygonUnionFindDelta, PolygonUnionFindHalfDelta, RecordingPolygonUnionFind,
};
pub use unionfind::UnionFind;
pub trait Add<P> {
type Output;
fn add(&mut self, polygon: P) -> Self::Output;
}
pub trait Sub<P> {
type Output;
fn sub(&mut self, polygon: P) -> Self::Output;
}
pub trait Clip<P> {
type Output;
fn clip(&mut self, polygon: P) -> Self::Output;
}