[package]
name = "crater-rs"
version = "0.6.0"
edition = "2021"
description = "A library of solid modeling primitives and operations"
license = "MIT"
repository = "https://gitlab.com/games1122013/crater.rs"
keywords = ["3d", "solid", "csg", "constructive", "geometry"]

[lib]
bench = false
name = "crater"

[dependencies]
anyhow = "1.0.97"
approx = "0.5.1"
clap = { version = "4.5.31", features = ["derive", "color"] }
dyn-clone = "1.0.19"
embed-doc-image = "0.1.4"
evalexpr = "12.0.2"
gomez = "0.5.0"
itertools = "0.14.0"
num = "0.4.3"
rand = "0.9.0"
rayon = "1.10.0"
regex = "1.11.0"
rstest = "0.25.0"
santiago = "1.3.1"
seq-macro = "0.3.6"
serde = { version = "1.0.218", features = ["derive"] }
serde_json = "1.0.140"
serde_with = "3.12.0"
serde_yaml = "0.9.34"
thiserror = "2.0.12"
tracing = "0.1.40"
vtkio = "0.7.0-rc1"                                           # There's an incompat warning with 0.6.3

[dev-dependencies]
criterion = "0.5.1"
tracing-subscriber = "0.3.18"


[[bench]]
name = "csg_bench"
harness = false

[profile.bench]
debug = true

[profile.release]
debug = true

# Releases
[package.metadata.release]
pre-release-hook = ["./scripts/pre-release.sh", "--cliff", "{{version}}"]
publish = true
push = true
pre-release-commit-message = "chore(release): prepare for release [bot commit]"

# LaTeX support in CI builds of docs
[package.metadata.docs.rs]
rustdoc-args = ["--html-in-header", "./src/html/latex.html"]
# Instruct docs.rs to build with the `doc-images` feature, which allows for inner doc images
features = ["doc-images"]

[features]
doc-images = []

# Examples
[[example]]
name = "csg"
path = "examples/csg/csg.rs"

[[example]]
name = "heart"
path = "examples/csg/heart.rs"

[[example]]
name = "tori"
path = "examples/csg/tori.rs"

[[example]]
name = "concentric"
path = "examples/csg/concentric.rs"

[[example]]
name = "animation"
path = "examples/csg/animation.rs"

[[example]]
name = "bvh_raycast"
path = "examples/bounding/bvh_raycast.rs"