pub mod bool2d;
mod bsp_csg;
pub mod csg;
pub mod error;
pub mod extrusion;
pub mod mesh;
pub mod processors;
pub mod profile;
pub mod profile_extractor;
pub mod profiles;
pub mod router;
pub mod transform;
pub mod triangulation;
pub mod void_analysis;
pub mod void_index;
pub use nalgebra::{Point2, Point3, Vector2, Vector3};
pub use bool2d::{
compute_signed_area, ensure_ccw, ensure_cw, is_valid_contour, point_in_contour, subtract_2d,
subtract_multiple_2d, union_contours,
};
pub use csg::{calculate_normals, ClippingProcessor, Plane, Triangle};
pub use error::{Error, Result};
pub use extrusion::{extrude_profile, extrude_profile_with_voids};
pub use mesh::{CoordinateShift, Mesh, SubMesh, SubMeshCollection};
pub use processors::{
AdvancedBrepProcessor, BooleanClippingProcessor, ExtrudedAreaSolidProcessor,
FaceBasedSurfaceModelProcessor, FacetedBrepProcessor, MappedItemProcessor,
PolygonalFaceSetProcessor, RevolvedAreaSolidProcessor, SurfaceOfLinearExtrusionProcessor,
SweptDiskSolidProcessor, TriangulatedFaceSetProcessor,
};
pub use profile::{Profile2D, Profile2DWithVoids, ProfileType, VoidInfo};
pub use profile_extractor::{extract_profiles, ExtractedProfile};
pub use profiles::ProfileProcessor;
pub use router::{GeometryProcessor, GeometryRouter};
pub use transform::{
apply_rtc_offset, parse_axis2_placement_3d, parse_axis2_placement_3d_from_id,
parse_cartesian_point, parse_cartesian_point_from_id, parse_direction, parse_direction_from_id,
};
pub use triangulation::triangulate_polygon;
pub use void_analysis::{
classify_voids_batch, extract_coplanar_voids, extract_nonplanar_voids, VoidAnalyzer,
VoidClassification,
};
pub use void_index::{propagate_voids_to_parts, VoidIndex, VoidStatistics};