#![doc = include_str!("../README.md")]
#[cfg(feature = "std")]
extern crate std;
extern crate alloc;
mod bool_ops;
mod combinators;
mod inflate;
mod layers_with_transitions;
mod polygon;
mod polygon_set;
mod polygon_unionfind;
mod unionfind;
pub use combinators::{Inflated, Negated, Paralleled};
#[cfg(feature = "undoredo")]
pub use combinators::{RecordingInflated, RecordingNegated, RecordingParalleled};
pub use inflate::Inflate;
pub use layers_with_transitions::LayersWithTransitions;
#[cfg(feature = "undoredo")]
pub use layers_with_transitions::{
LayersWithTransitionsDelta, LayersWithTransitionsHalfDelta, RecordingLayersWithTransitions,
};
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;
}