brepkit-operations 3.2.22

CAD modeling operations (booleans, fillets, extrusions) for brepkit
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88"
name = "brepkit-operations"
version = "3.2.22"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CAD modeling operations (booleans, fillets, extrusions) for brepkit"
homepage = "https://github.com/andymai/brepkit"
readme = "README.md"
keywords = [
    "cad",
    "brep",
    "geometry",
    "solid-modeling",
    "nurbs",
]
categories = [
    "graphics",
    "mathematics",
    "science",
]
license = "AGPL-3.0-only"
repository = "https://github.com/andymai/brepkit"

[features]
perf-counters = ["brepkit-algo/perf-counters"]

[lib]
name = "brepkit_operations"
path = "src/lib.rs"

[[example]]
name = "approx_census"
path = "examples/approx_census.rs"

[[example]]
name = "debug_boolean"
path = "examples/debug_boolean.rs"

[[example]]
name = "flux_orientation_probe"
path = "examples/flux_orientation_probe.rs"

[[example]]
name = "perf_probe"
path = "examples/perf_probe.rs"

[[example]]
name = "plate_probe"
path = "examples/plate_probe.rs"

[[example]]
name = "profile_boolean"
path = "examples/profile_boolean.rs"

[[example]]
name = "tess_profile"
path = "examples/tess_profile.rs"

[[test]]
name = "blend_integration"
path = "tests/blend_integration.rs"

[[test]]
name = "boolean_edge_cases"
path = "tests/boolean_edge_cases.rs"

[[test]]
name = "boolean_invariants"
path = "tests/boolean_invariants.rs"

[[test]]
name = "boolean_stress"
path = "tests/boolean_stress.rs"

[[test]]
name = "coaxial_cone_cut_classification"
path = "tests/coaxial_cone_cut_classification.rs"

[[test]]
name = "coaxial_cones"
path = "tests/coaxial_cones.rs"

[[test]]
name = "coaxial_cylinders"
path = "tests/coaxial_cylinders.rs"

[[test]]
name = "coaxial_torus"
path = "tests/coaxial_torus.rs"

[[test]]
name = "coincident_planes"
path = "tests/coincident_planes.rs"

[[test]]
name = "coincident_proptest"
path = "tests/coincident_proptest.rs"

[[test]]
name = "concentric_spheres"
path = "tests/concentric_spheres.rs"

[[test]]
name = "convex_chamfer_volume_check"
path = "tests/convex_chamfer_volume_check.rs"

[[test]]
name = "curved_properties"
path = "tests/curved_properties.rs"

[[test]]
name = "examples"
path = "tests/examples.rs"

[[test]]
name = "golden_regression"
path = "tests/golden_regression.rs"

[[test]]
name = "parity_boolean_curved"
path = "tests/parity_boolean_curved.rs"

[[test]]
name = "parity_boolean_empty"
path = "tests/parity_boolean_empty.rs"

[[test]]
name = "parity_boolean_planar"
path = "tests/parity_boolean_planar.rs"

[[test]]
name = "perf_64cut_determinism"
path = "tests/perf_64cut_determinism.rs"

[[test]]
name = "profile_intersect"
path = "tests/profile_intersect.rs"

[[test]]
name = "proptest_operations"
path = "tests/proptest_operations.rs"

[[test]]
name = "regress_blend_keepside_tangency"
path = "tests/regress_blend_keepside_tangency.rs"

[[test]]
name = "regress_blend_trim_neighbor_split"
path = "tests/regress_blend_trim_neighbor_split.rs"

[[test]]
name = "regress_chamfer_obtuse_ridge"
path = "tests/regress_chamfer_obtuse_ridge.rs"

[[test]]
name = "regress_fillet_concave_notch"
path = "tests/regress_fillet_concave_notch.rs"

[[test]]
name = "regress_hexwall_cuts"
path = "tests/regress_hexwall_cuts.rs"

[[test]]
name = "regress_kumiko_corner_wedge"
path = "tests/regress_kumiko_corner_wedge.rs"

[[test]]
name = "scale_dependent"
path = "tests/scale_dependent.rs"

[[test]]
name = "tessellate_watertight"
path = "tests/tessellate_watertight.rs"

[[bench]]
name = "boolean_perf"
path = "benches/boolean_perf.rs"
harness = false

[[bench]]
name = "boolean_tracking"
path = "benches/boolean_tracking.rs"
harness = false

[[bench]]
name = "cad_operations"
path = "benches/cad_operations.rs"
harness = false

[[bench]]
name = "compound_cut_perf"
path = "benches/compound_cut_perf.rs"
harness = false

[[bench]]
name = "fuse_perf"
path = "benches/fuse_perf.rs"
harness = false

[dependencies.brepkit-algo]
version = "3.2.22"

[dependencies.brepkit-blend]
version = "3.2.22"

[dependencies.brepkit-check]
version = "3.2.22"

[dependencies.brepkit-geometry]
version = "3.2.22"

[dependencies.brepkit-heal]
version = "3.2.22"

[dependencies.brepkit-math]
version = "3.2.22"

[dependencies.brepkit-offset]
version = "3.2.22"

[dependencies.brepkit-sketch]
version = "3.2.22"

[dependencies.brepkit-topology]
version = "3.2.22"

[dependencies.log]
version = "0.4"

[dependencies.rayon]
version = "1.11"

[dependencies.thiserror]
version = "2"

[dev-dependencies.brepkit-topology]
version = "3.2.22"
features = ["test-utils"]

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.env_logger]
version = "0.11"

[dev-dependencies.proptest]
version = "1"

[lints.clippy]
bool_to_int_with_if = "allow"
branches_sharing_code = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
dbg_macro = "deny"
derive_partial_eq_without_eq = "allow"
doc_markdown = "allow"
expect_used = "warn"
if_same_then_else = "allow"
imprecise_flops = "allow"
iter_over_hash_type = "allow"
manual_let_else = "allow"
manual_slice_fill = "allow"
many_single_char_names = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
missing_const_for_fn = "allow"
module_name_repetitions = "allow"
needless_pass_by_value = "allow"
needless_range_loop = "allow"
option_if_let_else = "allow"
panic = "deny"
print_stderr = "deny"
print_stdout = "deny"
redundant_else = "allow"
similar_names = "allow"
suboptimal_flops = "allow"
suspicious_operation_groupings = "allow"
todo = "warn"
too_many_lines = "allow"
tuple_array_conversions = "allow"
uninlined_format_args = "allow"
unwrap_used = "deny"
used_underscore_binding = "allow"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.clippy.nursery]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
missing_docs = "warn"
unsafe_code = "deny"