indicatrix 0.2.2

A physically-based spectral gemstone renderer that turns GemCAD-style cutting schedules into rendered output.
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.95"
name = "indicatrix"
version = "0.2.2"
authors = ["Suitable-Name"]
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A physically-based spectral gemstone renderer that turns GemCAD-style cutting schedules into rendered output."
documentation = "https://docs.rs/indicatrix"
readme = "README.md"
keywords = [
    "gemstone",
    "raytracer",
    "spectral",
    "rendering",
    "faceting",
]
categories = [
    "rendering",
    "graphics",
    "science",
]
license = "MIT"
repository = "https://github.com/suitable-name/indicatrix"

[features]
default = []
gpu = [
    "dep:wgpu",
    "dep:pollster",
]
hdr = ["dep:image"]
serde = [
    "dep:serde",
    "glam/serde",
]

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

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

[[example]]
name = "gpu_equivalence_harness"
path = "examples/gpu_equivalence_harness.rs"
required-features = ["gpu"]

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

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

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

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

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

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

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

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

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

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

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

[dependencies.bytemuck]
version = "1.22"
features = ["derive"]

[dependencies.chull]
version = "0.2.4"

[dependencies.glam]
version = "0.33.7"

[dependencies.image]
version = "0.25"
features = ["hdr"]
optional = true
default-features = false

[dependencies.indicatrix-formats]
version = "0.2.0"

[dependencies.pollster]
version = "1.0.1"
optional = true

[dependencies.serde]
version = "1.0.229"
features = ["derive"]
optional = true

[dependencies.tracing]
version = "0.1.44"

[dev-dependencies.naga]
version = "30.0.1"
features = ["wgsl-in"]
default-features = false

[dev-dependencies.rusqlite]
version = "0.40.2"
features = ["bundled"]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.wgpu]
version = "30.0.1"
features = [
    "std",
    "parking_lot",
    "dx12",
    "metal",
    "gles",
    "vulkan",
    "wgsl",
    "webgpu",
]
optional = true
default-features = false

[target.'cfg(target_arch = "wasm32")'.dependencies.futures-channel]
version = "0.3.34"
features = ["std"]
default-features = false

[target.'cfg(target_arch = "wasm32")'.dependencies.wgpu]
version = "30.0.1"
features = [
    "wgsl",
    "webgpu",
]
optional = true
default-features = false

[lints.clippy.cast_possible_truncation]
level = "allow"
priority = 0

[lints.clippy.cast_possible_wrap]
level = "allow"
priority = 0

[lints.clippy.cast_precision_loss]
level = "allow"
priority = 0

[lints.clippy.cast_sign_loss]
level = "allow"
priority = 0

[lints.clippy.float_cmp]
level = "allow"
priority = 0

[lints.clippy.implicit_hasher]
level = "allow"
priority = 0

[lints.clippy.inline_always]
level = "allow"
priority = 0

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

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

[lints.clippy.result_large_err]
level = "allow"
priority = 0

[lints.clippy.similar_names]
level = "allow"
priority = 0

[lints.clippy.struct_excessive_bools]
level = "allow"
priority = 0