Minor tidy.
This commit is contained in:
parent
20f68b2bec
commit
cfc32a741f
3 changed files with 29 additions and 7 deletions
13
Cargo.lock
generated
13
Cargo.lock
generated
|
@ -993,6 +993,7 @@ dependencies = [
|
||||||
"bevy",
|
"bevy",
|
||||||
"bevy_mod_debugdump",
|
"bevy_mod_debugdump",
|
||||||
"heron",
|
"heron",
|
||||||
|
"rand",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1572,9 +1573,9 @@ checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libloading"
|
name = "libloading"
|
||||||
version = "0.7.2"
|
version = "0.7.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "afe203d669ec979b7128619bae5a63b7b42e9203c1b29146079ee05e2f604b52"
|
checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"winapi",
|
"winapi",
|
||||||
|
@ -2374,9 +2375,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_json"
|
name = "serde_json"
|
||||||
version = "1.0.74"
|
version = "1.0.75"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142"
|
checksum = "c059c05b48c5c0067d4b4b2b4f0732dd65feb52daf7e0ea09cd87e7dadc1af79"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"itoa",
|
"itoa",
|
||||||
"ryu",
|
"ryu",
|
||||||
|
@ -2622,9 +2623,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-subscriber"
|
name = "tracing-subscriber"
|
||||||
version = "0.3.5"
|
version = "0.3.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5d81bfa81424cc98cb034b837c985b7a290f592e5b4322f353f94a0ab0f9f594"
|
checksum = "77be66445c4eeebb934a7340f227bfe7b338173d3f8c00a60a5a58005c9faecf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
|
|
|
@ -5,6 +5,7 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bevy_mod_debugdump = "0.3.0"
|
bevy_mod_debugdump = "0.3.0"
|
||||||
|
rand = "0.8.4"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
|
22
src/lib.rs
22
src/lib.rs
|
@ -1,6 +1,6 @@
|
||||||
use bevy::{
|
use bevy::{
|
||||||
ecs::schedule::StageLabel,
|
ecs::schedule::StageLabel,
|
||||||
prelude::{ResMut, SystemLabel, Windows},
|
prelude::{ResMut, SystemLabel, Vec3, Windows},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub mod action;
|
pub mod action;
|
||||||
|
@ -24,3 +24,23 @@ pub fn disable_mouse_trap(mut windows: ResMut<Windows>) {
|
||||||
window.set_cursor_lock_mode(false);
|
window.set_cursor_lock_mode(false);
|
||||||
window.set_cursor_visibility(true);
|
window.set_cursor_visibility(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn random_sphere_vec(r: &mut impl rand::prelude::Rng) -> Vec3 {
|
||||||
|
// https://mathworld.wolfram.com/SpherePointPicking.html
|
||||||
|
// Marsaglia (1972) for picking x1 and x2 from (-1, 1) and generating surface
|
||||||
|
// points directly if their sum is less than 1.
|
||||||
|
|
||||||
|
let mut x1 = 0.0;
|
||||||
|
let mut x2 = 0.0;
|
||||||
|
let mut ssum = 2.0;
|
||||||
|
while ssum >= 1.0 {
|
||||||
|
x1 = r.gen_range(-1.0..=1.0);
|
||||||
|
x2 = r.gen_range(-1.0..=1.0);
|
||||||
|
ssum = x1.powi(2) + x2.powi(2);
|
||||||
|
}
|
||||||
|
let sqrt = (1.0 - x1.powi(2) - x2.powi(2)).sqrt();
|
||||||
|
let x = 2.0 * x1 * sqrt;
|
||||||
|
let y = 2.0 * x2 * sqrt;
|
||||||
|
let z = 1.0 - 2.0 * ssum;
|
||||||
|
Vec3::new(x, y, z)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue