pub(crate) mod alignment;
pub(crate) mod bool2d;
pub(crate) mod contour_bool2d;
mod cdt;
mod clash_contact_axes;
pub mod clash_solid;
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;
#[cfg(feature = "triangulation-alt")]
pub use triangulation::alt_oracle::set_alt_triangulator;
pub(crate) mod scalar;
pub(crate) mod extrusion_generic;
pub(crate) mod profile_generic;
#[cfg(test)]
#[path = "b44_kernel_adjoint_tests.rs"]
mod b44_kernel_adjoint;
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;
#[cfg(test)]
pub(crate) mod world_frame_fixture;
pub mod zone_split;
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 contour_bool2d::{
boolean_2d, resolve_2d, sanitize as sanitize_contours, BooleanOp2D, ContourSet, Ring2D,
};
pub use clash_solid::{intersection_solid, DegenerateReason, IntersectionSolid};
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, GeometryClosure, GeometryHasher, DEFAULT_GEOM_HASH_TOLERANCE,
MIN_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, orient_mesh_outward_verdict, OrientVerdict};
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, FACETED_BREP_DEDUP_FACE_LIMIT,
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,
};