mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Update noise
This commit is contained in:
parent
5e41b34dc2
commit
ce7732674a
143
Cargo.lock
generated
143
Cargo.lock
generated
@ -52,7 +52,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"getrandom 0.2.15",
|
"getrandom",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"version_check",
|
"version_check",
|
||||||
"zerocopy",
|
"zerocopy",
|
||||||
@ -373,7 +373,7 @@ name = "auth-common"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://gitlab.com/veloren/auth.git?rev=ae0e16783a9f9041951296885f082308e155db79#ae0e16783a9f9041951296885f082308e155db79"
|
source = "git+https://gitlab.com/veloren/auth.git?rev=ae0e16783a9f9041951296885f082308e155db79#ae0e16783a9f9041951296885f082308e155db79"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"serde",
|
"serde",
|
||||||
"uuid",
|
"uuid",
|
||||||
]
|
]
|
||||||
@ -740,7 +740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "270f1d341a2afc62604f8f688bee4e444d052b7a74c1458dd3aa7efb47d4077f"
|
checksum = "270f1d341a2afc62604f8f688bee4e444d052b7a74c1458dd3aa7efb47d4077f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ambient-authority",
|
"ambient-authority",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2536,17 +2536,6 @@ dependencies = [
|
|||||||
"windows-targets 0.48.5",
|
"windows-targets 0.48.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "getrandom"
|
|
||||||
version = "0.1.16"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if 1.0.0",
|
|
||||||
"libc",
|
|
||||||
"wasi 0.9.0+wasi-snapshot-preview1",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.2.15"
|
version = "0.2.15"
|
||||||
@ -2556,7 +2545,7 @@ dependencies = [
|
|||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"libc",
|
"libc",
|
||||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
"wasi",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -2893,7 +2882,7 @@ dependencies = [
|
|||||||
"idna 0.4.0",
|
"idna 0.4.0",
|
||||||
"ipnet",
|
"ipnet",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tinyvec",
|
"tinyvec",
|
||||||
"tokio",
|
"tokio",
|
||||||
@ -2914,7 +2903,7 @@ dependencies = [
|
|||||||
"lru-cache",
|
"lru-cache",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"resolv-conf",
|
"resolv-conf",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
@ -3954,7 +3943,7 @@ checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
"wasi",
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3996,7 +3985,7 @@ version = "0.7.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
|
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom 0.2.15",
|
"getrandom",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4128,11 +4117,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "noise"
|
name = "noise"
|
||||||
version = "0.7.0"
|
version = "0.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "82051dd6745d5184c6efb7bc8be14892a7f6d4f3ad6dbf754d1c7d7d5fe24b43"
|
checksum = "6da45c8333f2e152fc665d78a380be060eb84fad8ca4c9f7ac8ca29216cff0cc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand 0.7.3",
|
"num-traits",
|
||||||
|
"rand",
|
||||||
"rand_xorshift",
|
"rand_xorshift",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4705,7 +4695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
|
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_shared",
|
"phf_shared",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4821,7 +4811,7 @@ name = "portpicker"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/xMAC94x/portpicker-rs?rev=df6b37872f3586ac3b21d08b56c8ec7cd92fb172#df6b37872f3586ac3b21d08b56c8ec7cd92fb172"
|
source = "git+https://github.com/xMAC94x/portpicker-rs?rev=df6b37872f3586ac3b21d08b56c8ec7cd92fb172#df6b37872f3586ac3b21d08b56c8ec7cd92fb172"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -5029,7 +5019,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "e974563a4b1c2206bbc61191ca4da9c22e4308b4c455e8906751cc7828393f08"
|
checksum = "e974563a4b1c2206bbc61191ca4da9c22e4308b4c455e8906751cc7828393f08"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"ring",
|
"ring",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"rustls",
|
"rustls",
|
||||||
@ -5087,19 +5077,6 @@ dependencies = [
|
|||||||
"nibble_vec",
|
"nibble_vec",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand"
|
|
||||||
version = "0.7.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
|
|
||||||
dependencies = [
|
|
||||||
"getrandom 0.1.16",
|
|
||||||
"libc",
|
|
||||||
"rand_chacha 0.2.2",
|
|
||||||
"rand_core 0.5.1",
|
|
||||||
"rand_hc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand"
|
name = "rand"
|
||||||
version = "0.8.5"
|
version = "0.8.5"
|
||||||
@ -5107,18 +5084,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha",
|
||||||
"rand_core 0.6.4",
|
"rand_core",
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_chacha"
|
|
||||||
version = "0.2.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
|
|
||||||
dependencies = [
|
|
||||||
"ppv-lite86",
|
|
||||||
"rand_core 0.5.1",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -5128,16 +5095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ppv-lite86",
|
"ppv-lite86",
|
||||||
"rand_core 0.6.4",
|
"rand_core",
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_core"
|
|
||||||
version = "0.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
|
|
||||||
dependencies = [
|
|
||||||
"getrandom 0.1.16",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -5146,25 +5104,16 @@ version = "0.6.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom 0.2.15",
|
"getrandom",
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_hc"
|
|
||||||
version = "0.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
|
|
||||||
dependencies = [
|
|
||||||
"rand_core 0.5.1",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand_xorshift"
|
name = "rand_xorshift"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8"
|
checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand_core 0.5.1",
|
"rand_core",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -5271,7 +5220,7 @@ version = "0.4.5"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
|
checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom 0.2.15",
|
"getrandom",
|
||||||
"libredox 0.1.3",
|
"libredox 0.1.3",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
@ -5401,7 +5350,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"getrandom 0.2.15",
|
"getrandom",
|
||||||
"libc",
|
"libc",
|
||||||
"spin",
|
"spin",
|
||||||
"untrusted",
|
"untrusted",
|
||||||
@ -6363,7 +6312,7 @@ version = "0.2.9"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9cfc24238213e42ffb35314aad7a7f5d46649c5fbba3ea95ef24f7debb95874e"
|
checksum = "9cfc24238213e42ffb35314aad7a7f5d46649c5fbba3ea95ef24f7debb95874e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
"wasi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -6852,7 +6801,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
|
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"static_assertions",
|
"static_assertions",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -6978,7 +6927,7 @@ version = "1.8.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
|
checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom 0.2.15",
|
"getrandom",
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -7102,8 +7051,8 @@ dependencies = [
|
|||||||
"num-traits",
|
"num-traits",
|
||||||
"ordered-float 4.2.0",
|
"ordered-float 4.2.0",
|
||||||
"petgraph 0.6.5",
|
"petgraph 0.6.5",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha",
|
||||||
"rayon",
|
"rayon",
|
||||||
"ron",
|
"ron",
|
||||||
"roots",
|
"roots",
|
||||||
@ -7187,7 +7136,7 @@ name = "veloren-common-i18n"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hashbrown 0.14.5",
|
"hashbrown 0.14.5",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -7244,7 +7193,7 @@ version = "0.10.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"itertools 0.13.0",
|
"itertools 0.13.0",
|
||||||
"ordered-float 4.2.0",
|
"ordered-float 4.2.0",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rayon",
|
"rayon",
|
||||||
"specs",
|
"specs",
|
||||||
"tracing",
|
"tracing",
|
||||||
@ -7274,7 +7223,7 @@ dependencies = [
|
|||||||
"prometheus",
|
"prometheus",
|
||||||
"prometheus-hyper",
|
"prometheus-hyper",
|
||||||
"quinn",
|
"quinn",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rcgen",
|
"rcgen",
|
||||||
"rustls",
|
"rustls",
|
||||||
"serde",
|
"serde",
|
||||||
@ -7298,7 +7247,7 @@ dependencies = [
|
|||||||
"criterion",
|
"criterion",
|
||||||
"hashbrown 0.14.5",
|
"hashbrown 0.14.5",
|
||||||
"prometheus",
|
"prometheus",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
@ -7309,7 +7258,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"protocol",
|
"protocol",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
@ -7325,8 +7274,8 @@ dependencies = [
|
|||||||
"fxhash",
|
"fxhash",
|
||||||
"hashbrown 0.14.5",
|
"hashbrown 0.14.5",
|
||||||
"itertools 0.13.0",
|
"itertools 0.13.0",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha",
|
||||||
"rayon",
|
"rayon",
|
||||||
"rmp-serde",
|
"rmp-serde",
|
||||||
"serde",
|
"serde",
|
||||||
@ -7361,7 +7310,7 @@ dependencies = [
|
|||||||
"portpicker",
|
"portpicker",
|
||||||
"prometheus",
|
"prometheus",
|
||||||
"quinn",
|
"quinn",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rayon",
|
"rayon",
|
||||||
"refinery",
|
"refinery",
|
||||||
"ron",
|
"ron",
|
||||||
@ -7395,7 +7344,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"itertools 0.13.0",
|
"itertools 0.13.0",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"specs",
|
"specs",
|
||||||
"tracing",
|
"tracing",
|
||||||
"vek 0.17.0",
|
"vek 0.17.0",
|
||||||
@ -7421,7 +7370,7 @@ dependencies = [
|
|||||||
"mimalloc",
|
"mimalloc",
|
||||||
"num_cpus",
|
"num_cpus",
|
||||||
"prometheus",
|
"prometheus",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"ratatui",
|
"ratatui",
|
||||||
"ron",
|
"ron",
|
||||||
"serde",
|
"serde",
|
||||||
@ -7482,8 +7431,8 @@ dependencies = [
|
|||||||
"num 0.4.3",
|
"num 0.4.3",
|
||||||
"num_cpus",
|
"num_cpus",
|
||||||
"ordered-float 4.2.0",
|
"ordered-float 4.2.0",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha",
|
||||||
"rayon",
|
"rayon",
|
||||||
"rodio",
|
"rodio",
|
||||||
"ron",
|
"ron",
|
||||||
@ -7581,8 +7530,8 @@ dependencies = [
|
|||||||
"num 0.4.3",
|
"num 0.4.3",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"ordered-float 4.2.0",
|
"ordered-float 4.2.0",
|
||||||
"rand 0.8.5",
|
"rand",
|
||||||
"rand_chacha 0.3.1",
|
"rand_chacha",
|
||||||
"rayon",
|
"rayon",
|
||||||
"ron",
|
"ron",
|
||||||
"rstar",
|
"rstar",
|
||||||
@ -7642,12 +7591,6 @@ dependencies = [
|
|||||||
"try-lock",
|
"try-lock",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasi"
|
|
||||||
version = "0.9.0+wasi-snapshot-preview1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasi"
|
name = "wasi"
|
||||||
version = "0.11.0+wasi-snapshot-preview1"
|
version = "0.11.0+wasi-snapshot-preview1"
|
||||||
|
@ -168,6 +168,8 @@ hex = "0.4.3"
|
|||||||
rustls = { version = "0.23", default-features = false, features = ["std"] }
|
rustls = { version = "0.23", default-features = false, features = ["std"] }
|
||||||
quinn = { version = "0.11" }
|
quinn = { version = "0.11" }
|
||||||
|
|
||||||
|
noise = { version = "0.9", default-features = false }
|
||||||
|
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
# until next specs release
|
# until next specs release
|
||||||
specs = { git = "https://github.com/amethyst/specs.git", rev = "4e2da1df29ee840baa9b936593c45592b7c9ae27" }
|
specs = { git = "https://github.com/amethyst/specs.git", rev = "4e2da1df29ee840baa9b936593c45592b7c9ae27" }
|
||||||
|
@ -68,7 +68,7 @@ prometheus = { workspace = true }
|
|||||||
portpicker = { git = "https://github.com/xMAC94x/portpicker-rs", rev = "df6b37872f3586ac3b21d08b56c8ec7cd92fb172" }
|
portpicker = { git = "https://github.com/xMAC94x/portpicker-rs", rev = "df6b37872f3586ac3b21d08b56c8ec7cd92fb172" }
|
||||||
authc = { git = "https://gitlab.com/veloren/auth.git", rev = "ae0e16783a9f9041951296885f082308e155db79" } # xMAC94x/current_master_till_refactored branch
|
authc = { git = "https://gitlab.com/veloren/auth.git", rev = "ae0e16783a9f9041951296885f082308e155db79" } # xMAC94x/current_master_till_refactored branch
|
||||||
enum-map = { workspace = true }
|
enum-map = { workspace = true }
|
||||||
noise = { version = "0.7", default-features = false }
|
noise = { workspace = true }
|
||||||
censor = "0.3"
|
censor = "0.3"
|
||||||
|
|
||||||
rusqlite = { version = "0.31.0", features = [
|
rusqlite = { version = "0.31.0", features = [
|
||||||
|
@ -3,7 +3,7 @@ use common::{
|
|||||||
resources::TimeOfDay,
|
resources::TimeOfDay,
|
||||||
weather::{Weather, WeatherGrid, CELL_SIZE, CHUNKS_PER_CELL},
|
weather::{Weather, WeatherGrid, CELL_SIZE, CHUNKS_PER_CELL},
|
||||||
};
|
};
|
||||||
use noise::{NoiseFn, SuperSimplex, Turbulence};
|
use noise::{NoiseFn, Perlin, SuperSimplex, Turbulence};
|
||||||
use vek::*;
|
use vek::*;
|
||||||
use world::World;
|
use world::World;
|
||||||
|
|
||||||
@ -92,15 +92,15 @@ impl WeatherSim {
|
|||||||
pub fn tick(&mut self, time_of_day: TimeOfDay, out: &mut WeatherGrid) -> LightningCells {
|
pub fn tick(&mut self, time_of_day: TimeOfDay, out: &mut WeatherGrid) -> LightningCells {
|
||||||
let time = time_of_day.0;
|
let time = time_of_day.0;
|
||||||
|
|
||||||
let base_nz = Turbulence::new(
|
let base_nz: Turbulence<Turbulence<SuperSimplex, Perlin>, Perlin> = Turbulence::new(
|
||||||
Turbulence::new(SuperSimplex::new())
|
Turbulence::new(SuperSimplex::new(0))
|
||||||
.set_frequency(0.2)
|
.set_frequency(0.2)
|
||||||
.set_power(1.5),
|
.set_power(1.5),
|
||||||
)
|
)
|
||||||
.set_frequency(2.0)
|
.set_frequency(2.0)
|
||||||
.set_power(0.2);
|
.set_power(0.2);
|
||||||
|
|
||||||
let rain_nz = SuperSimplex::new();
|
let rain_nz = SuperSimplex::new(0);
|
||||||
|
|
||||||
let mut lightning_cells = Vec::new();
|
let mut lightning_cells = Vec::new();
|
||||||
for (point, cell) in out.iter_mut() {
|
for (point, cell) in out.iter_mut() {
|
||||||
|
@ -36,7 +36,7 @@ fxhash = { workspace = true }
|
|||||||
image = { workspace = true }
|
image = { workspace = true }
|
||||||
itertools = { workspace = true }
|
itertools = { workspace = true }
|
||||||
vek = { workspace = true }
|
vek = { workspace = true }
|
||||||
noise = { version = "0.7", default-features = false }
|
noise = { workspace = true }
|
||||||
num = { workspace = true }
|
num = { workspace = true }
|
||||||
ordered-float = { workspace = true }
|
ordered-float = { workspace = true }
|
||||||
hashbrown = { workspace = true }
|
hashbrown = { workspace = true }
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use noise::{NoiseFn, Seedable, SuperSimplex, Turbulence};
|
use noise::{NoiseFn, Perlin, SuperSimplex, Turbulence};
|
||||||
|
|
||||||
use vek::*;
|
use vek::*;
|
||||||
|
|
||||||
@ -8,16 +8,16 @@ const H: usize = 640;
|
|||||||
fn main() {
|
fn main() {
|
||||||
let mut win = minifb::Window::new("Turb", W, H, minifb::WindowOptions::default()).unwrap();
|
let mut win = minifb::Window::new("Turb", W, H, minifb::WindowOptions::default()).unwrap();
|
||||||
|
|
||||||
let nz = Turbulence::new(
|
let nz: Turbulence<Turbulence<SuperSimplex, Perlin>, Perlin> = Turbulence::new(
|
||||||
Turbulence::new(SuperSimplex::new())
|
Turbulence::new(SuperSimplex::new(0))
|
||||||
.set_frequency(0.2)
|
.set_frequency(0.2)
|
||||||
.set_power(1.5),
|
.set_power(1.5),
|
||||||
)
|
)
|
||||||
.set_frequency(2.0)
|
.set_frequency(2.0)
|
||||||
.set_power(0.2);
|
.set_power(0.2);
|
||||||
|
|
||||||
let _nz_x = SuperSimplex::new().set_seed(0);
|
let _nz_x = SuperSimplex::new(0);
|
||||||
let _nz_y = SuperSimplex::new().set_seed(1);
|
let _nz_y = SuperSimplex::new(1);
|
||||||
|
|
||||||
let mut _time = 0.0f64;
|
let mut _time = 0.0f64;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ use common::{
|
|||||||
trade::{SiteId, SitePrices},
|
trade::{SiteId, SitePrices},
|
||||||
};
|
};
|
||||||
use core::ops::Deref;
|
use core::ops::Deref;
|
||||||
use noise::{Fbm, MultiFractal, Seedable, SuperSimplex};
|
use noise::{Fbm, MultiFractal, Perlin, SuperSimplex};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
const WORLD_COLORS_MANIFEST: &str = "world.style.colors";
|
const WORLD_COLORS_MANIFEST: &str = "world.style.colors";
|
||||||
@ -136,15 +136,15 @@ impl IndexOwned {
|
|||||||
pub struct Noise {
|
pub struct Noise {
|
||||||
pub cave_nz: SuperSimplex,
|
pub cave_nz: SuperSimplex,
|
||||||
pub scatter_nz: SuperSimplex,
|
pub scatter_nz: SuperSimplex,
|
||||||
pub cave_fbm_nz: Fbm,
|
pub cave_fbm_nz: Fbm<Perlin>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Noise {
|
impl Noise {
|
||||||
fn new(seed: u32) -> Self {
|
fn new(seed: u32) -> Self {
|
||||||
Self {
|
Self {
|
||||||
cave_nz: SuperSimplex::new().set_seed(seed + 0),
|
cave_nz: SuperSimplex::new(seed + 0),
|
||||||
scatter_nz: SuperSimplex::new().set_seed(seed + 1),
|
scatter_nz: SuperSimplex::new(seed + 1),
|
||||||
cave_fbm_nz: Fbm::new().set_seed(seed + 2).set_octaves(5),
|
cave_fbm_nz: Fbm::new(seed + 2).set_octaves(5),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -550,7 +550,7 @@ pub fn get_rivers<F: fmt::Debug + Float + Into<f64>, G: Float + Into<f64>>(
|
|||||||
fn get_max_slope(
|
fn get_max_slope(
|
||||||
map_size_lg: MapSizeLg,
|
map_size_lg: MapSizeLg,
|
||||||
h: &[Alt],
|
h: &[Alt],
|
||||||
rock_strength_nz: &(impl NoiseFn<[f64; 3]> + Sync),
|
rock_strength_nz: &(impl NoiseFn<f64, 3> + Sync),
|
||||||
height_scale: impl Fn(usize) -> Alt + Sync,
|
height_scale: impl Fn(usize) -> Alt + Sync,
|
||||||
) -> Box<[f64]> {
|
) -> Box<[f64]> {
|
||||||
let min_max_angle = (15.0 / 360.0 * 2.0 * std::f64::consts::PI).tan();
|
let min_max_angle = (15.0 / 360.0 * 2.0 * std::f64::consts::PI).tan();
|
||||||
@ -709,7 +709,7 @@ fn erode(
|
|||||||
max_g: f32,
|
max_g: f32,
|
||||||
kdsed: f64,
|
kdsed: f64,
|
||||||
_seed: &RandomField,
|
_seed: &RandomField,
|
||||||
rock_strength_nz: &(impl NoiseFn<[f64; 3]> + Sync),
|
rock_strength_nz: &(impl NoiseFn<f64, 3> + Sync),
|
||||||
uplift: impl Fn(usize) -> f32 + Sync,
|
uplift: impl Fn(usize) -> f32 + Sync,
|
||||||
n_f: impl Fn(usize) -> f32 + Sync,
|
n_f: impl Fn(usize) -> f32 + Sync,
|
||||||
m_f: impl Fn(usize) -> f32 + Sync,
|
m_f: impl Fn(usize) -> f32 + Sync,
|
||||||
@ -2523,7 +2523,7 @@ pub fn do_erosion(
|
|||||||
_max_uplift: f32,
|
_max_uplift: f32,
|
||||||
n_steps: usize,
|
n_steps: usize,
|
||||||
seed: &RandomField,
|
seed: &RandomField,
|
||||||
rock_strength_nz: &(impl NoiseFn<[f64; 3]> + Sync),
|
rock_strength_nz: &(impl NoiseFn<f64, 3> + Sync),
|
||||||
oldh: impl Fn(usize) -> f32 + Sync,
|
oldh: impl Fn(usize) -> f32 + Sync,
|
||||||
oldb: impl Fn(usize) -> f32 + Sync,
|
oldb: impl Fn(usize) -> f32 + Sync,
|
||||||
is_ocean: impl Fn(usize) -> bool + Sync,
|
is_ocean: impl Fn(usize) -> bool + Sync,
|
||||||
|
@ -55,8 +55,8 @@ use common::{
|
|||||||
use common_base::prof_span;
|
use common_base::prof_span;
|
||||||
use common_net::msg::WorldMapMsg;
|
use common_net::msg::WorldMapMsg;
|
||||||
use noise::{
|
use noise::{
|
||||||
BasicMulti, Billow, Fbm, HybridMulti, MultiFractal, NoiseFn, RangeFunction, RidgedMulti,
|
core::worley::distance_functions, BasicMulti, Billow, Fbm, HybridMulti, MultiFractal, NoiseFn,
|
||||||
Seedable, SuperSimplex, Worley,
|
Perlin, RidgedMulti, SuperSimplex,
|
||||||
};
|
};
|
||||||
use num::{traits::FloatConst, Float, Signed};
|
use num::{traits::FloatConst, Float, Signed};
|
||||||
use rand::{Rng, SeedableRng};
|
use rand::{Rng, SeedableRng};
|
||||||
@ -109,16 +109,16 @@ struct GenCdf {
|
|||||||
pub(crate) struct GenCtx {
|
pub(crate) struct GenCtx {
|
||||||
pub turb_x_nz: SuperSimplex,
|
pub turb_x_nz: SuperSimplex,
|
||||||
pub turb_y_nz: SuperSimplex,
|
pub turb_y_nz: SuperSimplex,
|
||||||
pub chaos_nz: RidgedMulti,
|
pub chaos_nz: RidgedMulti<Perlin>,
|
||||||
pub alt_nz: util::HybridMulti,
|
pub alt_nz: util::HybridMulti<Perlin>,
|
||||||
pub hill_nz: SuperSimplex,
|
pub hill_nz: SuperSimplex,
|
||||||
pub temp_nz: Fbm,
|
pub temp_nz: Fbm<Perlin>,
|
||||||
// Humidity noise
|
// Humidity noise
|
||||||
pub humid_nz: Billow,
|
pub humid_nz: Billow<Perlin>,
|
||||||
// Small amounts of noise for simulating rough terrain.
|
// Small amounts of noise for simulating rough terrain.
|
||||||
pub small_nz: BasicMulti,
|
pub small_nz: BasicMulti<Perlin>,
|
||||||
pub rock_nz: HybridMulti,
|
pub rock_nz: HybridMulti<Perlin>,
|
||||||
pub tree_nz: BasicMulti,
|
pub tree_nz: BasicMulti<Perlin>,
|
||||||
|
|
||||||
// TODO: unused, remove??? @zesterer
|
// TODO: unused, remove??? @zesterer
|
||||||
pub _cave_0_nz: SuperSimplex,
|
pub _cave_0_nz: SuperSimplex,
|
||||||
@ -133,8 +133,8 @@ pub(crate) struct GenCtx {
|
|||||||
|
|
||||||
pub _town_gen: StructureGen2d,
|
pub _town_gen: StructureGen2d,
|
||||||
pub river_seed: RandomField,
|
pub river_seed: RandomField,
|
||||||
pub rock_strength_nz: Fbm,
|
pub rock_strength_nz: Fbm<Perlin>,
|
||||||
pub uplift_nz: Worley,
|
pub uplift_nz: util::Worley,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
@ -716,52 +716,47 @@ impl WorldSim {
|
|||||||
|
|
||||||
// NOTE: Changing order will significantly change WorldGen, so try not to!
|
// NOTE: Changing order will significantly change WorldGen, so try not to!
|
||||||
let gen_ctx = GenCtx {
|
let gen_ctx = GenCtx {
|
||||||
turb_x_nz: SuperSimplex::new().set_seed(rng.gen()),
|
turb_x_nz: SuperSimplex::new(rng.gen()),
|
||||||
turb_y_nz: SuperSimplex::new().set_seed(rng.gen()),
|
turb_y_nz: SuperSimplex::new(rng.gen()),
|
||||||
chaos_nz: RidgedMulti::new()
|
chaos_nz: RidgedMulti::new(rng.gen()).set_octaves(7).set_frequency(
|
||||||
.set_octaves(7)
|
RidgedMulti::<Perlin>::DEFAULT_FREQUENCY * (5_000.0 / continent_scale),
|
||||||
.set_frequency(RidgedMulti::DEFAULT_FREQUENCY * (5_000.0 / continent_scale))
|
),
|
||||||
.set_seed(rng.gen()),
|
hill_nz: SuperSimplex::new(rng.gen()),
|
||||||
hill_nz: SuperSimplex::new().set_seed(rng.gen()),
|
alt_nz: util::HybridMulti::new(rng.gen())
|
||||||
alt_nz: util::HybridMulti::new()
|
|
||||||
.set_octaves(8)
|
.set_octaves(8)
|
||||||
.set_frequency(10_000.0 / continent_scale)
|
.set_frequency(10_000.0 / continent_scale)
|
||||||
// persistence = lacunarity^(-(1.0 - fractal increment))
|
// persistence = lacunarity^(-(1.0 - fractal increment))
|
||||||
.set_lacunarity(util::HybridMulti::DEFAULT_LACUNARITY)
|
.set_lacunarity(util::HybridMulti::<Perlin>::DEFAULT_LACUNARITY)
|
||||||
.set_persistence(util::HybridMulti::DEFAULT_LACUNARITY.powi(-1))
|
.set_persistence(util::HybridMulti::<Perlin>::DEFAULT_LACUNARITY.powi(-1))
|
||||||
.set_offset(0.0)
|
.set_offset(0.0),
|
||||||
.set_seed(rng.gen()),
|
temp_nz: Fbm::new(rng.gen())
|
||||||
temp_nz: Fbm::new()
|
|
||||||
.set_octaves(6)
|
.set_octaves(6)
|
||||||
.set_persistence(0.5)
|
.set_persistence(0.5)
|
||||||
.set_frequency(1.0 / (((1 << 6) * 64) as f64))
|
.set_frequency(1.0 / (((1 << 6) * 64) as f64))
|
||||||
.set_lacunarity(2.0)
|
.set_lacunarity(2.0),
|
||||||
.set_seed(rng.gen()),
|
|
||||||
|
|
||||||
small_nz: BasicMulti::new().set_octaves(2).set_seed(rng.gen()),
|
small_nz: BasicMulti::new(rng.gen()).set_octaves(2),
|
||||||
rock_nz: HybridMulti::new().set_persistence(0.3).set_seed(rng.gen()),
|
rock_nz: HybridMulti::new(rng.gen()).set_persistence(0.3),
|
||||||
tree_nz: BasicMulti::new()
|
tree_nz: BasicMulti::new(rng.gen())
|
||||||
.set_octaves(12)
|
.set_octaves(12)
|
||||||
.set_persistence(0.75)
|
.set_persistence(0.75),
|
||||||
.set_seed(rng.gen()),
|
_cave_0_nz: SuperSimplex::new(rng.gen()),
|
||||||
_cave_0_nz: SuperSimplex::new().set_seed(rng.gen()),
|
_cave_1_nz: SuperSimplex::new(rng.gen()),
|
||||||
_cave_1_nz: SuperSimplex::new().set_seed(rng.gen()),
|
|
||||||
|
|
||||||
structure_gen: StructureGen2d::new(rng.gen(), 24, 10),
|
structure_gen: StructureGen2d::new(rng.gen(), 24, 10),
|
||||||
_big_structure_gen: StructureGen2d::new(rng.gen(), 768, 512),
|
_big_structure_gen: StructureGen2d::new(rng.gen(), 768, 512),
|
||||||
_region_gen: StructureGen2d::new(rng.gen(), 400, 96),
|
_region_gen: StructureGen2d::new(rng.gen(), 400, 96),
|
||||||
humid_nz: Billow::new()
|
humid_nz: Billow::new(rng.gen())
|
||||||
.set_octaves(9)
|
.set_octaves(9)
|
||||||
.set_persistence(0.4)
|
.set_persistence(0.4)
|
||||||
.set_frequency(0.2)
|
.set_frequency(0.2),
|
||||||
.set_seed(rng.gen()),
|
|
||||||
|
|
||||||
_fast_turb_x_nz: FastNoise::new(rng.gen()),
|
_fast_turb_x_nz: FastNoise::new(rng.gen()),
|
||||||
_fast_turb_y_nz: FastNoise::new(rng.gen()),
|
_fast_turb_y_nz: FastNoise::new(rng.gen()),
|
||||||
|
|
||||||
_town_gen: StructureGen2d::new(rng.gen(), 2048, 1024),
|
_town_gen: StructureGen2d::new(rng.gen(), 2048, 1024),
|
||||||
river_seed: RandomField::new(rng.gen()),
|
river_seed: RandomField::new(rng.gen()),
|
||||||
rock_strength_nz: Fbm::new()
|
rock_strength_nz: Fbm::new(rng.gen())
|
||||||
.set_octaves(10)
|
.set_octaves(10)
|
||||||
.set_lacunarity(rock_lacunarity)
|
.set_lacunarity(rock_lacunarity)
|
||||||
// persistence = lacunarity^(-(1.0 - fractal increment))
|
// persistence = lacunarity^(-(1.0 - fractal increment))
|
||||||
@ -770,13 +765,10 @@ impl WorldSim {
|
|||||||
.set_frequency(
|
.set_frequency(
|
||||||
1.0 * (5_000.0 / continent_scale)
|
1.0 * (5_000.0 / continent_scale)
|
||||||
/ (2.0 * TerrainChunkSize::RECT_SIZE.x as f64 * 2.0.powi(10 - 1)),
|
/ (2.0 * TerrainChunkSize::RECT_SIZE.x as f64 * 2.0.powi(10 - 1)),
|
||||||
)
|
),
|
||||||
.set_seed(rng.gen()),
|
uplift_nz: util::Worley::new(rng.gen())
|
||||||
uplift_nz: Worley::new()
|
|
||||||
.set_seed(rng.gen())
|
|
||||||
.set_frequency(1.0 / (TerrainChunkSize::RECT_SIZE.x as f64 * uplift_scale))
|
.set_frequency(1.0 / (TerrainChunkSize::RECT_SIZE.x as f64 * uplift_scale))
|
||||||
.set_displacement(1.0)
|
.set_distance_function(distance_functions::euclidean),
|
||||||
.set_range_function(RangeFunction::Euclidean),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let river_seed = &gen_ctx.river_seed;
|
let river_seed = &gen_ctx.river_seed;
|
||||||
|
@ -4,10 +4,13 @@ use common::{
|
|||||||
vol::RectVolSize,
|
vol::RectVolSize,
|
||||||
};
|
};
|
||||||
use common_base::prof_span;
|
use common_base::prof_span;
|
||||||
use noise::{MultiFractal, NoiseFn, Perlin, Seedable};
|
use noise::{
|
||||||
|
core::worley::*, math::vectors::*, permutationtable::PermutationTable, MultiFractal, NoiseFn,
|
||||||
|
Seedable,
|
||||||
|
};
|
||||||
use num::Float;
|
use num::Float;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use std::ops::Mul;
|
use std::sync::Arc;
|
||||||
use vek::*;
|
use vek::*;
|
||||||
|
|
||||||
/// Calculates the smallest distance along an axis (x, y) from an edge of
|
/// Calculates the smallest distance along an axis (x, y) from an edge of
|
||||||
@ -445,86 +448,14 @@ pub fn get_horizon_map<F: Float + Sync, A: Send, H: Send>(
|
|||||||
Ok([west, east])
|
Ok([west, east])
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A 2-dimensional vector, for internal use.
|
fn build_sources<Source>(seed: u32, octaves: usize) -> Vec<Source>
|
||||||
type Vector2<T> = [T; 2];
|
|
||||||
/// A 3-dimensional vector, for internal use.
|
|
||||||
type Vector3<T> = [T; 3];
|
|
||||||
/// A 4-dimensional vector, for internal use.
|
|
||||||
type Vector4<T> = [T; 4];
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn zip_with2<T, U, V, F>(a: Vector2<T>, b: Vector2<U>, f: F) -> Vector2<V>
|
|
||||||
where
|
where
|
||||||
T: Copy,
|
Source: Default + Seedable,
|
||||||
U: Copy,
|
|
||||||
F: Fn(T, U) -> V,
|
|
||||||
{
|
{
|
||||||
let (ax, ay) = (a[0], a[1]);
|
|
||||||
let (bx, by) = (b[0], b[1]);
|
|
||||||
[f(ax, bx), f(ay, by)]
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn zip_with3<T, U, V, F>(a: Vector3<T>, b: Vector3<U>, f: F) -> Vector3<V>
|
|
||||||
where
|
|
||||||
T: Copy,
|
|
||||||
U: Copy,
|
|
||||||
F: Fn(T, U) -> V,
|
|
||||||
{
|
|
||||||
let (ax, ay, az) = (a[0], a[1], a[2]);
|
|
||||||
let (bx, by, bz) = (b[0], b[1], b[2]);
|
|
||||||
[f(ax, bx), f(ay, by), f(az, bz)]
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn zip_with4<T, U, V, F>(a: Vector4<T>, b: Vector4<U>, f: F) -> Vector4<V>
|
|
||||||
where
|
|
||||||
T: Copy,
|
|
||||||
U: Copy,
|
|
||||||
F: Fn(T, U) -> V,
|
|
||||||
{
|
|
||||||
let (ax, ay, az, aw) = (a[0], a[1], a[2], a[3]);
|
|
||||||
let (bx, by, bz, bw) = (b[0], b[1], b[2], b[3]);
|
|
||||||
[f(ax, bx), f(ay, by), f(az, bz), f(aw, bw)]
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn mul2<T>(a: Vector2<T>, b: T) -> Vector2<T>
|
|
||||||
where
|
|
||||||
T: Copy + Mul<T, Output = T>,
|
|
||||||
{
|
|
||||||
zip_with2(a, const2(b), Mul::mul)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn mul3<T>(a: Vector3<T>, b: T) -> Vector3<T>
|
|
||||||
where
|
|
||||||
T: Copy + Mul<T, Output = T>,
|
|
||||||
{
|
|
||||||
zip_with3(a, const3(b), Mul::mul)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn mul4<T>(a: Vector4<T>, b: T) -> Vector4<T>
|
|
||||||
where
|
|
||||||
T: Copy + Mul<T, Output = T>,
|
|
||||||
{
|
|
||||||
zip_with4(a, const4(b), Mul::mul)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn const2<T: Copy>(x: T) -> Vector2<T> { [x, x] }
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn const3<T: Copy>(x: T) -> Vector3<T> { [x, x, x] }
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn const4<T: Copy>(x: T) -> Vector4<T> { [x, x, x, x] }
|
|
||||||
|
|
||||||
fn build_sources(seed: u32, octaves: usize) -> Vec<Perlin> {
|
|
||||||
let mut sources = Vec::with_capacity(octaves);
|
let mut sources = Vec::with_capacity(octaves);
|
||||||
for x in 0..octaves {
|
for x in 0..octaves {
|
||||||
sources.push(Perlin::new().set_seed(seed + x as u32));
|
let source = Source::default();
|
||||||
|
sources.push(source.set_seed(seed + x as u32));
|
||||||
}
|
}
|
||||||
sources
|
sources
|
||||||
}
|
}
|
||||||
@ -533,8 +464,10 @@ fn build_sources(seed: u32, octaves: usize) -> Vec<Perlin> {
|
|||||||
///
|
///
|
||||||
/// The result of this multifractal noise is that valleys in the noise should
|
/// The result of this multifractal noise is that valleys in the noise should
|
||||||
/// have smooth bottoms at all altitudes.
|
/// have smooth bottoms at all altitudes.
|
||||||
|
///
|
||||||
|
/// Copied from noise crate to add offset.
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct HybridMulti {
|
pub struct HybridMulti<T> {
|
||||||
/// Total number of frequency octaves to generate the noise with.
|
/// Total number of frequency octaves to generate the noise with.
|
||||||
///
|
///
|
||||||
/// The number of octaves control the _amount of detail_ in the noise
|
/// The number of octaves control the _amount of detail_ in the noise
|
||||||
@ -575,10 +508,14 @@ pub struct HybridMulti {
|
|||||||
pub offset: f64,
|
pub offset: f64,
|
||||||
|
|
||||||
seed: u32,
|
seed: u32,
|
||||||
sources: Vec<Perlin>,
|
sources: Vec<T>,
|
||||||
|
//scale_factor: f64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl HybridMulti {
|
impl<T> HybridMulti<T>
|
||||||
|
where
|
||||||
|
T: Default + Seedable,
|
||||||
|
{
|
||||||
pub const DEFAULT_FREQUENCY: f64 = 2.0;
|
pub const DEFAULT_FREQUENCY: f64 = 2.0;
|
||||||
pub const DEFAULT_LACUNARITY: f64 = /* std::f64::consts::PI * 2.0 / 3.0 */ 2.0;
|
pub const DEFAULT_LACUNARITY: f64 = /* std::f64::consts::PI * 2.0 / 3.0 */ 2.0;
|
||||||
pub const DEFAULT_OCTAVES: usize = 6;
|
pub const DEFAULT_OCTAVES: usize = 6;
|
||||||
@ -589,26 +526,60 @@ impl HybridMulti {
|
|||||||
pub const DEFAULT_SEED: u32 = 0;
|
pub const DEFAULT_SEED: u32 = 0;
|
||||||
pub const MAX_OCTAVES: usize = 32;
|
pub const MAX_OCTAVES: usize = 32;
|
||||||
|
|
||||||
pub fn new() -> Self {
|
pub fn new(seed: u32) -> Self {
|
||||||
Self {
|
Self {
|
||||||
seed: Self::DEFAULT_SEED,
|
seed,
|
||||||
octaves: Self::DEFAULT_OCTAVES,
|
octaves: Self::DEFAULT_OCTAVES,
|
||||||
frequency: Self::DEFAULT_FREQUENCY,
|
frequency: Self::DEFAULT_FREQUENCY,
|
||||||
lacunarity: Self::DEFAULT_LACUNARITY,
|
lacunarity: Self::DEFAULT_LACUNARITY,
|
||||||
persistence: Self::DEFAULT_PERSISTENCE,
|
persistence: Self::DEFAULT_PERSISTENCE,
|
||||||
offset: Self::DEFAULT_OFFSET,
|
offset: Self::DEFAULT_OFFSET,
|
||||||
sources: build_sources(Self::DEFAULT_SEED, Self::DEFAULT_OCTAVES),
|
sources: build_sources(seed, Self::DEFAULT_OCTAVES),
|
||||||
|
//scale_factor: Self::calc_scale_factor(Self::DEFAULT_PERSISTENCE,
|
||||||
|
// Self::DEFAULT_OCTAVES),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_offset(self, offset: f64) -> Self { Self { offset, ..self } }
|
pub fn set_offset(self, offset: f64) -> Self { Self { offset, ..self } }
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn set_sources(self, sources: Vec<T>) -> Self { Self { sources, ..self } }
|
||||||
|
/*fn calc_scale_factor(persistence: f64, octaves: usize) -> f64 {
|
||||||
|
let mut result = persistence;
|
||||||
|
|
||||||
|
// Do octave 0
|
||||||
|
let mut amplitude = persistence;
|
||||||
|
let mut weight = result;
|
||||||
|
let mut signal = amplitude;
|
||||||
|
weight *= signal;
|
||||||
|
|
||||||
|
result += signal;
|
||||||
|
|
||||||
|
if octaves >= 1 {
|
||||||
|
result += (1..=octaves).fold(0.0, |acc, _| {
|
||||||
|
amplitude *= persistence;
|
||||||
|
weight = weight.max(1.0);
|
||||||
|
signal = amplitude;
|
||||||
|
weight *= signal;
|
||||||
|
acc + signal
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
2.0 / result
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for HybridMulti {
|
impl<T> Default for HybridMulti<T>
|
||||||
fn default() -> Self { Self::new() }
|
where
|
||||||
|
T: Default + Seedable,
|
||||||
|
{
|
||||||
|
fn default() -> Self { Self::new(Self::DEFAULT_SEED) }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MultiFractal for HybridMulti {
|
impl<T> MultiFractal for HybridMulti<T>
|
||||||
|
where
|
||||||
|
T: Default + Seedable,
|
||||||
|
{
|
||||||
fn set_octaves(self, mut octaves: usize) -> Self {
|
fn set_octaves(self, mut octaves: usize) -> Self {
|
||||||
if self.octaves == octaves {
|
if self.octaves == octaves {
|
||||||
return self;
|
return self;
|
||||||
@ -618,6 +589,7 @@ impl MultiFractal for HybridMulti {
|
|||||||
Self {
|
Self {
|
||||||
octaves,
|
octaves,
|
||||||
sources: build_sources(self.seed, octaves),
|
sources: build_sources(self.seed, octaves),
|
||||||
|
//scale_factor: Self::calc_scale_factor(self.persistence, octaves),
|
||||||
..self
|
..self
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -629,12 +601,16 @@ impl MultiFractal for HybridMulti {
|
|||||||
fn set_persistence(self, persistence: f64) -> Self {
|
fn set_persistence(self, persistence: f64) -> Self {
|
||||||
Self {
|
Self {
|
||||||
persistence,
|
persistence,
|
||||||
|
//scale_factor: Self::calc_scale_factor(persistence, self.octaves),
|
||||||
..self
|
..self
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Seedable for HybridMulti {
|
impl<T> Seedable for HybridMulti<T>
|
||||||
|
where
|
||||||
|
T: Default + Seedable,
|
||||||
|
{
|
||||||
fn set_seed(self, seed: u32) -> Self {
|
fn set_seed(self, seed: u32) -> Self {
|
||||||
if self.seed == seed {
|
if self.seed == seed {
|
||||||
return self;
|
return self;
|
||||||
@ -651,14 +627,21 @@ impl Seedable for HybridMulti {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 2-dimensional `HybridMulti` noise
|
/// 2-dimensional `HybridMulti` noise
|
||||||
impl NoiseFn<[f64; 2]> for HybridMulti {
|
impl<T> NoiseFn<f64, 2> for HybridMulti<T>
|
||||||
fn get(&self, mut point: [f64; 2]) -> f64 {
|
where
|
||||||
|
T: NoiseFn<f64, 2>,
|
||||||
|
{
|
||||||
|
fn get(&self, point: [f64; 2]) -> f64 {
|
||||||
|
let mut point = Vector2::from(point);
|
||||||
|
|
||||||
|
let mut attenuation = self.persistence;
|
||||||
|
|
||||||
// First unscaled octave of function; later octaves are scaled.
|
// First unscaled octave of function; later octaves are scaled.
|
||||||
point = mul2(point, self.frequency);
|
point *= self.frequency;
|
||||||
// Offset and bias to scale into [offset - 1.0, 1.0 + offset] range.
|
// Offset and bias to scale into [offset - 1.0, 1.0 + offset] range.
|
||||||
let bias = 1.0;
|
let bias = 1.0;
|
||||||
let mut result = (self.sources[0].get(point) + self.offset) * bias * self.persistence;
|
let mut result =
|
||||||
let mut exp_scale = 1.0;
|
(self.sources[0].get(point.into_array()) + self.offset) * bias * self.persistence;
|
||||||
let mut scale = self.persistence;
|
let mut scale = self.persistence;
|
||||||
let mut weight = result;
|
let mut weight = result;
|
||||||
|
|
||||||
@ -668,37 +651,49 @@ impl NoiseFn<[f64; 2]> for HybridMulti {
|
|||||||
weight = weight.min(1.0);
|
weight = weight.min(1.0);
|
||||||
|
|
||||||
// Raise the spatial frequency.
|
// Raise the spatial frequency.
|
||||||
point = mul2(point, self.lacunarity);
|
point *= self.lacunarity;
|
||||||
|
|
||||||
// Get noise value, and scale it to the [offset - 1.0, 1.0 + offset] range.
|
// Get noise value, and scale it to the [offset - 1.0, 1.0 + offset] range.
|
||||||
let mut signal = (self.sources[x].get(point) + self.offset) * bias;
|
let mut signal = (self.sources[x].get(point.into_array()) + self.offset) * bias;
|
||||||
|
|
||||||
// Scale the amplitude appropriately for this frequency.
|
// Scale the amplitude appropriately for this frequency.
|
||||||
exp_scale *= self.persistence;
|
signal *= attenuation;
|
||||||
signal *= exp_scale;
|
|
||||||
|
scale += attenuation;
|
||||||
|
|
||||||
|
// Increase the attenuation for the next octave, to be equal to persistence ^ (x
|
||||||
|
// + 1)
|
||||||
|
attenuation *= self.persistence;
|
||||||
|
|
||||||
// Add it in, weighted by previous octave's noise value.
|
// Add it in, weighted by previous octave's noise value.
|
||||||
result += weight * signal;
|
result += weight * signal;
|
||||||
|
|
||||||
// Update the weighting value.
|
// Update the weighting value.
|
||||||
weight *= signal;
|
weight *= signal;
|
||||||
scale += exp_scale;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scale the result to the [-1,1] range
|
// Scale the result to the [-1,1] range
|
||||||
|
//result * self.scale_factor
|
||||||
(result / scale) / bias - self.offset
|
(result / scale) / bias - self.offset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 3-dimensional `HybridMulti` noise
|
/// 3-dimensional `HybridMulti` noise
|
||||||
impl NoiseFn<[f64; 3]> for HybridMulti {
|
impl<T> NoiseFn<f64, 3> for HybridMulti<T>
|
||||||
fn get(&self, mut point: [f64; 3]) -> f64 {
|
where
|
||||||
|
T: NoiseFn<f64, 3>,
|
||||||
|
{
|
||||||
|
fn get(&self, point: [f64; 3]) -> f64 {
|
||||||
|
let mut point = Vector3::from(point);
|
||||||
|
|
||||||
|
let mut attenuation = self.persistence;
|
||||||
|
|
||||||
// First unscaled octave of function; later octaves are scaled.
|
// First unscaled octave of function; later octaves are scaled.
|
||||||
point = mul3(point, self.frequency);
|
point *= self.frequency;
|
||||||
// Offset and bias to scale into [offset - 1.0, 1.0 + offset] range.
|
// Offset and bias to scale into [offset - 1.0, 1.0 + offset] range.
|
||||||
let bias = 1.0;
|
let bias = 1.0;
|
||||||
let mut result = (self.sources[0].get(point) + self.offset) * bias * self.persistence;
|
let mut result =
|
||||||
let mut exp_scale = 1.0;
|
(self.sources[0].get(point.into_array()) + self.offset) * bias * self.persistence;
|
||||||
let mut scale = self.persistence;
|
let mut scale = self.persistence;
|
||||||
let mut weight = result;
|
let mut weight = result;
|
||||||
|
|
||||||
@ -708,37 +703,49 @@ impl NoiseFn<[f64; 3]> for HybridMulti {
|
|||||||
weight = weight.min(1.0);
|
weight = weight.min(1.0);
|
||||||
|
|
||||||
// Raise the spatial frequency.
|
// Raise the spatial frequency.
|
||||||
point = mul3(point, self.lacunarity);
|
point *= self.lacunarity;
|
||||||
|
|
||||||
// Get noise value, and scale it to the [0, 1.0] range.
|
// Get noise value, and scale it to the [0, 1.0] range.
|
||||||
let mut signal = (self.sources[x].get(point) + self.offset) * bias;
|
let mut signal = (self.sources[x].get(point.into_array()) + self.offset) * bias;
|
||||||
|
|
||||||
// Scale the amplitude appropriately for this frequency.
|
// Scale the amplitude appropriately for this frequency.
|
||||||
exp_scale *= self.persistence;
|
signal *= attenuation;
|
||||||
signal *= exp_scale;
|
|
||||||
|
scale += attenuation;
|
||||||
|
|
||||||
|
// Increase the attenuation for the next octave, to be equal to persistence ^ (x
|
||||||
|
// + 1)
|
||||||
|
attenuation *= self.persistence;
|
||||||
|
|
||||||
// Add it in, weighted by previous octave's noise value.
|
// Add it in, weighted by previous octave's noise value.
|
||||||
result += weight * signal;
|
result += weight * signal;
|
||||||
|
|
||||||
// Update the weighting value.
|
// Update the weighting value.
|
||||||
weight *= signal;
|
weight *= signal;
|
||||||
scale += exp_scale;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scale the result to the [-1,1] range
|
// Scale the result to the [-1,1] range
|
||||||
|
//result * self.scale_factor
|
||||||
(result / scale) / bias - self.offset
|
(result / scale) / bias - self.offset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 4-dimensional `HybridMulti` noise
|
/// 4-dimensional `HybridMulti` noise
|
||||||
impl NoiseFn<[f64; 4]> for HybridMulti {
|
impl<T> NoiseFn<f64, 4> for HybridMulti<T>
|
||||||
fn get(&self, mut point: [f64; 4]) -> f64 {
|
where
|
||||||
|
T: NoiseFn<f64, 4>,
|
||||||
|
{
|
||||||
|
fn get(&self, point: [f64; 4]) -> f64 {
|
||||||
|
let mut point = Vector4::from(point);
|
||||||
|
|
||||||
|
let mut attenuation = self.persistence;
|
||||||
|
|
||||||
// First unscaled octave of function; later octaves are scaled.
|
// First unscaled octave of function; later octaves are scaled.
|
||||||
point = mul4(point, self.frequency);
|
point *= self.frequency;
|
||||||
// Offset and bias to scale into [offset - 1.0, 1.0 + offset] range.
|
// Offset and bias to scale into [offset - 1.0, 1.0 + offset] range.
|
||||||
let bias = 1.0;
|
let bias = 1.0;
|
||||||
let mut result = (self.sources[0].get(point) + self.offset) * bias * self.persistence;
|
let mut result =
|
||||||
let mut exp_scale = 1.0;
|
(self.sources[0].get(point.into_array()) + self.offset) * bias * self.persistence;
|
||||||
let mut scale = self.persistence;
|
let mut scale = self.persistence;
|
||||||
let mut weight = result;
|
let mut weight = result;
|
||||||
|
|
||||||
@ -748,29 +755,34 @@ impl NoiseFn<[f64; 4]> for HybridMulti {
|
|||||||
weight = weight.min(1.0);
|
weight = weight.min(1.0);
|
||||||
|
|
||||||
// Raise the spatial frequency.
|
// Raise the spatial frequency.
|
||||||
point = mul4(point, self.lacunarity);
|
point *= self.lacunarity;
|
||||||
|
|
||||||
// Get noise value, and scale it to the [0, 1.0] range.
|
// Get noise value, and scale it to the [0, 1.0] range.
|
||||||
let mut signal = (self.sources[x].get(point) + self.offset) * bias;
|
let mut signal = (self.sources[x].get(point.into_array()) + self.offset) * bias;
|
||||||
|
|
||||||
// Scale the amplitude appropriately for this frequency.
|
// Scale the amplitude appropriately for this frequency.
|
||||||
exp_scale *= self.persistence;
|
signal *= attenuation;
|
||||||
signal *= exp_scale;
|
|
||||||
|
scale += attenuation;
|
||||||
|
|
||||||
|
// Increase the attenuation for the next octave, to be equal to persistence ^ (x
|
||||||
|
// + 1)
|
||||||
|
attenuation *= self.persistence;
|
||||||
|
|
||||||
// Add it in, weighted by previous octave's noise value.
|
// Add it in, weighted by previous octave's noise value.
|
||||||
result += weight * signal;
|
result += weight * signal;
|
||||||
|
|
||||||
// Update the weighting value.
|
// Update the weighting value.
|
||||||
weight *= signal;
|
weight *= signal;
|
||||||
scale += exp_scale;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scale the result to the [-1,1] range
|
// Scale the result to the [-1,1] range
|
||||||
|
//result * self.scale_factor
|
||||||
(result / scale) / bias - self.offset
|
(result / scale) / bias - self.offset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* code used by sharp in future
|
/* code used by sharp in future – note: NoiseFn impl probably broken by noise crate upgrade from 0.7 to 0.9
|
||||||
/// Noise function that applies a scaling factor and a bias to the output value
|
/// Noise function that applies a scaling factor and a bias to the output value
|
||||||
/// from the source function.
|
/// from the source function.
|
||||||
///
|
///
|
||||||
@ -811,3 +823,121 @@ impl<'a, F: NoiseFn<T> + 'a, T> NoiseFn<T> for ScaleBias<'a, F> {
|
|||||||
fn get(&self, point: T) -> f64 { (self.source.get(point) * self.scale) + self.bias }
|
fn get(&self, point: T) -> f64 { (self.source.get(point) * self.scale) + self.bias }
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/// Noise function that outputs Worley noise.
|
||||||
|
///
|
||||||
|
/// Copied from noise crate to make thread-safe.
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct Worley {
|
||||||
|
/// Specifies the distance function to use when calculating the boundaries
|
||||||
|
/// of the cell.
|
||||||
|
pub distance_function: Arc<DistanceFunction>,
|
||||||
|
|
||||||
|
/// Signifies whether the distance from the borders of the cell should be
|
||||||
|
/// returned, or the value for the cell.
|
||||||
|
pub return_type: ReturnType,
|
||||||
|
|
||||||
|
/// Frequency of the seed points.
|
||||||
|
pub frequency: f64,
|
||||||
|
|
||||||
|
seed: u32,
|
||||||
|
perm_table: PermutationTable,
|
||||||
|
}
|
||||||
|
|
||||||
|
type DistanceFunction = dyn Fn(&[f64], &[f64]) -> f64 + Sync + Send;
|
||||||
|
|
||||||
|
impl Worley {
|
||||||
|
//pub const DEFAULT_SEED: u32 = 0;
|
||||||
|
pub const DEFAULT_FREQUENCY: f64 = 1.0;
|
||||||
|
|
||||||
|
pub fn new(seed: u32) -> Self {
|
||||||
|
Self {
|
||||||
|
perm_table: PermutationTable::new(seed),
|
||||||
|
seed,
|
||||||
|
distance_function: Arc::new(distance_functions::euclidean),
|
||||||
|
return_type: ReturnType::Value,
|
||||||
|
frequency: Self::DEFAULT_FREQUENCY,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the distance function used by the Worley cells.
|
||||||
|
pub fn set_distance_function<F>(self, function: F) -> Self
|
||||||
|
where
|
||||||
|
F: Fn(&[f64], &[f64]) -> f64 + 'static + Sync + Send,
|
||||||
|
{
|
||||||
|
Self {
|
||||||
|
distance_function: Arc::new(function),
|
||||||
|
..self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Enables or disables applying the distance from the nearest seed point
|
||||||
|
/// to the output value.
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn set_return_type(self, return_type: ReturnType) -> Self {
|
||||||
|
Self {
|
||||||
|
return_type,
|
||||||
|
..self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sets the frequency of the seed points.
|
||||||
|
pub fn set_frequency(self, frequency: f64) -> Self { Self { frequency, ..self } }
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for Worley {
|
||||||
|
fn default() -> Self { Self::new(0) }
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Seedable for Worley {
|
||||||
|
/// Sets the seed value used by the Worley cells.
|
||||||
|
fn set_seed(self, seed: u32) -> Self {
|
||||||
|
// If the new seed is the same as the current seed, just return self.
|
||||||
|
if self.seed == seed {
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, regenerate the permutation table based on the new seed.
|
||||||
|
Self {
|
||||||
|
perm_table: PermutationTable::new(seed),
|
||||||
|
seed,
|
||||||
|
..self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn seed(&self) -> u32 { self.seed }
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NoiseFn<f64, 2> for Worley {
|
||||||
|
fn get(&self, point: [f64; 2]) -> f64 {
|
||||||
|
worley_2d(
|
||||||
|
&self.perm_table,
|
||||||
|
&*self.distance_function,
|
||||||
|
self.return_type,
|
||||||
|
Vector2::from(point) * self.frequency,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NoiseFn<f64, 3> for Worley {
|
||||||
|
fn get(&self, point: [f64; 3]) -> f64 {
|
||||||
|
worley_3d(
|
||||||
|
&self.perm_table,
|
||||||
|
&*self.distance_function,
|
||||||
|
self.return_type,
|
||||||
|
Vector3::from(point) * self.frequency,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::cognitive_complexity)]
|
||||||
|
impl NoiseFn<f64, 4> for Worley {
|
||||||
|
fn get(&self, point: [f64; 4]) -> f64 {
|
||||||
|
worley_4d(
|
||||||
|
&self.perm_table,
|
||||||
|
&*self.distance_function,
|
||||||
|
self.return_type,
|
||||||
|
Vector4::from(point) * self.frequency,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user