pub(crate) mod alignment;
pub(crate) mod bool2d;
mod cdt;
pub mod csg;
#[cfg(feature = "csg_capture")]
pub mod csg_capture;
pub(crate) mod facet_weld;
pub mod mesh_weld;
pub(crate) mod diag;
pub(crate) mod diagnostics;
pub(crate) mod error;
pub(crate) mod geom_hash;
pub(crate) mod grid;
pub(crate) mod extrusion;
pub(crate) mod instancing;
pub mod kernel;
pub mod material_layer_index;
pub mod mesh;
pub(crate) mod mesh_orient;
pub(crate) mod processors;
pub(crate) mod profile;
pub(crate) mod profile_extractor;
pub(crate) mod profiles;
pub mod projection_outline;
pub mod rect_fast;
pub use rect_fast::RectFastStats;
pub(crate) mod router;
pub mod simplify;
pub(crate) mod tessellation;
pub mod space_dcel;
pub(crate) mod transform;
pub(crate) mod triangulation;
pub(crate) 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, subtract_multiple_2d_counted,
};
pub use csg::{calculate_normals, ClippingProcessor, Plane, Triangle};
pub use diagnostics::{BoolFailure, BoolFailureReason, BoolOp};
pub use error::{Error, Result};
pub use geom_hash::{hash_mesh_world, GeometryHasher, DEFAULT_GEOM_HASH_TOLERANCE};
pub use extrusion::{extrude_profile, extrude_profile_lofted, extrude_profile_with_voids};
pub use instancing::{
bake_source_at_world, collate_and_encode, collate_instances, collate_refs,
compose_instance_world_row_major, decode_instanced, encode_instanced, encode_refs,
instance_rel_row_major_f32, verify_recomposition, Collated, DecodedInstance, DecodedInstanced,
DecodedTemplate, InstanceMeshRef, InstanceOccurrence, InstanceTemplate, INSTANCED_MAGIC,
INSTANCED_VERSION,
};
pub use material_layer_index::{
LayerAxis, LayerBuildup, LayerInfo, MaterialLayerFlat, MaterialLayerIndex,
};
pub use mesh::{InstanceMeta, Mesh, SubMesh, SubMeshCollection};
pub use mesh_orient::orient_mesh_outward;
pub use processors::{
AdvancedBrepProcessor, BooleanClippingProcessor, ExtrudedAreaSolidProcessor,
ExtrudedAreaSolidTaperedProcessor, FaceBasedSurfaceModelProcessor, FacetedBrepProcessor,
build_texture_index, ImageTextureRef, MeshTexture, PolygonalFaceSetProcessor,
ResolvedTextureMap, RevolvedAreaSolidProcessor, TextureAttachment, TextureSource, SurfaceOfLinearExtrusionProcessor,
SweptDiskSolidProcessor, TriangulatedFaceSetProcessor,
};
pub use alignment::{AlignmentCurve, AlignmentFrame};
pub use profile::{Profile2D, Profile2DWithVoids, ProfileType, VoidInfo};
pub use profile_extractor::{extract_profiles, ExtractedProfile};
pub use profiles::ProfileProcessor;
pub use router::take_bool2d_stats;
pub use router::{take_prism_defers, take_prism_stats};
pub use router::{
aggregate_diagnostics, local_frame_set_enabled_override, ClassificationStats,
GEOMETRY_DIAGNOSTICS_SCHEMA_VERSION,
ClassificationSummary, GeometryDiagnostics, GeometryProcessor, GeometryRouter,
HostOpeningDiagnostic, ItemDedupCache, MappedInstancePlan, OpeningDiagnostic, OpeningKindDiag,
ReasonCount, RectFastSummary, RectParam, SharedMappedItemCache, WorstHost,
};
pub const LARGE_COORD_THRESHOLD_METERS: f64 = 10000.0;
pub use simplify::{simplify_mesh, SimplifyOptions, SimplifyStats};
pub use tessellation::{scale_segments, TessellationQuality};
pub use transform::{
parse_axis2_placement_3d, parse_axis2_placement_3d_from_id, parse_cartesian_point,
parse_cartesian_point_from_id, parse_direction, parse_direction_from_id,
rotation_angle_about_z,
};
pub use triangulation::triangulate_polygon;
pub use void_index::{
build_aggregate_children_index, compute_parts_to_skip, propagate_voids_to_parts,
propagate_voids_via_aggregates, VoidIndex,
};