[package] name = "bevy_math" version = "0.15.0-dev" edition = "2021" description = "Provides math functionality for Bevy Engine" homepage = "https://bevyengine.org" repository = "https://github.com/bevyengine/bevy" license = "MIT OR Apache-2.0" keywords = ["bevy"] rust-version = "1.81.0" [dependencies] glam = { version = "0.29", default-features = false, features = ["bytemuck"] } thiserror = { version = "2", default-features = false } derive_more = { version = "1", default-features = false, features = [ "from", "into", ] } itertools = { version = "0.13.0", default-features = false } serde = { version = "1", default-features = false, features = [ "derive", ], optional = true } libm = { version = "0.2", optional = true } approx = { version = "0.5", default-features = false, optional = true } rand = { version = "0.8", default-features = false, optional = true } rand_distr = { version = "0.4.3", optional = true } smallvec = { version = "1.11" } bevy_reflect = { path = "../bevy_reflect", version = "0.15.0-dev", features = [ "glam", ], optional = true } [dev-dependencies] approx = "0.5" # Supply rngs for examples and tests rand = "0.8" rand_chacha = "0.3" # Enable the approx feature when testing. bevy_math = { path = ".", version = "0.15.0-dev", default-features = false, features = [ "approx", ] } glam = { version = "0.29", default-features = false, features = ["approx"] } [features] default = ["std", "rand", "bevy_reflect", "curve"] std = [ "alloc", "glam/std", "derive_more/std", "itertools/use_std", "serde?/std", "approx?/std", "rand?/std", "rand_distr?/std", ] alloc = [ "itertools/use_alloc", "serde?/alloc", "rand?/alloc", "rand_distr?/alloc", ] serialize = ["dep:serde", "glam/serde"] # Enable approx for glam types to approximate floating point equality comparisons and assertions approx = ["dep:approx", "glam/approx"] # Enable interoperation of glam types with mint-compatible libraries mint = ["glam/mint"] # Enable libm mathematical functions for glam types to ensure consistent outputs # across platforms at the cost of losing hardware-level optimization using intrinsics libm = ["dep:libm", "glam/libm"] # Enable assertions to check the validity of parameters passed to glam glam_assert = ["glam/glam-assert"] # Enable assertions in debug builds to check the validity of parameters passed to glam debug_glam_assert = ["glam/debug-glam-assert"] # Enable the rand dependency for shape_sampling rand = ["dep:rand", "dep:rand_distr", "glam/rand"] # Include code related to the Curve trait curve = [] # Enable bevy_reflect (requires std) bevy_reflect = ["dep:bevy_reflect", "std"] [lints] workspace = true [package.metadata.docs.rs] rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"] all-features = true