From b99f1ef73122cdcb604e11a8631f14fea4d4675f Mon Sep 17 00:00:00 2001 From: Quaternions Date: Tue, 29 Aug 2023 18:10:08 -0700 Subject: [PATCH] switch to wgpu --- Cargo.lock | 885 ++++++++----- Cargo.toml | 5 +- src/frag.glsl | 14 - src/lib.rs | 3377 ------------------------------------------------- src/main.rs | 598 +-------- src/vert.glsl | 18 - 6 files changed, 544 insertions(+), 4353 deletions(-) delete mode 100644 src/frag.glsl delete mode 100644 src/lib.rs delete mode 100644 src/vert.glsl diff --git a/Cargo.lock b/Cargo.lock index e58dd60..9abbb6f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,6 +18,15 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -26,33 +35,23 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.3" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "cfg-if", "getrandom", "once_cell", "version_check", ] -[[package]] -name = "aho-corasick" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" -dependencies = [ - "memchr", -] - [[package]] name = "android-activity" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40bc1575e653f158cbdc6ebcd917b9564e66321c5325c232c3591269c257be69" +checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" dependencies = [ "android-properties", - "bitflags", + "bitflags 1.3.2", "cc", "jni-sys", "libc", @@ -70,12 +69,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" [[package]] -name = "approx" -version = "0.4.0" +name = "android_system_properties" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "num-traits", + "libc", ] [[package]] @@ -96,7 +95,7 @@ version = "0.37.3+1.3.251" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" dependencies = [ - "libloading", + "libloading 0.7.4", ] [[package]] @@ -105,12 +104,54 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + [[package]] name = "block-sys" version = "0.1.0-beta.1" @@ -141,20 +182,6 @@ name = "bytemuck" version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] [[package]] name = "calloop" @@ -162,7 +189,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "log", "nix 0.25.1", "slotmap", @@ -172,11 +199,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -192,23 +220,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] -name = "cgmath" -version = "0.18.0" +name = "codespan-reporting" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ - "approx", - "num-traits", + "termcolor", + "unicode-width", ] [[package]] -name = "cmake" -version = "0.1.50" +name = "com-rs" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" -dependencies = [ - "cc", -] +checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" [[package]] name = "core-foundation" @@ -232,10 +257,10 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", - "foreign-types", + "foreign-types 0.3.2", "libc", ] @@ -245,7 +270,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "libc", ] @@ -260,30 +285,16 @@ dependencies = [ ] [[package]] -name = "crossbeam-queue" -version = "0.3.8" +name = "d3d12" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" dependencies = [ - "cfg-if", - "crossbeam-utils", + "bitflags 2.4.0", + "libloading 0.8.0", + "winapi", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "dispatch" version = "0.2.0" @@ -296,7 +307,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading", + "libloading 0.8.0", ] [[package]] @@ -322,9 +333,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -336,7 +347,28 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared", + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", ] [[package]] @@ -345,6 +377,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + [[package]] name = "getrandom" version = "0.2.10" @@ -357,14 +395,73 @@ dependencies = [ ] [[package]] -name = "half" -version = "2.3.1" +name = "gimli" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "glow" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" dependencies = [ - "bytemuck", - "cfg-if", - "crunchy", + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gpu-alloc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" +dependencies = [ + "bitflags 2.4.0", + "gpu-alloc-types", +] + +[[package]] +name = "gpu-alloc-types" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" +dependencies = [ + "bitflags 2.4.0", +] + +[[package]] +name = "gpu-allocator" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8" +dependencies = [ + "backtrace", + "log", + "thiserror", + "winapi", + "windows", +] + +[[package]] +name = "gpu-descriptor" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a" +dependencies = [ + "bitflags 1.3.2", + "gpu-descriptor-types", + "hashbrown 0.12.3", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" +dependencies = [ + "bitflags 1.3.2", ] [[package]] @@ -372,6 +469,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" @@ -380,10 +480,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" [[package]] -name = "heck" -version = "0.4.1" +name = "hassle-rs" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" +dependencies = [ + "bitflags 1.3.2", + "com-rs", + "libc", + "libloading 0.7.4", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "hexf-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "indexmap" @@ -417,12 +532,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "itoa" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a" - [[package]] name = "jni-sys" version = "0.3.0" @@ -447,6 +556,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "khronos-egl" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +dependencies = [ + "libc", + "libloading 0.7.4", + "pkg-config", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -469,6 +589,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "lock_api" version = "0.4.10" @@ -481,9 +611,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "malloc_buf" @@ -496,9 +626,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f478948fd84d9f8e86967bf432640e46adfb5a4bd4f14ef7e864ab38220534ae" [[package]] name = "memmap2" @@ -518,6 +648,21 @@ dependencies = [ "autocfg", ] +[[package]] +name = "metal" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318" +dependencies = [ + "bitflags 2.4.0", + "block", + "core-graphics-types", + "foreign-types 0.5.0", + "log", + "objc", + "paste", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -546,13 +691,33 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "naga" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e" +dependencies = [ + "bit-set", + "bitflags 2.4.0", + "codespan-reporting", + "hexf-parse", + "indexmap 1.9.3", + "log", + "num-traits", + "rustc-hash", + "spirv", + "termcolor", + "thiserror", + "unicode-xid", +] + [[package]] name = "ndk" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "jni-sys", "ndk-sys", "num_enum 0.5.11", @@ -581,7 +746,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset", @@ -594,7 +759,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset", @@ -658,7 +823,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.29", ] [[package]] @@ -668,6 +833,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", + "objc_exception", ] [[package]] @@ -696,6 +862,24 @@ dependencies = [ "objc-sys", ] +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "object" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.18.0" @@ -704,9 +888,9 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "orbclient" -version = "0.3.45" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1" +checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f" dependencies = [ "redox_syscall", ] @@ -740,9 +924,15 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "percent-encoding" version = "2.3.0" @@ -757,11 +947,11 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "png" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", @@ -780,22 +970,34 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.64" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] [[package]] -name = "quote" -version = "1.0.29" +name = "profiling" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "46b2164ebdb1dfeec5e337be164292351e11daf63a05174c6776b2f47460f0c9" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] +[[package]] +name = "range-alloc" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" + [[package]] name = "raw-window-handle" version = "0.5.2" @@ -808,52 +1010,26 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] -name = "regex" -version = "1.9.1" +name = "renderdoc-sys" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] +checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" [[package]] -name = "regex-automata" -version = "0.3.3" +name = "rustc-demangle" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] -name = "regex-syntax" -version = "0.7.4" +name = "rustc-hash" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" - -[[package]] -name = "roxmltree" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" -dependencies = [ - "xmlparser", -] - -[[package]] -name = "ryu" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "scoped-tls" @@ -863,9 +1039,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sctk-adwaita" @@ -880,63 +1056,11 @@ dependencies = [ "tiny-skia", ] -[[package]] -name = "serde" -version = "1.0.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.25", -] - -[[package]] -name = "serde_json" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5062a995d481b2308b6064e9af76011f2921c35f97b0468811ed9f6cd91dfed" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shaderc" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31cef52787a0db5108788ea20bed13d6bf4b96287c5c5201e55725f7070f3443" -dependencies = [ - "libc", - "shaderc-sys", -] - -[[package]] -name = "shaderc-sys" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8f8439fffcffd6efcd74197204addf935dbab5752696bd990a6cd36d54cf64" -dependencies = [ - "cmake", - "libc", - "roxmltree", -] - [[package]] name = "simd-adler32" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "slotmap" @@ -959,7 +1083,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" dependencies = [ - "bitflags", + "bitflags 1.3.2", "calloop", "dlib", "lazy_static", @@ -972,14 +1096,27 @@ dependencies = [ "wayland-protocols", ] +[[package]] +name = "spirv" +version = "0.2.0+1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" +dependencies = [ + "bitflags 1.3.2", + "num-traits", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "strafe-client" version = "0.1.0" dependencies = [ - "cgmath", - "vulkano", - "vulkano-shaders", - "vulkano-win", + "wgpu", "winit", ] @@ -1002,9 +1139,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.25" +version = "2.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" dependencies = [ "proc-macro2", "quote", @@ -1012,33 +1149,32 @@ dependencies = [ ] [[package]] -name = "thiserror" -version = "1.0.44" +name = "termcolor" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", + "syn 2.0.29", ] [[package]] @@ -1091,9 +1227,21 @@ checksum = "a464a4b34948a5f67fddd2b823c62d9d92e44be75058b99939eae6c5b6960b33" [[package]] name = "unicode-ident" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "vec_map" @@ -1107,84 +1255,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "vk-parse" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6a0bda9bbe6b9e50e6456c80aa8fe4cca3b21e4311a1130c41e4915ec2e32a" -dependencies = [ - "xml-rs", -] - -[[package]] -name = "vulkano" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1f15eeb9d93a05eb3c237332a10806eac1eb82444e54485bfcc1859c483c23" -dependencies = [ - "ahash", - "ash", - "bytemuck", - "core-graphics-types", - "crossbeam-queue", - "half", - "heck", - "indexmap 1.9.3", - "libloading", - "objc", - "once_cell", - "parking_lot", - "proc-macro2", - "quote", - "regex", - "serde", - "serde_json", - "smallvec", - "thread_local", - "vk-parse", - "vulkano-macros", -] - -[[package]] -name = "vulkano-macros" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "895b8a2cac1e7650d2d0552f2392da0970a358515ac11a34adaf19bfdc771b98" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "vulkano-shaders" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8cf18e9becbc6d39f1c39e26bcf69546c93989553eb5748cd734a8a697a6e5" -dependencies = [ - "ahash", - "heck", - "proc-macro2", - "quote", - "shaderc", - "syn 1.0.109", - "vulkano", -] - -[[package]] -name = "vulkano-win" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666c77efe5ea82837781961a6bcd957ee2e926777e8de0005f580335d6eaefe7" -dependencies = [ - "core-graphics-types", - "objc", - "raw-window-handle", - "vulkano", - "winit", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -1212,10 +1282,22 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.29", "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.87" @@ -1234,7 +1316,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.25", + "syn 2.0.29", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1251,7 +1333,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" dependencies = [ - "bitflags", + "bitflags 1.3.2", "downcast-rs", "libc", "nix 0.24.3", @@ -1290,7 +1372,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "wayland-client", "wayland-commons", "wayland-scanner", @@ -1328,6 +1410,111 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "wgpu" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7472f3b69449a8ae073f6ec41d05b6f846902d92a6c45313c50cb25857b736ce" +dependencies = [ + "arrayvec", + "cfg-if", + "js-sys", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecf7454d9386f602f7399225c92dd2fbdcde52c519bc8fb0bd6fbeb388075dc2" +dependencies = [ + "arrayvec", + "bit-vec", + "bitflags 2.4.0", + "codespan-reporting", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "rustc-hash", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-hal" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6654a13885a17f475e8324efb46dc6986d7aaaa98353330f8de2077b153d0101" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set", + "bitflags 2.4.0", + "block", + "core-graphics-types", + "d3d12", + "glow", + "gpu-alloc", + "gpu-allocator", + "gpu-descriptor", + "hassle-rs", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.8.0", + "log", + "metal", + "naga", + "objc", + "parking_lot", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "rustc-hash", + "smallvec", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types", + "winapi", +] + +[[package]] +name = "wgpu-types" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee64d7398d0c2f9ca48922c902ef69c42d000c759f3db41e355f4a570b052b67" +dependencies = [ + "bitflags 2.4.0", + "js-sys", + "web-sys", +] + +[[package]] +name = "widestring" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" + [[package]] name = "winapi" version = "0.3.9" @@ -1344,12 +1531,30 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -1365,7 +1570,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -1385,17 +1590,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -1406,9 +1611,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -1418,9 +1623,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -1430,9 +1635,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -1442,9 +1647,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -1454,9 +1659,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -1466,9 +1671,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -1478,9 +1683,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winit" @@ -1489,7 +1694,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196" dependencies = [ "android-activity", - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "core-foundation", "core-graphics", @@ -1519,9 +1724,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.5.0" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] @@ -1548,12 +1753,6 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a56c84a8ccd4258aed21c92f70c0f6dea75356b6892ae27c24139da456f9336" - -[[package]] -name = "xmlparser" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" +checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" diff --git a/Cargo.toml b/Cargo.toml index 75ceb11..e948f59 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,8 +6,5 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -cgmath = "0.18.0" -vulkano = "0.33.0" -vulkano-shaders = "0.33.0" -vulkano-win = "0.33.0" +wgpu = "0.17.0" winit = "0.28.6" diff --git a/src/frag.glsl b/src/frag.glsl deleted file mode 100644 index 39c544e..0000000 --- a/src/frag.glsl +++ /dev/null @@ -1,14 +0,0 @@ -#version 450 - -layout(location = 0) in vec3 v_normal; -layout(location = 0) out vec4 f_color; - -const vec3 LIGHT = vec3(0.0, 0.0, 1.0); - -void main() { - float brightness = dot(normalize(v_normal), normalize(LIGHT)); - vec3 dark_color = vec3(0.6, 0.0, 0.0); - vec3 regular_color = vec3(1.0, 0.0, 0.0); - - f_color = vec4(mix(dark_color, regular_color, brightness), 1.0); -} diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 625f50c..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,3377 +0,0 @@ -// Copyright (c) 2016 The vulkano developers -// Licensed under the Apache License, Version 2.0 -// or the MIT -// license , -// at your option. All files in the project carrying such -// notice may not be copied, modified, or distributed except -// according to those terms. - -use vulkano::{buffer::BufferContents, pipeline::graphics::vertex_input::Vertex}; - -#[derive(BufferContents, Vertex)] -#[repr(C)] -pub struct Position { - #[format(R32G32B32_SFLOAT)] - position: [f32; 3], -} - -pub const POSITIONS: [Position; 531] = [ - Position { - position: [0.0, 0.0, 0.0], - }, // dummy vector because in the original model indices - // start at 1 - Position { - position: [40.6266, 28.3457, -1.10804], - }, - Position { - position: [40.0714, 30.4443, -1.10804], - }, - Position { - position: [40.7155, 31.1438, -1.10804], - }, - Position { - position: [42.0257, 30.4443, -1.10804], - }, - Position { - position: [43.4692, 28.3457, -1.10804], - }, - Position { - position: [37.5425, 28.3457, 14.5117], - }, - Position { - position: [37.0303, 30.4443, 14.2938], - }, - Position { - position: [37.6244, 31.1438, 14.5466], - }, - Position { - position: [38.8331, 30.4443, 15.0609], - }, - Position { - position: [40.1647, 28.3457, 15.6274], - }, - Position { - position: [29.0859, 28.3457, 27.1468], - }, - Position { - position: [28.6917, 30.4443, 26.7527], - }, - Position { - position: [29.149, 31.1438, 27.2099], - }, - Position { - position: [30.0792, 30.4443, 28.1402], - }, - Position { - position: [31.1041, 28.3457, 29.165], - }, - Position { - position: [16.4508, 28.3457, 35.6034], - }, - Position { - position: [16.2329, 30.4443, 35.0912], - }, - Position { - position: [16.4857, 31.1438, 35.6853], - }, - Position { - position: [16.9999, 30.4443, 36.894], - }, - Position { - position: [17.5665, 28.3457, 38.2256], - }, - Position { - position: [0.831025, 28.3457, 38.6876], - }, - Position { - position: [0.831025, 30.4443, 38.1324], - }, - Position { - position: [0.831025, 31.1438, 38.7764], - }, - Position { - position: [0.831025, 30.4443, 40.0866], - }, - Position { - position: [0.831025, 28.3457, 41.5301], - }, - Position { - position: [-15.868, 28.3457, 35.6034], - }, - Position { - position: [-15.0262, 30.4443, 35.0912], - }, - Position { - position: [-14.9585, 31.1438, 35.6853], - }, - Position { - position: [-15.3547, 30.4443, 36.894], - }, - Position { - position: [-15.9044, 28.3457, 38.2256], - }, - Position { - position: [-28.3832, 28.3457, 27.1468], - }, - Position { - position: [-27.4344, 30.4443, 26.7527], - }, - Position { - position: [-27.6068, 31.1438, 27.2099], - }, - Position { - position: [-28.4322, 30.4443, 28.1402], - }, - Position { - position: [-29.4421, 28.3457, 29.165], - }, - Position { - position: [-36.2402, 28.3457, 14.5117], - }, - Position { - position: [-35.52, 30.4443, 14.2938], - }, - Position { - position: [-36.0073, 31.1438, 14.5466], - }, - Position { - position: [-37.1767, 30.4443, 15.0609], - }, - Position { - position: [-38.5027, 28.3457, 15.6274], - }, - Position { - position: [-38.9646, 28.3457, -1.10804], - }, - Position { - position: [-38.4094, 30.4443, -1.10804], - }, - Position { - position: [-39.0534, 31.1438, -1.10804], - }, - Position { - position: [-40.3636, 30.4443, -1.10804], - }, - Position { - position: [-41.8071, 28.3457, -1.10804], - }, - Position { - position: [-35.8804, 28.3457, -16.7278], - }, - Position { - position: [-35.3683, 30.4443, -16.5099], - }, - Position { - position: [-35.9624, 31.1438, -16.7627], - }, - Position { - position: [-37.1711, 30.4443, -17.2769], - }, - Position { - position: [-38.5027, 28.3457, -17.8435], - }, - Position { - position: [-27.4238, 28.3457, -29.3629], - }, - Position { - position: [-27.0297, 30.4443, -28.9687], - }, - Position { - position: [-27.4869, 31.1438, -29.426], - }, - Position { - position: [-28.4172, 30.4443, -30.3562], - }, - Position { - position: [-29.4421, 28.3457, -31.3811], - }, - Position { - position: [-14.7887, 28.3457, -37.8195], - }, - Position { - position: [-14.5708, 30.4443, -37.3073], - }, - Position { - position: [-14.8236, 31.1438, -37.9014], - }, - Position { - position: [-15.3379, 30.4443, -39.1101], - }, - Position { - position: [-15.9044, 28.3457, -40.4417], - }, - Position { - position: [0.831025, 28.3457, -40.9036], - }, - Position { - position: [0.831025, 30.4443, -40.3484], - }, - Position { - position: [0.831025, 31.1438, -40.9925], - }, - Position { - position: [0.831025, 30.4443, -42.3027], - }, - Position { - position: [0.831025, 28.3457, -43.7462], - }, - Position { - position: [16.4508, 28.3457, -37.8195], - }, - Position { - position: [16.2329, 30.4443, -37.3073], - }, - Position { - position: [16.4857, 31.1438, -37.9014], - }, - Position { - position: [16.9999, 30.4443, -39.1101], - }, - Position { - position: [17.5665, 28.3457, -40.4417], - }, - Position { - position: [29.0859, 28.3457, -29.3629], - }, - Position { - position: [28.6917, 30.4443, -28.9687], - }, - Position { - position: [29.149, 31.1438, -29.426], - }, - Position { - position: [30.0792, 30.4443, -30.3562], - }, - Position { - position: [31.1041, 28.3457, -31.3811], - }, - Position { - position: [37.5425, 28.3457, -16.7278], - }, - Position { - position: [37.0303, 30.4443, -16.5099], - }, - Position { - position: [37.6244, 31.1438, -16.7627], - }, - Position { - position: [38.8331, 30.4443, -17.2769], - }, - Position { - position: [40.1647, 28.3457, -17.8435], - }, - Position { - position: [48.6879, 17.1865, -1.10804], - }, - Position { - position: [53.2404, 6.22714, -1.10804], - }, - Position { - position: [56.4605, -4.33246, -1.10804], - }, - Position { - position: [57.6819, -14.2925, -1.10804], - }, - Position { - position: [44.979, 17.1865, 17.6758], - }, - Position { - position: [49.1787, 6.22714, 19.4626], - }, - Position { - position: [52.1492, -4.33246, 20.7265], - }, - Position { - position: [53.2759, -14.2925, 21.2059], - }, - Position { - position: [34.8094, 17.1865, 32.8703], - }, - Position { - position: [38.0417, 6.22714, 36.1026], - }, - Position { - position: [40.3279, -4.33246, 38.3889], - }, - Position { - position: [41.1951, -14.2925, 39.2561], - }, - Position { - position: [19.6148, 17.1865, 43.0399], - }, - Position { - position: [21.4017, 6.22714, 47.2396], - }, - Position { - position: [22.6656, -4.33246, 50.2101], - }, - Position { - position: [23.145, -14.2925, 51.3369], - }, - Position { - position: [0.831025, 17.1865, 46.7488], - }, - Position { - position: [0.831025, 6.22714, 51.3013], - }, - Position { - position: [0.831025, -4.33246, 54.5214], - }, - Position { - position: [0.831025, -14.2925, 55.7428], - }, - Position { - position: [-17.9528, 17.1865, 43.0399], - }, - Position { - position: [-19.7397, 6.22714, 47.2396], - }, - Position { - position: [-21.0035, -4.33246, 50.2101], - }, - Position { - position: [-21.4829, -14.2925, 51.3369], - }, - Position { - position: [-33.1474, 17.1865, 32.8703], - }, - Position { - position: [-36.3796, 6.22714, 36.1026], - }, - Position { - position: [-38.6659, -4.33246, 38.3889], - }, - Position { - position: [-39.5331, -14.2925, 39.2561], - }, - Position { - position: [-43.3169, 17.1865, 17.6758], - }, - Position { - position: [-47.5166, 6.22714, 19.4626], - }, - Position { - position: [-50.4871, -4.33246, 20.7265], - }, - Position { - position: [-51.6139, -14.2925, 21.2059], - }, - Position { - position: [-47.0258, 17.1865, -1.10804], - }, - Position { - position: [-51.5784, 6.22714, -1.10804], - }, - Position { - position: [-54.7984, -4.33246, -1.10804], - }, - Position { - position: [-56.0198, -14.2925, -1.10804], - }, - Position { - position: [-43.3169, 17.1865, -19.8919], - }, - Position { - position: [-47.5166, 6.22714, -21.6787], - }, - Position { - position: [-50.4871, -4.33246, -22.9426], - }, - Position { - position: [-51.6139, -14.2925, -23.422], - }, - Position { - position: [-33.1474, 17.1865, -35.0864], - }, - Position { - position: [-36.3796, 6.22714, -38.3187], - }, - Position { - position: [-38.6659, -4.33246, -40.6049], - }, - Position { - position: [-39.5331, -14.2925, -41.4721], - }, - Position { - position: [-17.9528, 17.1865, -45.256], - }, - Position { - position: [-19.7397, 6.22714, -49.4557], - }, - Position { - position: [-21.0035, -4.33246, -52.4262], - }, - Position { - position: [-21.4829, -14.2925, -53.5529], - }, - Position { - position: [0.831025, 17.1865, -48.9649], - }, - Position { - position: [0.831025, 6.22714, -53.5174], - }, - Position { - position: [0.831025, -4.33246, -56.7375], - }, - Position { - position: [0.831025, -14.2925, -57.9589], - }, - Position { - position: [19.6148, 17.1865, -45.256], - }, - Position { - position: [21.4017, 6.22714, -49.4557], - }, - Position { - position: [22.6656, -4.33246, -52.4262], - }, - Position { - position: [23.145, -14.2925, -53.5529], - }, - Position { - position: [34.8094, 17.1865, -35.0864], - }, - Position { - position: [38.0417, 6.22714, -38.3187], - }, - Position { - position: [40.3279, -4.33246, -40.6049], - }, - Position { - position: [41.1951, -14.2925, -41.4721], - }, - Position { - position: [44.979, 17.1865, -19.8919], - }, - Position { - position: [49.1787, 6.22714, -21.6787], - }, - Position { - position: [52.1492, -4.33246, -22.9426], - }, - Position { - position: [53.2759, -14.2925, -23.422], - }, - Position { - position: [55.4611, -22.7202, -1.10804], - }, - Position { - position: [50.5755, -28.9493, -1.10804], - }, - Position { - position: [45.6899, -33.1798, -1.10804], - }, - Position { - position: [43.4692, -35.6115, -1.10804], - }, - Position { - position: [51.2273, -22.7202, 20.3343], - }, - Position { - position: [46.7203, -28.9493, 18.4167], - }, - Position { - position: [42.2133, -33.1798, 16.4991], - }, - Position { - position: [40.1647, -35.6115, 15.6274], - }, - Position { - position: [39.6184, -22.7202, 37.6793], - }, - Position { - position: [36.1496, -28.9493, 34.2106], - }, - Position { - position: [32.6808, -33.1798, 30.7418], - }, - Position { - position: [31.1041, -35.6115, 29.165], - }, - Position { - position: [22.2733, -22.7202, 49.2882], - }, - Position { - position: [20.3557, -28.9493, 44.7813], - }, - Position { - position: [18.4381, -33.1798, 40.2743], - }, - Position { - position: [17.5665, -35.6115, 38.2256], - }, - Position { - position: [0.831025, -22.7202, 53.5221], - }, - Position { - position: [0.831025, -28.9493, 48.6365], - }, - Position { - position: [0.831025, -33.1798, 43.7508], - }, - Position { - position: [0.831025, -35.6115, 41.5301], - }, - Position { - position: [-20.6113, -22.7202, 49.2882], - }, - Position { - position: [-18.6937, -28.9493, 44.7813], - }, - Position { - position: [-16.7761, -33.1798, 40.2743], - }, - Position { - position: [-15.9044, -35.6115, 38.2256], - }, - Position { - position: [-37.9564, -22.7202, 37.6793], - }, - Position { - position: [-34.4876, -28.9493, 34.2106], - }, - Position { - position: [-31.0188, -33.1798, 30.7418], - }, - Position { - position: [-29.4421, -35.6115, 29.165], - }, - Position { - position: [-49.5653, -22.7202, 20.3343], - }, - Position { - position: [-45.0583, -28.9493, 18.4167], - }, - Position { - position: [-40.5513, -33.1798, 16.4991], - }, - Position { - position: [-38.5027, -35.6115, 15.6274], - }, - Position { - position: [-53.7991, -22.7202, -1.10804], - }, - Position { - position: [-48.9135, -28.9493, -1.10804], - }, - Position { - position: [-44.0279, -33.1798, -1.10804], - }, - Position { - position: [-41.8071, -35.6115, -1.10804], - }, - Position { - position: [-49.5653, -22.7202, -22.5504], - }, - Position { - position: [-45.0583, -28.9493, -20.6327], - }, - Position { - position: [-40.5513, -33.1798, -18.7151], - }, - Position { - position: [-38.5027, -35.6115, -17.8435], - }, - Position { - position: [-37.9564, -22.7202, -39.8954], - }, - Position { - position: [-34.4876, -28.9493, -36.4266], - }, - Position { - position: [-31.0188, -33.1798, -32.9578], - }, - Position { - position: [-29.4421, -35.6115, -31.3811], - }, - Position { - position: [-20.6113, -22.7202, -51.5043], - }, - Position { - position: [-18.6937, -28.9493, -46.9973], - }, - Position { - position: [-16.7761, -33.1798, -42.4903], - }, - Position { - position: [-15.9044, -35.6115, -40.4417], - }, - Position { - position: [0.831025, -22.7202, -55.7382], - }, - Position { - position: [0.831025, -28.9493, -50.8525], - }, - Position { - position: [0.831025, -33.1798, -45.9669], - }, - Position { - position: [0.831025, -35.6115, -43.7462], - }, - Position { - position: [22.2733, -22.7202, -51.5043], - }, - Position { - position: [20.3557, -28.9493, -46.9973], - }, - Position { - position: [18.4381, -33.1798, -42.4903], - }, - Position { - position: [17.5665, -35.6115, -40.4417], - }, - Position { - position: [39.6184, -22.7202, -39.8954], - }, - Position { - position: [36.1496, -28.9493, -36.4266], - }, - Position { - position: [32.6808, -33.1798, -32.9578], - }, - Position { - position: [31.1041, -35.6115, -31.3811], - }, - Position { - position: [51.2273, -22.7202, -22.5504], - }, - Position { - position: [46.7203, -28.9493, -20.6327], - }, - Position { - position: [42.2133, -33.1798, -18.7151], - }, - Position { - position: [40.1647, -35.6115, -17.8435], - }, - Position { - position: [42.5031, -37.1772, -1.10804], - }, - Position { - position: [37.3399, -38.5429, -1.10804], - }, - Position { - position: [24.5818, -39.5089, -1.10804], - }, - Position { - position: [0.831025, -39.8754, -1.10804], - }, - Position { - position: [39.2736, -37.1772, 15.2483], - }, - Position { - position: [34.5105, -38.5429, 13.2217], - }, - Position { - position: [22.7411, -39.5089, 8.21414], - }, - Position { - position: [30.4182, -37.1772, 28.4792], - }, - Position { - position: [26.7523, -38.5429, 24.8133], - }, - Position { - position: [17.6941, -39.5089, 15.755], - }, - Position { - position: [17.1873, -37.1772, 37.3345], - }, - Position { - position: [15.1608, -38.5429, 32.5714], - }, - Position { - position: [10.1532, -39.5089, 20.8021], - }, - Position { - position: [0.831025, -37.1772, 40.5641], - }, - Position { - position: [0.831025, -38.5429, 35.4009], - }, - Position { - position: [0.831025, -39.5089, 22.6427], - }, - Position { - position: [-15.5253, -37.1772, 37.3345], - }, - Position { - position: [-13.4987, -38.5429, 32.5714], - }, - Position { - position: [-8.49115, -39.5089, 20.8021], - }, - Position { - position: [-28.7562, -37.1772, 28.4792], - }, - Position { - position: [-25.0903, -38.5429, 24.8133], - }, - Position { - position: [-16.032, -39.5089, 15.755], - }, - Position { - position: [-37.6115, -37.1772, 15.2483], - }, - Position { - position: [-32.8484, -38.5429, 13.2217], - }, - Position { - position: [-21.0791, -39.5089, 8.21414], - }, - Position { - position: [-40.8411, -37.1772, -1.10804], - }, - Position { - position: [-35.6779, -38.5429, -1.10804], - }, - Position { - position: [-22.9198, -39.5089, -1.10804], - }, - Position { - position: [-37.6115, -37.1772, -17.4643], - }, - Position { - position: [-32.8484, -38.5429, -15.4378], - }, - Position { - position: [-21.0791, -39.5089, -10.4302], - }, - Position { - position: [-28.7562, -37.1772, -30.6952], - }, - Position { - position: [-25.0903, -38.5429, -27.0294], - }, - Position { - position: [-16.032, -39.5089, -17.9711], - }, - Position { - position: [-15.5253, -37.1772, -39.5506], - }, - Position { - position: [-13.4987, -38.5429, -34.7875], - }, - Position { - position: [-8.49115, -39.5089, -23.0181], - }, - Position { - position: [0.831025, -37.1772, -42.7802], - }, - Position { - position: [0.831025, -38.5429, -37.6169], - }, - Position { - position: [0.831025, -39.5089, -24.8588], - }, - Position { - position: [17.1873, -37.1772, -39.5506], - }, - Position { - position: [15.1608, -38.5429, -34.7875], - }, - Position { - position: [10.1532, -39.5089, -23.0181], - }, - Position { - position: [30.4182, -37.1772, -30.6952], - }, - Position { - position: [26.7523, -38.5429, -27.0294], - }, - Position { - position: [17.6941, -39.5089, -17.9711], - }, - Position { - position: [39.2736, -37.1772, -17.4643], - }, - Position { - position: [34.5105, -38.5429, -15.4378], - }, - Position { - position: [22.7411, -39.5089, -10.4302], - }, - Position { - position: [-44.6497, 17.6861, -1.10804], - }, - Position { - position: [-57.9297, 17.5862, -1.10804], - }, - Position { - position: [-67.7453, 16.8867, -1.10804], - }, - Position { - position: [-73.8301, 14.9879, -1.10804], - }, - Position { - position: [-75.9176, 11.2904, -1.10804], - }, - Position { - position: [-44.2055, 18.6855, 3.68876], - }, - Position { - position: [-58.3252, 18.5699, 3.68876], - }, - Position { - position: [-68.6891, 17.7611, 3.68876], - }, - Position { - position: [-75.0724, 15.5657, 3.68876], - }, - Position { - position: [-77.2501, 11.2904, 3.68876], - }, - Position { - position: [-43.2284, 20.884, 5.28769], - }, - Position { - position: [-59.1955, 20.7341, 5.28769], - }, - Position { - position: [-70.7655, 19.6848, 5.28769], - }, - Position { - position: [-77.8053, 16.8367, 5.28769], - }, - Position { - position: [-80.1814, 11.2904, 5.28769], - }, - Position { - position: [-42.2513, 23.0825, 3.68876], - }, - Position { - position: [-60.0657, 22.8983, 3.68876], - }, - Position { - position: [-72.8419, 21.6085, 3.68876], - }, - Position { - position: [-80.5381, 18.1077, 3.68876], - }, - Position { - position: [-83.1128, 11.2904, 3.68876], - }, - Position { - position: [-41.8071, 24.0819, -1.10804], - }, - Position { - position: [-60.4613, 23.882, -1.10804], - }, - Position { - position: [-73.7857, 22.4829, -1.10804], - }, - Position { - position: [-81.7804, 18.6855, -1.10804], - }, - Position { - position: [-84.4453, 11.2904, -1.10804], - }, - Position { - position: [-42.2513, 23.0825, -5.90483], - }, - Position { - position: [-60.0657, 22.8983, -5.90483], - }, - Position { - position: [-72.8419, 21.6085, -5.90483], - }, - Position { - position: [-80.5381, 18.1077, -5.90483], - }, - Position { - position: [-83.1128, 11.2904, -5.90483], - }, - Position { - position: [-43.2284, 20.884, -7.50376], - }, - Position { - position: [-59.1955, 20.7341, -7.50376], - }, - Position { - position: [-70.7655, 19.6848, -7.50376], - }, - Position { - position: [-77.8053, 16.8367, -7.50376], - }, - Position { - position: [-80.1814, 11.2904, -7.50376], - }, - Position { - position: [-44.2055, 18.6855, -5.90483], - }, - Position { - position: [-58.3252, 18.5699, -5.90483], - }, - Position { - position: [-68.6891, 17.7611, -5.90483], - }, - Position { - position: [-75.0724, 15.5657, -5.90483], - }, - Position { - position: [-77.2501, 11.2904, -5.90483], - }, - Position { - position: [-74.8073, 5.4943, -1.10804], - }, - Position { - position: [-71.2985, -1.50103, -1.10804], - }, - Position { - position: [-65.1248, -8.49634, -1.10804], - }, - Position { - position: [-56.0198, -14.2925, -1.10804], - }, - Position { - position: [-76.0183, 4.93477, 3.68876], - }, - Position { - position: [-72.159, -2.35462, 3.68876], - }, - Position { - position: [-65.4267, -9.55033, 3.68876], - }, - Position { - position: [-55.5757, -15.6249, 3.68876], - }, - Position { - position: [-78.6824, 3.70383, 5.28769], - }, - Position { - position: [-74.0522, -4.23253, 5.28769], - }, - Position { - position: [-66.0909, -11.8691, 5.28769], - }, - Position { - position: [-54.5986, -18.5563, 5.28769], - }, - Position { - position: [-81.3466, 2.47288, 3.68876], - }, - Position { - position: [-75.9454, -6.11044, 3.68876], - }, - Position { - position: [-66.755, -14.1878, 3.68876], - }, - Position { - position: [-53.6214, -21.4877, 3.68876], - }, - Position { - position: [-82.5576, 1.91336, -1.10804], - }, - Position { - position: [-76.8059, -6.96404, -1.10804], - }, - Position { - position: [-67.0569, -15.2418, -1.10804], - }, - Position { - position: [-53.1773, -22.8201, -1.10804], - }, - Position { - position: [-81.3466, 2.47288, -5.90483], - }, - Position { - position: [-75.9454, -6.11044, -5.90483], - }, - Position { - position: [-66.755, -14.1878, -5.90483], - }, - Position { - position: [-53.6214, -21.4877, -5.90483], - }, - Position { - position: [-78.6824, 3.70383, -7.50376], - }, - Position { - position: [-74.0522, -4.23253, -7.50376], - }, - Position { - position: [-66.0909, -11.8691, -7.50376], - }, - Position { - position: [-54.5986, -18.5563, -7.50376], - }, - Position { - position: [-76.0183, 4.93477, -5.90483], - }, - Position { - position: [-72.159, -2.35462, -5.90483], - }, - Position { - position: [-65.4267, -9.55033, -5.90483], - }, - Position { - position: [-55.5757, -15.6249, -5.90483], - }, - Position { - position: [49.1543, 0.630882, -1.10804], - }, - Position { - position: [62.7896, 3.76212, -1.10804], - }, - Position { - position: [68.6967, 11.2904, -1.10804], - }, - Position { - position: [71.939, 20.4176, -1.10804], - }, - Position { - position: [77.5797, 28.3457, -1.10804], - }, - Position { - position: [49.1543, -3.03333, 9.4449], - }, - Position { - position: [63.8305, 1.04519, 8.42059], - }, - Position { - position: [70.0292, 9.70814, 6.1671], - }, - Position { - position: [73.5629, 19.8451, 3.91361], - }, - Position { - position: [80.2446, 28.3457, 2.88929], - }, - Position { - position: [49.1543, -11.0946, 12.9626], - }, - Position { - position: [66.1207, -4.93206, 11.5968], - }, - Position { - position: [72.9605, 6.22714, 8.59214], - }, - Position { - position: [77.1355, 18.5855, 5.58749], - }, - Position { - position: [86.1073, 28.3457, 4.22173], - }, - Position { - position: [49.1543, -19.1559, 9.4449], - }, - Position { - position: [68.4108, -10.9093, 8.42059], - }, - Position { - position: [75.8919, 2.74614, 6.1671], - }, - Position { - position: [80.7081, 17.326, 3.91361], - }, - Position { - position: [91.97, 28.3457, 2.88929], - }, - Position { - position: [49.1543, -22.8201, -1.10804], - }, - Position { - position: [69.4518, -13.6262, -1.10804], - }, - Position { - position: [77.2244, 1.16386, -1.10804], - }, - Position { - position: [82.3321, 16.7534, -1.10804], - }, - Position { - position: [94.6349, 28.3457, -1.10804], - }, - Position { - position: [49.1543, -19.1559, -11.661], - }, - Position { - position: [68.4108, -10.9093, -10.6367], - }, - Position { - position: [75.8919, 2.74614, -8.38317], - }, - Position { - position: [80.7081, 17.326, -6.12968], - }, - Position { - position: [91.97, 28.3457, -5.10536], - }, - Position { - position: [49.1543, -11.0946, -15.1786], - }, - Position { - position: [66.1207, -4.93206, -13.8129], - }, - Position { - position: [72.9605, 6.22714, -10.8082], - }, - Position { - position: [77.1355, 18.5855, -7.80356], - }, - Position { - position: [86.1073, 28.3457, -6.4378], - }, - Position { - position: [49.1543, -3.03333, -11.661], - }, - Position { - position: [63.8305, 1.04519, -10.6367], - }, - Position { - position: [70.0292, 9.70814, -8.38317], - }, - Position { - position: [73.5629, 19.8451, -6.12968], - }, - Position { - position: [80.2446, 28.3457, -5.10536], - }, - Position { - position: [79.6227, 29.5449, -1.10804], - }, - Position { - position: [81.1329, 29.9446, -1.10804], - }, - Position { - position: [81.577, 29.5449, -1.10804], - }, - Position { - position: [80.4222, 28.3457, -1.10804], - }, - Position { - position: [82.4767, 29.6034, 2.63946], - }, - Position { - position: [83.8116, 30.0383, 2.08983], - }, - Position { - position: [83.8515, 29.6268, 1.54019], - }, - Position { - position: [82.1988, 28.3457, 1.29036], - }, - Position { - position: [88.7555, 29.7322, 3.88862], - }, - Position { - position: [89.7049, 30.2444, 3.15578], - }, - Position { - position: [88.8555, 29.8072, 2.42294], - }, - Position { - position: [86.1073, 28.3457, 2.08983], - }, - Position { - position: [95.0343, 29.8611, 2.63946], - }, - Position { - position: [95.5982, 30.4505, 2.08983], - }, - Position { - position: [93.8594, 29.9875, 1.54019], - }, - Position { - position: [90.0158, 28.3457, 1.29036], - }, - Position { - position: [97.8883, 29.9196, -1.10804], - }, - Position { - position: [98.2769, 30.5442, -1.10804], - }, - Position { - position: [96.1339, 30.0695, -1.10804], - }, - Position { - position: [91.7924, 28.3457, -1.10804], - }, - Position { - position: [95.0343, 29.8611, -4.85553], - }, - Position { - position: [95.5982, 30.4505, -4.3059], - }, - Position { - position: [93.8594, 29.9875, -3.75626], - }, - Position { - position: [90.0158, 28.3457, -3.50643], - }, - Position { - position: [88.7555, 29.7322, -6.10469], - }, - Position { - position: [89.7049, 30.2444, -5.37185], - }, - Position { - position: [88.8555, 29.8072, -4.63901], - }, - Position { - position: [86.1073, 28.3457, -4.3059], - }, - Position { - position: [82.4767, 29.6034, -4.85553], - }, - Position { - position: [83.8116, 30.0383, -4.3059], - }, - Position { - position: [83.8515, 29.6268, -3.75626], - }, - Position { - position: [82.1988, 28.3457, -3.50643], - }, - Position { - position: [0.831025, 49.6647, -1.10804], - }, - Position { - position: [10.5134, 48.2657, -1.10804], - }, - Position { - position: [10.0693, 44.868, -1.10804], - }, - Position { - position: [6.42728, 40.6708, -1.10804], - }, - Position { - position: [6.51611, 36.8733, -1.10804], - }, - Position { - position: [9.76642, 48.2657, 2.70243], - }, - Position { - position: [9.35632, 44.868, 2.52698], - }, - Position { - position: [5.9947, 40.6708, 1.09187], - }, - Position { - position: [6.07552, 36.8733, 1.12336], - }, - Position { - position: [7.71453, 48.2657, 5.77547], - }, - Position { - position: [7.39819, 44.868, 5.45913], - }, - Position { - position: [4.80736, 40.6708, 2.8683], - }, - Position { - position: [4.86744, 36.8733, 2.92838], - }, - Position { - position: [4.64149, 48.2657, 7.82736], - }, - Position { - position: [4.46604, 44.868, 7.41726], - }, - Position { - position: [3.03093, 40.6708, 4.05564], - }, - Position { - position: [3.06242, 36.8733, 4.13646], - }, - Position { - position: [0.831025, 48.2657, 8.57438], - }, - Position { - position: [0.831025, 44.868, 8.13023], - }, - Position { - position: [0.831025, 40.6708, 4.48822], - }, - Position { - position: [0.831025, 36.8733, 4.57705], - }, - Position { - position: [-2.97944, 48.2657, 7.82736], - }, - Position { - position: [-2.80399, 44.868, 7.41726], - }, - Position { - position: [-1.36888, 40.6708, 4.05564], - }, - Position { - position: [-1.40037, 36.8733, 4.13646], - }, - Position { - position: [-6.05248, 48.2657, 5.77547], - }, - Position { - position: [-5.73614, 44.868, 5.45913], - }, - Position { - position: [-3.14531, 40.6708, 2.8683], - }, - Position { - position: [-3.20539, 36.8733, 2.92838], - }, - Position { - position: [-8.10437, 48.2657, 2.70243], - }, - Position { - position: [-7.69427, 44.868, 2.52698], - }, - Position { - position: [-4.33265, 40.6708, 1.09187], - }, - Position { - position: [-4.41347, 36.8733, 1.12336], - }, - Position { - position: [-8.85139, 48.2657, -1.10804], - }, - Position { - position: [-8.40724, 44.868, -1.10804], - }, - Position { - position: [-4.76523, 40.6708, -1.10804], - }, - Position { - position: [-4.85406, 36.8733, -1.10804], - }, - Position { - position: [-8.10437, 48.2657, -4.9185], - }, - Position { - position: [-7.69427, 44.868, -4.74305], - }, - Position { - position: [-4.33265, 40.6708, -3.30794], - }, - Position { - position: [-4.41347, 36.8733, -3.33943], - }, - Position { - position: [-6.05248, 48.2657, -7.99154], - }, - Position { - position: [-5.73614, 44.868, -7.6752], - }, - Position { - position: [-3.14531, 40.6708, -5.08437], - }, - Position { - position: [-3.20539, 36.8733, -5.14445], - }, - Position { - position: [-2.97944, 48.2657, -10.0434], - }, - Position { - position: [-2.80399, 44.868, -9.63333], - }, - Position { - position: [-1.36888, 40.6708, -6.27171], - }, - Position { - position: [-1.40037, 36.8733, -6.35253], - }, - Position { - position: [0.831025, 48.2657, -10.7904], - }, - Position { - position: [0.831025, 44.868, -10.3463], - }, - Position { - position: [0.831025, 40.6708, -6.70429], - }, - Position { - position: [0.831025, 36.8733, -6.79312], - }, - Position { - position: [4.64149, 48.2657, -10.0434], - }, - Position { - position: [4.46604, 44.868, -9.63333], - }, - Position { - position: [3.03093, 40.6708, -6.27171], - }, - Position { - position: [3.06242, 36.8733, -6.35253], - }, - Position { - position: [7.71453, 48.2657, -7.99154], - }, - Position { - position: [7.39819, 44.868, -7.6752], - }, - Position { - position: [4.80736, 40.6708, -5.08437], - }, - Position { - position: [4.86744, 36.8733, -5.14445], - }, - Position { - position: [9.76642, 48.2657, -4.9185], - }, - Position { - position: [9.35632, 44.868, -4.74305], - }, - Position { - position: [5.9947, 40.6708, -3.30794], - }, - Position { - position: [6.07552, 36.8733, -3.33943], - }, - Position { - position: [13.8001, 34.3417, -1.10804], - }, - Position { - position: [24.282, 32.6095, -1.10804], - }, - Position { - position: [33.6979, 30.8773, -1.10804], - }, - Position { - position: [37.7841, 28.3457, -1.10804], - }, - Position { - position: [12.795, 34.3417, 3.98234], - }, - Position { - position: [22.4646, 32.6095, 8.09647], - }, - Position { - position: [31.1507, 30.8773, 11.7922], - }, - Position { - position: [34.9202, 28.3457, 13.396], - }, - Position { - position: [10.0391, 34.3417, 8.10003], - }, - Position { - position: [17.4812, 32.6095, 15.5422], - }, - Position { - position: [24.1665, 30.8773, 22.2275], - }, - Position { - position: [27.0677, 28.3457, 25.1286], - }, - Position { - position: [5.9214, 34.3417, 10.856], - }, - Position { - position: [10.0355, 32.6095, 20.5255], - }, - Position { - position: [13.7313, 30.8773, 29.2117], - }, - Position { - position: [15.3351, 28.3457, 32.9812], - }, - Position { - position: [0.831025, 34.3417, 11.8611], - }, - Position { - position: [0.831025, 32.6095, 22.3429], - }, - Position { - position: [0.831025, 30.8773, 31.7589], - }, - Position { - position: [0.831025, 28.3457, 35.845], - }, - Position { - position: [-4.25935, 34.3417, 10.856], - }, - Position { - position: [-8.37348, 32.6095, 20.5255], - }, - Position { - position: [-12.0692, 30.8773, 29.2117], - }, - Position { - position: [-13.673, 28.3457, 32.9812], - }, - Position { - position: [-8.37704, 34.3417, 8.10003], - }, - Position { - position: [-15.8192, 32.6095, 15.5422], - }, - Position { - position: [-22.5045, 30.8773, 22.2275], - }, - Position { - position: [-25.4056, 28.3457, 25.1286], - }, - Position { - position: [-11.133, 34.3417, 3.98234], - }, - Position { - position: [-20.8025, 32.6095, 8.09647], - }, - Position { - position: [-29.4887, 30.8773, 11.7922], - }, - Position { - position: [-33.2582, 28.3457, 13.396], - }, - Position { - position: [-12.1381, 34.3417, -1.10804], - }, - Position { - position: [-22.62, 32.6095, -1.10804], - }, - Position { - position: [-32.0359, 30.8773, -1.10804], - }, - Position { - position: [-36.122, 28.3457, -1.10804], - }, - Position { - position: [-11.133, 34.3417, -6.19841], - }, - Position { - position: [-20.8025, 32.6095, -10.3125], - }, - Position { - position: [-29.4887, 30.8773, -14.0083], - }, - Position { - position: [-33.2582, 28.3457, -15.6121], - }, - Position { - position: [-8.37704, 34.3417, -10.3161], - }, - Position { - position: [-15.8192, 32.6095, -17.7582], - }, - Position { - position: [-22.5045, 30.8773, -24.4435], - }, - Position { - position: [-25.4056, 28.3457, -27.3447], - }, - Position { - position: [-4.25935, 34.3417, -13.072], - }, - Position { - position: [-8.37348, 32.6095, -22.7416], - }, - Position { - position: [-12.0692, 30.8773, -31.4277], - }, - Position { - position: [-13.673, 28.3457, -35.1972], - }, - Position { - position: [0.831025, 34.3417, -14.0771], - }, - Position { - position: [0.831025, 32.6095, -24.559], - }, - Position { - position: [0.831025, 30.8773, -33.9749], - }, - Position { - position: [0.831025, 28.3457, -38.0611], - }, - Position { - position: [5.9214, 34.3417, -13.072], - }, - Position { - position: [10.0355, 32.6095, -22.7416], - }, - Position { - position: [13.7313, 30.8773, -31.4277], - }, - Position { - position: [15.3351, 28.3457, -35.1972], - }, - Position { - position: [10.0391, 34.3417, -10.3161], - }, - Position { - position: [17.4812, 32.6095, -17.7582], - }, - Position { - position: [24.1665, 30.8773, -24.4435], - }, - Position { - position: [27.0677, 28.3457, -27.3447], - }, - Position { - position: [12.795, 34.3417, -6.19841], - }, - Position { - position: [22.4646, 32.6095, -10.3125], - }, - Position { - position: [31.1507, 30.8773, -14.0083], - }, - Position { - position: [34.9202, 28.3457, -15.6121], - }, -]; - -#[derive(BufferContents, Vertex)] -#[repr(C)] -pub struct Normal { - #[format(R32G32B32_SFLOAT)] - normal: [f32; 3], -} - -pub const NORMALS: [Normal; 531] = [ - Normal { - normal: [0.0, 0.0, 0.0], - }, // dummy vector because in the original model indices - // start at 1 - Normal { - normal: [-0.966742, -0.255752, 0.0], - }, - Normal { - normal: [-0.966824, 0.255443, 0.0], - }, - Normal { - normal: [-0.092052, 0.995754, 0.0], - }, - Normal { - normal: [0.68205, 0.731305, 0.0], - }, - Normal { - normal: [0.870301, 0.492521, -0.0], - }, - Normal { - normal: [-0.893014, -0.256345, -0.369882], - }, - Normal { - normal: [-0.893437, 0.255997, -0.369102], - }, - Normal { - normal: [-0.0838771, 0.995843, -0.0355068], - }, - Normal { - normal: [0.629724, 0.73186, 0.260439], - }, - Normal { - normal: [0.803725, 0.49337, 0.332584], - }, - Normal { - normal: [-0.683407, -0.256729, -0.683407], - }, - Normal { - normal: [-0.683531, 0.256067, -0.683531], - }, - Normal { - normal: [-0.0649249, 0.995776, -0.0649248], - }, - Normal { - normal: [0.481398, 0.732469, 0.481398], - }, - Normal { - normal: [0.614804, 0.493997, 0.614804], - }, - Normal { - normal: [-0.369882, -0.256345, -0.893014], - }, - Normal { - normal: [-0.369102, 0.255997, -0.893437], - }, - Normal { - normal: [-0.0355067, 0.995843, -0.0838772], - }, - Normal { - normal: [0.260439, 0.73186, 0.629724], - }, - Normal { - normal: [0.332584, 0.49337, 0.803725], - }, - Normal { - normal: [-0.00284834, -0.257863, -0.966177], - }, - Normal { - normal: [-0.00192311, 0.254736, -0.967009], - }, - Normal { - normal: [-0.000266114, 0.995734, -0.0922702], - }, - Normal { - normal: [0.0, 0.731295, 0.682061], - }, - Normal { - normal: [0.0, 0.492521, 0.870301], - }, - Normal { - normal: [0.379058, -0.3593, -0.852771], - }, - Normal { - normal: [0.37711, 0.149086, -0.914091], - }, - Normal { - normal: [0.0275022, 0.992081, -0.122551], - }, - Normal { - normal: [-0.26101, 0.726762, 0.635367], - }, - Normal { - normal: [-0.332485, 0.492546, 0.804271], - }, - Normal { - normal: [0.663548, -0.410791, -0.625264], - }, - Normal { - normal: [0.712664, 0.0737216, -0.697621], - }, - Normal { - normal: [0.0997268, 0.987509, -0.121984], - }, - Normal { - normal: [-0.48732, 0.723754, 0.488568], - }, - Normal { - normal: [-0.615242, 0.492602, 0.615484], - }, - Normal { - normal: [0.880028, -0.332908, -0.338709], - }, - Normal { - normal: [0.917276, 0.167113, -0.361493], - }, - Normal { - normal: [0.113584, 0.992365, -0.0480695], - }, - Normal { - normal: [-0.63415, 0.727508, 0.261889], - }, - Normal { - normal: [-0.804126, 0.492634, 0.332705], - }, - Normal { - normal: [0.96669, -0.255738, 0.0104537], - }, - Normal { - normal: [0.967442, 0.252962, 0.00810329], - }, - Normal { - normal: [0.0934365, 0.995624, 0.00128063], - }, - Normal { - normal: [-0.682167, 0.731196, -0.00034353], - }, - Normal { - normal: [-0.870322, 0.492483, -0.0], - }, - Normal { - normal: [0.893014, -0.256345, 0.369882], - }, - Normal { - normal: [0.893437, 0.255997, 0.369102], - }, - Normal { - normal: [0.0838768, 0.995843, 0.0355066], - }, - Normal { - normal: [-0.629724, 0.73186, -0.260439], - }, - Normal { - normal: [-0.803725, 0.49337, -0.332584], - }, - Normal { - normal: [0.683407, -0.256729, 0.683407], - }, - Normal { - normal: [0.683531, 0.256067, 0.683531], - }, - Normal { - normal: [0.0649249, 0.995776, 0.0649249], - }, - Normal { - normal: [-0.481398, 0.732469, -0.481398], - }, - Normal { - normal: [-0.614804, 0.493997, -0.614804], - }, - Normal { - normal: [0.369882, -0.256345, 0.893014], - }, - Normal { - normal: [0.369102, 0.255997, 0.893437], - }, - Normal { - normal: [0.0355067, 0.995843, 0.083877], - }, - Normal { - normal: [-0.260439, 0.73186, -0.629724], - }, - Normal { - normal: [-0.332584, 0.49337, -0.803725], - }, - Normal { - normal: [0.0, -0.255752, 0.966742], - }, - Normal { - normal: [0.0, 0.255443, 0.966824], - }, - Normal { - normal: [0.0, 0.995754, 0.092052], - }, - Normal { - normal: [0.0, 0.731305, -0.68205], - }, - Normal { - normal: [-0.0, 0.492521, -0.870301], - }, - Normal { - normal: [-0.369882, -0.256345, 0.893014], - }, - Normal { - normal: [-0.369102, 0.255996, 0.893437], - }, - Normal { - normal: [-0.0355068, 0.995843, 0.0838771], - }, - Normal { - normal: [0.260439, 0.73186, -0.629724], - }, - Normal { - normal: [0.332584, 0.49337, -0.803725], - }, - Normal { - normal: [-0.683407, -0.256729, 0.683407], - }, - Normal { - normal: [-0.683531, 0.256067, 0.683531], - }, - Normal { - normal: [-0.0649249, 0.995776, 0.064925], - }, - Normal { - normal: [0.481398, 0.732469, -0.481398], - }, - Normal { - normal: [0.614804, 0.493997, -0.614804], - }, - Normal { - normal: [-0.893014, -0.256345, 0.369882], - }, - Normal { - normal: [-0.893437, 0.255997, 0.369102], - }, - Normal { - normal: [-0.0838767, 0.995843, 0.0355066], - }, - Normal { - normal: [0.629724, 0.73186, -0.260439], - }, - Normal { - normal: [0.803725, 0.49337, -0.332584], - }, - Normal { - normal: [0.915321, 0.402725, 0.0], - }, - Normal { - normal: [0.941808, 0.336151, -0.0], - }, - Normal { - normal: [0.97869, 0.205342, 0.0], - }, - Normal { - normal: [0.997804, -0.0662397, 0.0], - }, - Normal { - normal: [0.845438, 0.403546, 0.349835], - }, - Normal { - normal: [0.869996, 0.336859, 0.360047], - }, - Normal { - normal: [0.904193, 0.205791, 0.37428], - }, - Normal { - normal: [0.921879, -0.0663697, 0.381752], - }, - Normal { - normal: [0.646802, 0.404096, 0.646802], - }, - Normal { - normal: [0.665655, 0.337351, 0.665655], - }, - Normal { - normal: [0.691923, 0.20612, 0.691923], - }, - Normal { - normal: [0.705542, -0.0664796, 0.705543], - }, - Normal { - normal: [0.349835, 0.403546, 0.845438], - }, - Normal { - normal: [0.360047, 0.336859, 0.869996], - }, - Normal { - normal: [0.37428, 0.205791, 0.904193], - }, - Normal { - normal: [0.381752, -0.0663697, 0.921879], - }, - Normal { - normal: [-0.0, 0.402725, 0.915321], - }, - Normal { - normal: [0.0, 0.336151, 0.941808], - }, - Normal { - normal: [-0.0, 0.205342, 0.97869], - }, - Normal { - normal: [-0.0, -0.0662397, 0.997804], - }, - Normal { - normal: [-0.349835, 0.403546, 0.845438], - }, - Normal { - normal: [-0.360047, 0.336859, 0.869996], - }, - Normal { - normal: [-0.37428, 0.205791, 0.904193], - }, - Normal { - normal: [-0.381752, -0.0663697, 0.921879], - }, - Normal { - normal: [-0.646802, 0.404096, 0.646802], - }, - Normal { - normal: [-0.665655, 0.337351, 0.665655], - }, - Normal { - normal: [-0.691923, 0.20612, 0.691923], - }, - Normal { - normal: [-0.705543, -0.0664796, 0.705543], - }, - Normal { - normal: [-0.845438, 0.403546, 0.349835], - }, - Normal { - normal: [-0.869996, 0.336859, 0.360047], - }, - Normal { - normal: [-0.904193, 0.205791, 0.37428], - }, - Normal { - normal: [-0.921879, -0.0663697, 0.381752], - }, - Normal { - normal: [-0.915321, 0.402725, -0.0], - }, - Normal { - normal: [-0.941808, 0.336151, -0.0], - }, - Normal { - normal: [-0.97869, 0.205342, -0.0], - }, - Normal { - normal: [-0.997804, -0.0662397, -0.0], - }, - Normal { - normal: [-0.845438, 0.403546, -0.349835], - }, - Normal { - normal: [-0.869996, 0.336859, -0.360047], - }, - Normal { - normal: [-0.904193, 0.205791, -0.37428], - }, - Normal { - normal: [-0.921879, -0.0663697, -0.381752], - }, - Normal { - normal: [-0.646802, 0.404096, -0.646802], - }, - Normal { - normal: [-0.665655, 0.337351, -0.665655], - }, - Normal { - normal: [-0.691923, 0.20612, -0.691923], - }, - Normal { - normal: [-0.705542, -0.0664796, -0.705543], - }, - Normal { - normal: [-0.349835, 0.403546, -0.845438], - }, - Normal { - normal: [-0.360047, 0.336859, -0.869996], - }, - Normal { - normal: [-0.37428, 0.205791, -0.904193], - }, - Normal { - normal: [-0.381752, -0.0663697, -0.921879], - }, - Normal { - normal: [0.0, 0.402725, -0.915321], - }, - Normal { - normal: [-0.0, 0.336151, -0.941808], - }, - Normal { - normal: [0.0, 0.205342, -0.97869], - }, - Normal { - normal: [0.0, -0.0662397, -0.997804], - }, - Normal { - normal: [0.349835, 0.403546, -0.845438], - }, - Normal { - normal: [0.360047, 0.336859, -0.869996], - }, - Normal { - normal: [0.37428, 0.205791, -0.904193], - }, - Normal { - normal: [0.381752, -0.0663697, -0.921879], - }, - Normal { - normal: [0.646802, 0.404096, -0.646802], - }, - Normal { - normal: [0.665655, 0.337351, -0.665655], - }, - Normal { - normal: [0.691923, 0.20612, -0.691923], - }, - Normal { - normal: [0.705543, -0.0664796, -0.705542], - }, - Normal { - normal: [0.845438, 0.403546, -0.349835], - }, - Normal { - normal: [0.869996, 0.336859, -0.360047], - }, - Normal { - normal: [0.904193, 0.205791, -0.37428], - }, - Normal { - normal: [0.921879, -0.0663697, -0.381752], - }, - Normal { - normal: [0.900182, -0.435513, -0.0], - }, - Normal { - normal: [0.729611, -0.683863, -0.0], - }, - Normal { - normal: [0.693951, -0.720022, -0.0], - }, - Normal { - normal: [0.79395, -0.607984, 0.0], - }, - Normal { - normal: [0.831437, -0.43618, 0.344179], - }, - Normal { - normal: [0.673512, -0.684665, 0.278594], - }, - Normal { - normal: [0.640399, -0.720924, 0.264874], - }, - Normal { - normal: [0.732949, -0.608996, 0.303166], - }, - Normal { - normal: [0.636092, -0.436777, 0.636092], - }, - Normal { - normal: [0.514965, -0.685289, 0.514965], - }, - Normal { - normal: [0.489651, -0.721446, 0.489651], - }, - Normal { - normal: [0.560555, -0.609554, 0.560555], - }, - Normal { - normal: [0.344179, -0.43618, 0.831437], - }, - Normal { - normal: [0.278594, -0.684665, 0.673512], - }, - Normal { - normal: [0.264874, -0.720924, 0.640399], - }, - Normal { - normal: [0.303166, -0.608996, 0.732949], - }, - Normal { - normal: [0.0, -0.435513, 0.900182], - }, - Normal { - normal: [-0.0, -0.683863, 0.729611], - }, - Normal { - normal: [0.0, -0.720022, 0.693951], - }, - Normal { - normal: [-0.0, -0.607984, 0.79395], - }, - Normal { - normal: [-0.344179, -0.43618, 0.831437], - }, - Normal { - normal: [-0.278594, -0.684665, 0.673512], - }, - Normal { - normal: [-0.264874, -0.720924, 0.640399], - }, - Normal { - normal: [-0.303166, -0.608996, 0.732949], - }, - Normal { - normal: [-0.636092, -0.436777, 0.636092], - }, - Normal { - normal: [-0.514965, -0.685289, 0.514965], - }, - Normal { - normal: [-0.489651, -0.721446, 0.489651], - }, - Normal { - normal: [-0.560555, -0.609554, 0.560555], - }, - Normal { - normal: [-0.831437, -0.43618, 0.344179], - }, - Normal { - normal: [-0.673512, -0.684665, 0.278595], - }, - Normal { - normal: [-0.640399, -0.720924, 0.264874], - }, - Normal { - normal: [-0.732949, -0.608996, 0.303166], - }, - Normal { - normal: [-0.900182, -0.435513, -0.0], - }, - Normal { - normal: [-0.729611, -0.683863, -0.0], - }, - Normal { - normal: [-0.693951, -0.720022, 0.0], - }, - Normal { - normal: [-0.79395, -0.607983, -0.0], - }, - Normal { - normal: [-0.831437, -0.43618, -0.344179], - }, - Normal { - normal: [-0.673512, -0.684665, -0.278594], - }, - Normal { - normal: [-0.640399, -0.720924, -0.264874], - }, - Normal { - normal: [-0.732949, -0.608996, -0.303166], - }, - Normal { - normal: [-0.636092, -0.436777, -0.636092], - }, - Normal { - normal: [-0.514965, -0.685289, -0.514965], - }, - Normal { - normal: [-0.489651, -0.721446, -0.489651], - }, - Normal { - normal: [-0.560555, -0.609554, -0.560555], - }, - Normal { - normal: [-0.344179, -0.43618, -0.831437], - }, - Normal { - normal: [-0.278594, -0.684665, -0.673512], - }, - Normal { - normal: [-0.264874, -0.720924, -0.640399], - }, - Normal { - normal: [-0.303166, -0.608996, -0.732949], - }, - Normal { - normal: [-0.0, -0.435513, -0.900182], - }, - Normal { - normal: [0.0, -0.683863, -0.729611], - }, - Normal { - normal: [-0.0, -0.720022, -0.693951], - }, - Normal { - normal: [0.0, -0.607984, -0.79395], - }, - Normal { - normal: [0.344179, -0.43618, -0.831437], - }, - Normal { - normal: [0.278594, -0.684665, -0.673512], - }, - Normal { - normal: [0.264874, -0.720924, -0.640399], - }, - Normal { - normal: [0.303167, -0.608996, -0.732949], - }, - Normal { - normal: [0.636092, -0.436777, -0.636092], - }, - Normal { - normal: [0.514965, -0.685289, -0.514965], - }, - Normal { - normal: [0.489651, -0.721446, -0.489651], - }, - Normal { - normal: [0.560555, -0.609554, -0.560555], - }, - Normal { - normal: [0.831437, -0.43618, -0.344179], - }, - Normal { - normal: [0.673512, -0.684665, -0.278595], - }, - Normal { - normal: [0.640399, -0.720924, -0.264874], - }, - Normal { - normal: [0.732949, -0.608996, -0.303166], - }, - Normal { - normal: [0.62386, -0.781536, 0.0], - }, - Normal { - normal: [0.177291, -0.984159, -0.0], - }, - Normal { - normal: [0.0492072, -0.998789, 0.0], - }, - Normal { - normal: [0.0, -1.0, -0.0], - }, - Normal { - normal: [0.576229, -0.781801, 0.238217], - }, - Normal { - normal: [0.163629, -0.984208, 0.0675273], - }, - Normal { - normal: [0.0454217, -0.998792, 0.0187357], - }, - Normal { - normal: [0.440416, -0.782348, 0.440416], - }, - Normal { - normal: [0.124903, -0.984276, 0.124903], - }, - Normal { - normal: [0.0346621, -0.998798, 0.0346621], - }, - Normal { - normal: [0.238217, -0.781801, 0.576229], - }, - Normal { - normal: [0.0675273, -0.984208, 0.163629], - }, - Normal { - normal: [0.0187357, -0.998792, 0.0454217], - }, - Normal { - normal: [-0.0, -0.781536, 0.62386], - }, - Normal { - normal: [0.0, -0.984159, 0.177291], - }, - Normal { - normal: [-0.0, -0.998789, 0.0492072], - }, - Normal { - normal: [-0.238216, -0.781801, 0.576229], - }, - Normal { - normal: [-0.0675273, -0.984208, 0.163629], - }, - Normal { - normal: [-0.0187357, -0.998792, 0.0454217], - }, - Normal { - normal: [-0.440416, -0.782348, 0.440416], - }, - Normal { - normal: [-0.124903, -0.984276, 0.124903], - }, - Normal { - normal: [-0.0346621, -0.998798, 0.0346621], - }, - Normal { - normal: [-0.576229, -0.781801, 0.238217], - }, - Normal { - normal: [-0.163629, -0.984208, 0.0675273], - }, - Normal { - normal: [-0.0454217, -0.998792, 0.0187357], - }, - Normal { - normal: [-0.62386, -0.781536, -0.0], - }, - Normal { - normal: [-0.177291, -0.984159, 0.0], - }, - Normal { - normal: [-0.0492072, -0.998789, -0.0], - }, - Normal { - normal: [-0.576229, -0.781801, -0.238217], - }, - Normal { - normal: [-0.163629, -0.984208, -0.0675273], - }, - Normal { - normal: [-0.0454217, -0.998792, -0.0187357], - }, - Normal { - normal: [-0.440416, -0.782348, -0.440416], - }, - Normal { - normal: [-0.124903, -0.984276, -0.124903], - }, - Normal { - normal: [-0.0346621, -0.998798, -0.0346621], - }, - Normal { - normal: [-0.238217, -0.781801, -0.576229], - }, - Normal { - normal: [-0.0675273, -0.984208, -0.163629], - }, - Normal { - normal: [-0.0187357, -0.998792, -0.0454217], - }, - Normal { - normal: [0.0, -0.781536, -0.62386], - }, - Normal { - normal: [-0.0, -0.984159, -0.177291], - }, - Normal { - normal: [0.0, -0.998789, -0.0492072], - }, - Normal { - normal: [0.238217, -0.781801, -0.576229], - }, - Normal { - normal: [0.0675273, -0.984208, -0.163629], - }, - Normal { - normal: [0.0187357, -0.998792, -0.0454217], - }, - Normal { - normal: [0.440416, -0.782348, -0.440416], - }, - Normal { - normal: [0.124903, -0.984276, -0.124903], - }, - Normal { - normal: [0.0346621, -0.998798, -0.0346621], - }, - Normal { - normal: [0.576229, -0.781801, -0.238217], - }, - Normal { - normal: [0.163629, -0.984208, -0.0675273], - }, - Normal { - normal: [0.0454217, -0.998792, -0.0187357], - }, - Normal { - normal: [0.00778619, -0.99997, -0.000215809], - }, - Normal { - normal: [0.0391385, -0.999233, -0.000988567], - }, - Normal { - normal: [0.179511, -0.983746, -0.00436856], - }, - Normal { - normal: [0.6123, -0.790556, -0.0104598], - }, - Normal { - normal: [0.986152, -0.165707, -0.00666949], - }, - Normal { - normal: [0.00703893, -0.812495, 0.582926], - }, - Normal { - normal: [0.0361273, -0.837257, 0.545614], - }, - Normal { - normal: [0.161845, -0.810421, 0.563048], - }, - Normal { - normal: [0.482365, -0.595148, 0.642746], - }, - Normal { - normal: [0.73872, -0.114593, 0.664199], - }, - Normal { - normal: [-0.00190867, 0.162121, 0.986769], - }, - Normal { - normal: [0.0027616, 0.0171073, 0.99985], - }, - Normal { - normal: [0.0105326, 0.0733989, 0.997247], - }, - Normal { - normal: [-0.0660406, 0.130069, 0.989303], - }, - Normal { - normal: [-0.0944272, 0.0165946, 0.995393], - }, - Normal { - normal: [-0.009203, 0.871509, 0.490293], - }, - Normal { - normal: [-0.0486064, 0.840609, 0.539457], - }, - Normal { - normal: [-0.223298, 0.802881, 0.552739], - }, - Normal { - normal: [-0.596365, 0.559971, 0.575135], - }, - Normal { - normal: [-0.803337, 0.0682361, 0.591602], - }, - Normal { - normal: [-0.0105609, 0.999944, 0.000103364], - }, - Normal { - normal: [-0.0587986, 0.99827, 0.000709759], - }, - Normal { - normal: [-0.28071, 0.959787, 0.00326876], - }, - Normal { - normal: [-0.749723, 0.661738, 0.0042684], - }, - Normal { - normal: [-0.997351, 0.0727144, 0.00205923], - }, - Normal { - normal: [-0.00879197, 0.871493, -0.49033], - }, - Normal { - normal: [-0.0464937, 0.841178, -0.538756], - }, - Normal { - normal: [-0.217909, 0.806807, -0.549161], - }, - Normal { - normal: [-0.597291, 0.560026, -0.574121], - }, - Normal { - normal: [-0.804, 0.0629127, -0.591291], - }, - Normal { - normal: [-0.00180555, 0.161691, -0.98684], - }, - Normal { - normal: [0.00203087, 0.014555, -0.999892], - }, - Normal { - normal: [0.00921499, 0.0600698, -0.998152], - }, - Normal { - normal: [-0.0593333, 0.113865, -0.991723], - }, - Normal { - normal: [-0.0868992, 0.0122903, -0.996141], - }, - Normal { - normal: [0.00641779, -0.812379, -0.583094], - }, - Normal { - normal: [0.0337833, -0.837512, -0.545373], - }, - Normal { - normal: [0.157112, -0.811947, -0.56219], - }, - Normal { - normal: [0.484407, -0.589365, -0.646528], - }, - Normal { - normal: [0.73887, -0.10132, -0.666187], - }, - Normal { - normal: [0.946512, 0.32265, -0.0033571], - }, - Normal { - normal: [0.82583, 0.56387, -0.00745213], - }, - Normal { - normal: [0.650011, 0.759893, -0.00693681], - }, - Normal { - normal: [0.532429, 0.846458, -0.00524544], - }, - Normal { - normal: [0.725608, 0.259351, 0.637362], - }, - Normal { - normal: [0.645945, 0.461988, 0.607719], - }, - Normal { - normal: [0.531614, 0.63666, 0.558615], - }, - Normal { - normal: [0.424964, 0.681717, 0.59554], - }, - Normal { - normal: [-0.0495616, -0.019755, 0.998576], - }, - Normal { - normal: [-0.0378162, -0.0356243, 0.99865], - }, - Normal { - normal: [-0.0379139, -0.0365122, 0.998614], - }, - Normal { - normal: [-0.168854, -0.297946, 0.93953], - }, - Normal { - normal: [-0.742342, -0.299166, 0.599523], - }, - Normal { - normal: [-0.619602, -0.529406, 0.579503], - }, - Normal { - normal: [-0.483708, -0.685761, 0.543837], - }, - Normal { - normal: [-0.445293, -0.794355, 0.413176], - }, - Normal { - normal: [-0.926513, -0.376257, 0.00199587], - }, - Normal { - normal: [-0.75392, -0.656952, 0.00431723], - }, - Normal { - normal: [-0.566224, -0.824244, 0.00346105], - }, - Normal { - normal: [-0.481804, -0.876277, 0.00185047], - }, - Normal { - normal: [-0.744675, -0.294424, -0.598977], - }, - Normal { - normal: [-0.621949, -0.528114, -0.578165], - }, - Normal { - normal: [-0.481171, -0.68834, -0.542828], - }, - Normal { - normal: [-0.438055, -0.797035, -0.415744], - }, - Normal { - normal: [-0.0443368, -0.0170558, -0.998871], - }, - Normal { - normal: [-0.0261761, -0.0281665, -0.99926], - }, - Normal { - normal: [-0.0252939, -0.0283323, -0.999278], - }, - Normal { - normal: [-0.157482, -0.289392, -0.944167], - }, - Normal { - normal: [0.728244, 0.25241, -0.637142], - }, - Normal { - normal: [0.647055, 0.459725, -0.608254], - }, - Normal { - normal: [0.522994, 0.640657, -0.562171], - }, - Normal { - normal: [0.409978, 0.682857, -0.604669], - }, - Normal { - normal: [-0.230787, 0.972982, -0.00652338], - }, - Normal { - normal: [-0.548936, 0.835863, -0.00151111], - }, - Normal { - normal: [-0.875671, 0.482807, 0.00989278], - }, - Normal { - normal: [-0.877554, 0.479097, 0.0190923], - }, - Normal { - normal: [-0.69619, 0.717439, 0.024497], - }, - Normal { - normal: [-0.152878, 0.687211, 0.71019], - }, - Normal { - normal: [-0.316721, 0.63775, 0.702113], - }, - Normal { - normal: [-0.601067, 0.471452, 0.64533], - }, - Normal { - normal: [-0.635889, 0.44609, 0.6298], - }, - Normal { - normal: [-0.435746, 0.601008, 0.670011], - }, - Normal { - normal: [0.111112, -0.0850694, 0.99016], - }, - Normal { - normal: [0.22331, 0.00654036, 0.974726], - }, - Normal { - normal: [0.190097, 0.154964, 0.969458], - }, - Normal { - normal: [0.00527077, 0.189482, 0.98187], - }, - Normal { - normal: [-0.0117518, 0.246688, 0.969024], - }, - Normal { - normal: [0.343906, -0.722796, 0.599412], - }, - Normal { - normal: [0.572489, -0.567656, 0.591627], - }, - Normal { - normal: [0.787436, -0.256459, 0.560512], - }, - Normal { - normal: [0.647097, -0.306374, 0.698141], - }, - Normal { - normal: [0.427528, -0.499343, 0.753576], - }, - Normal { - normal: [0.410926, -0.911668, 0.00128446], - }, - Normal { - normal: [0.67152, -0.740986, -0.000899122], - }, - Normal { - normal: [0.922026, -0.38706, -0.00725269], - }, - Normal { - normal: [0.84691, -0.531556, -0.0138542], - }, - Normal { - normal: [0.535925, -0.8442, -0.0105045], - }, - Normal { - normal: [0.341188, -0.722822, -0.600931], - }, - Normal { - normal: [0.578664, -0.561139, -0.591838], - }, - Normal { - normal: [0.784869, -0.25102, -0.566542], - }, - Normal { - normal: [0.642681, -0.302257, -0.70399], - }, - Normal { - normal: [0.418589, -0.500042, -0.758117], - }, - Normal { - normal: [0.115806, -0.0791394, -0.990114], - }, - Normal { - normal: [0.232811, 0.0125652, -0.972441], - }, - Normal { - normal: [0.206662, 0.153601, -0.96628], - }, - Normal { - normal: [0.0244996, 0.161443, -0.986578], - }, - Normal { - normal: [0.00338193, 0.211115, -0.977455], - }, - Normal { - normal: [-0.134912, 0.687491, -0.713551], - }, - Normal { - normal: [-0.31954, 0.633073, -0.705062], - }, - Normal { - normal: [-0.603902, 0.461442, -0.649903], - }, - Normal { - normal: [-0.631816, 0.437169, -0.640072], - }, - Normal { - normal: [-0.424306, 0.612706, -0.66675], - }, - Normal { - normal: [-0.4258, 0.904753, 0.0108049], - }, - Normal { - normal: [0.0220472, 0.999756, 0.00162273], - }, - Normal { - normal: [0.999599, 0.0258705, 0.0115556], - }, - Normal { - normal: [0.709585, -0.704553, 0.00967183], - }, - Normal { - normal: [-0.259858, 0.791936, 0.552549], - }, - Normal { - normal: [0.00953916, 0.99972, -0.0216718], - }, - Normal { - normal: [0.410156, 0.332912, -0.849083], - }, - Normal { - normal: [0.541523, -0.54862, -0.637], - }, - Normal { - normal: [0.0463104, 0.455224, 0.889172], - }, - Normal { - normal: [-0.0106883, 0.988794, 0.148901], - }, - Normal { - normal: [-0.0443756, 0.682947, -0.729118], - }, - Normal { - normal: [0.122825, 0.00923214, -0.992385], - }, - Normal { - normal: [0.481839, -0.180439, 0.85748], - }, - Normal { - normal: [0.455272, 0.736752, 0.499925], - }, - Normal { - normal: [-0.220542, 0.907193, -0.358276], - }, - Normal { - normal: [-0.23592, 0.657249, -0.715797], - }, - Normal { - normal: [0.728092, -0.685302, -0.0155853], - }, - Normal { - normal: [0.888739, 0.45811, -0.0166791], - }, - Normal { - normal: [-0.260097, 0.965582, 0.000800195], - }, - Normal { - normal: [-0.371612, 0.928378, -0.00441745], - }, - Normal { - normal: [0.480166, -0.17836, -0.858853], - }, - Normal { - normal: [0.488103, 0.716801, -0.497947], - }, - Normal { - normal: [-0.222004, 0.905399, 0.361893], - }, - Normal { - normal: [-0.235405, 0.66318, 0.710477], - }, - Normal { - normal: [0.0587203, 0.437704, -0.8972], - }, - Normal { - normal: [0.00132612, 0.986459, -0.164003], - }, - Normal { - normal: [-0.0441901, 0.681677, 0.730317], - }, - Normal { - normal: [0.138801, -0.0341896, 0.98973], - }, - Normal { - normal: [-0.25889, 0.797206, -0.54538], - }, - Normal { - normal: [0.0122703, 0.999739, 0.0192865], - }, - Normal { - normal: [0.39863, 0.35489, 0.845663], - }, - Normal { - normal: [0.537564, -0.5814, 0.610737], - }, - Normal { - normal: [-0.0, 1.0, 0.0], - }, - Normal { - normal: [0.82454, 0.565804, 0.0], - }, - Normal { - normal: [0.917701, -0.397272, 0.0], - }, - Normal { - normal: [0.935269, -0.353939, 0.000112842], - }, - Normal { - normal: [0.780712, 0.624891, 0.0], - }, - Normal { - normal: [0.762641, 0.565035, 0.314825], - }, - Normal { - normal: [0.847982, -0.397998, 0.350034], - }, - Normal { - normal: [0.864141, -0.355261, 0.356441], - }, - Normal { - normal: [0.720991, 0.625625, 0.297933], - }, - Normal { - normal: [0.583357, 0.565165, 0.583338], - }, - Normal { - normal: [0.648485, -0.398726, 0.648448], - }, - Normal { - normal: [0.660872, -0.355894, 0.660748], - }, - Normal { - normal: [0.551862, 0.62529, 0.55178], - }, - Normal { - normal: [0.314824, 0.565051, 0.762629], - }, - Normal { - normal: [0.350045, -0.397976, 0.847988], - }, - Normal { - normal: [0.356474, -0.3552, 0.864153], - }, - Normal { - normal: [0.297983, 0.625515, 0.721067], - }, - Normal { - normal: [-0.0, 0.565804, 0.82454], - }, - Normal { - normal: [-0.0, -0.397272, 0.917701], - }, - Normal { - normal: [-0.000112839, -0.353939, 0.935269], - }, - Normal { - normal: [-0.0, 0.624891, 0.780712], - }, - Normal { - normal: [-0.314825, 0.565035, 0.762641], - }, - Normal { - normal: [-0.350034, -0.397998, 0.847982], - }, - Normal { - normal: [-0.356441, -0.355261, 0.864141], - }, - Normal { - normal: [-0.297933, 0.625625, 0.720991], - }, - Normal { - normal: [-0.583338, 0.565165, 0.583357], - }, - Normal { - normal: [-0.648448, -0.398726, 0.648485], - }, - Normal { - normal: [-0.660748, -0.355894, 0.660872], - }, - Normal { - normal: [-0.55178, 0.62529, 0.551862], - }, - Normal { - normal: [-0.762629, 0.565051, 0.314824], - }, - Normal { - normal: [-0.847988, -0.397976, 0.350045], - }, - Normal { - normal: [-0.864153, -0.3552, 0.356474], - }, - Normal { - normal: [-0.721067, 0.625515, 0.297983], - }, - Normal { - normal: [-0.82454, 0.565804, -0.0], - }, - Normal { - normal: [-0.917701, -0.397272, -0.0], - }, - Normal { - normal: [-0.935269, -0.353939, -0.000112839], - }, - Normal { - normal: [-0.780712, 0.624891, -0.0], - }, - Normal { - normal: [-0.76264, 0.565035, -0.314825], - }, - Normal { - normal: [-0.847982, -0.397998, -0.350034], - }, - Normal { - normal: [-0.864141, -0.355261, -0.356441], - }, - Normal { - normal: [-0.720991, 0.625625, -0.297933], - }, - Normal { - normal: [-0.583357, 0.565165, -0.583338], - }, - Normal { - normal: [-0.648485, -0.398726, -0.648448], - }, - Normal { - normal: [-0.660872, -0.355894, -0.660748], - }, - Normal { - normal: [-0.551862, 0.62529, -0.55178], - }, - Normal { - normal: [-0.314824, 0.565051, -0.762629], - }, - Normal { - normal: [-0.350045, -0.397976, -0.847988], - }, - Normal { - normal: [-0.356474, -0.3552, -0.864153], - }, - Normal { - normal: [-0.297983, 0.625515, -0.721067], - }, - Normal { - normal: [0.0, 0.565804, -0.82454], - }, - Normal { - normal: [0.0, -0.397272, -0.917701], - }, - Normal { - normal: [0.000112839, -0.353939, -0.935269], - }, - Normal { - normal: [0.0, 0.624891, -0.780712], - }, - Normal { - normal: [0.314825, 0.565035, -0.762641], - }, - Normal { - normal: [0.350034, -0.397998, -0.847982], - }, - Normal { - normal: [0.356441, -0.355261, -0.864141], - }, - Normal { - normal: [0.297933, 0.625625, -0.720991], - }, - Normal { - normal: [0.583338, 0.565165, -0.583357], - }, - Normal { - normal: [0.648448, -0.398726, -0.648485], - }, - Normal { - normal: [0.660748, -0.355894, -0.660872], - }, - Normal { - normal: [0.55178, 0.62529, -0.551862], - }, - Normal { - normal: [0.762629, 0.565051, -0.314824], - }, - Normal { - normal: [0.847988, -0.397976, -0.350045], - }, - Normal { - normal: [0.864153, -0.3552, -0.356474], - }, - Normal { - normal: [0.721067, 0.625515, -0.297983], - }, - Normal { - normal: [0.236584, 0.971611, 0.0], - }, - Normal { - normal: [0.173084, 0.984907, -0.0], - }, - Normal { - normal: [0.379703, 0.925108, 0.0], - }, - Normal { - normal: [0.526673, 0.850068, 0.0], - }, - Normal { - normal: [0.217978, 0.971775, 0.0902162], - }, - Normal { - normal: [0.15959, 0.984977, 0.0659615], - }, - Normal { - normal: [0.350498, 0.925312, 0.14474], - }, - Normal { - normal: [0.48559, 0.850653, 0.201474], - }, - Normal { - normal: [0.166631, 0.971838, 0.166631], - }, - Normal { - normal: [0.121908, 0.985026, 0.121908], - }, - Normal { - normal: [0.267668, 0.925585, 0.267668], - }, - Normal { - normal: [0.371315, 0.851029, 0.371315], - }, - Normal { - normal: [0.0902162, 0.971775, 0.217978], - }, - Normal { - normal: [0.0659615, 0.984977, 0.15959], - }, - Normal { - normal: [0.14474, 0.925312, 0.350498], - }, - Normal { - normal: [0.201474, 0.850653, 0.48559], - }, - Normal { - normal: [-0.0, 0.971611, 0.236584], - }, - Normal { - normal: [0.0, 0.984907, 0.173084], - }, - Normal { - normal: [0.0, 0.925108, 0.379703], - }, - Normal { - normal: [0.0, 0.850068, 0.526673], - }, - Normal { - normal: [-0.0902162, 0.971775, 0.217978], - }, - Normal { - normal: [-0.0659615, 0.984977, 0.15959], - }, - Normal { - normal: [-0.14474, 0.925312, 0.350498], - }, - Normal { - normal: [-0.201474, 0.850653, 0.48559], - }, - Normal { - normal: [-0.166631, 0.971838, 0.166631], - }, - Normal { - normal: [-0.121908, 0.985026, 0.121908], - }, - Normal { - normal: [-0.267668, 0.925585, 0.267668], - }, - Normal { - normal: [-0.371315, 0.851029, 0.371315], - }, - Normal { - normal: [-0.217978, 0.971775, 0.0902162], - }, - Normal { - normal: [-0.15959, 0.984977, 0.0659615], - }, - Normal { - normal: [-0.350498, 0.925312, 0.14474], - }, - Normal { - normal: [-0.48559, 0.850653, 0.201474], - }, - Normal { - normal: [-0.236583, 0.971611, -0.0], - }, - Normal { - normal: [-0.173084, 0.984907, 0.0], - }, - Normal { - normal: [-0.379703, 0.925108, -0.0], - }, - Normal { - normal: [-0.526673, 0.850068, 0.0], - }, - Normal { - normal: [-0.217978, 0.971775, -0.0902162], - }, - Normal { - normal: [-0.15959, 0.984977, -0.0659615], - }, - Normal { - normal: [-0.350498, 0.925312, -0.14474], - }, - Normal { - normal: [-0.48559, 0.850653, -0.201474], - }, - Normal { - normal: [-0.166631, 0.971838, -0.166631], - }, - Normal { - normal: [-0.121908, 0.985026, -0.121908], - }, - Normal { - normal: [-0.267668, 0.925585, -0.267668], - }, - Normal { - normal: [-0.371315, 0.851029, -0.371315], - }, - Normal { - normal: [-0.0902162, 0.971775, -0.217978], - }, - Normal { - normal: [-0.0659615, 0.984977, -0.15959], - }, - Normal { - normal: [-0.14474, 0.925312, -0.350498], - }, - Normal { - normal: [-0.201474, 0.850653, -0.485589], - }, - Normal { - normal: [0.0, 0.971611, -0.236584], - }, - Normal { - normal: [-0.0, 0.984907, -0.173084], - }, - Normal { - normal: [-0.0, 0.925108, -0.379703], - }, - Normal { - normal: [-0.0, 0.850068, -0.526673], - }, - Normal { - normal: [0.0902162, 0.971775, -0.217978], - }, - Normal { - normal: [0.0659615, 0.984977, -0.15959], - }, - Normal { - normal: [0.14474, 0.925312, -0.350498], - }, - Normal { - normal: [0.201474, 0.850653, -0.48559], - }, - Normal { - normal: [0.166631, 0.971838, -0.166631], - }, - Normal { - normal: [0.121908, 0.985026, -0.121908], - }, - Normal { - normal: [0.267668, 0.925585, -0.267668], - }, - Normal { - normal: [0.371315, 0.851029, -0.371315], - }, - Normal { - normal: [0.217978, 0.971775, -0.0902162], - }, - Normal { - normal: [0.15959, 0.984977, -0.0659615], - }, - Normal { - normal: [0.350498, 0.925312, -0.14474], - }, - Normal { - normal: [0.48559, 0.850653, -0.201474], - }, -]; - -pub const INDICES: [u16; 3072] = [ - 7, 6, 1, 1, 2, 7, 8, 7, 2, 2, 3, 8, 9, 8, 3, 3, 4, 9, 10, 9, 4, 4, 5, 10, 12, 11, 6, 6, 7, 12, - 13, 12, 7, 7, 8, 13, 14, 13, 8, 8, 9, 14, 15, 14, 9, 9, 10, 15, 17, 16, 11, 11, 12, 17, 18, 17, - 12, 12, 13, 18, 19, 18, 13, 13, 14, 19, 20, 19, 14, 14, 15, 20, 22, 21, 16, 16, 17, 22, 23, 22, - 17, 17, 18, 23, 24, 23, 18, 18, 19, 24, 25, 24, 19, 19, 20, 25, 27, 26, 21, 21, 22, 27, 28, 27, - 22, 22, 23, 28, 29, 28, 23, 23, 24, 29, 30, 29, 24, 24, 25, 30, 32, 31, 26, 26, 27, 32, 33, 32, - 27, 27, 28, 33, 34, 33, 28, 28, 29, 34, 35, 34, 29, 29, 30, 35, 37, 36, 31, 31, 32, 37, 38, 37, - 32, 32, 33, 38, 39, 38, 33, 33, 34, 39, 40, 39, 34, 34, 35, 40, 42, 41, 36, 36, 37, 42, 43, 42, - 37, 37, 38, 43, 44, 43, 38, 38, 39, 44, 45, 44, 39, 39, 40, 45, 47, 46, 41, 41, 42, 47, 48, 47, - 42, 42, 43, 48, 49, 48, 43, 43, 44, 49, 50, 49, 44, 44, 45, 50, 52, 51, 46, 46, 47, 52, 53, 52, - 47, 47, 48, 53, 54, 53, 48, 48, 49, 54, 55, 54, 49, 49, 50, 55, 57, 56, 51, 51, 52, 57, 58, 57, - 52, 52, 53, 58, 59, 58, 53, 53, 54, 59, 60, 59, 54, 54, 55, 60, 62, 61, 56, 56, 57, 62, 63, 62, - 57, 57, 58, 63, 64, 63, 58, 58, 59, 64, 65, 64, 59, 59, 60, 65, 67, 66, 61, 61, 62, 67, 68, 67, - 62, 62, 63, 68, 69, 68, 63, 63, 64, 69, 70, 69, 64, 64, 65, 70, 72, 71, 66, 66, 67, 72, 73, 72, - 67, 67, 68, 73, 74, 73, 68, 68, 69, 74, 75, 74, 69, 69, 70, 75, 77, 76, 71, 71, 72, 77, 78, 77, - 72, 72, 73, 78, 79, 78, 73, 73, 74, 79, 80, 79, 74, 74, 75, 80, 2, 1, 76, 76, 77, 2, 3, 2, 77, - 77, 78, 3, 4, 3, 78, 78, 79, 4, 5, 4, 79, 79, 80, 5, 85, 10, 5, 5, 81, 85, 86, 85, 81, 81, 82, - 86, 87, 86, 82, 82, 83, 87, 88, 87, 83, 83, 84, 88, 89, 15, 10, 10, 85, 89, 90, 89, 85, 85, 86, - 90, 91, 90, 86, 86, 87, 91, 92, 91, 87, 87, 88, 92, 93, 20, 15, 15, 89, 93, 94, 93, 89, 89, 90, - 94, 95, 94, 90, 90, 91, 95, 96, 95, 91, 91, 92, 96, 97, 25, 20, 20, 93, 97, 98, 97, 93, 93, 94, - 98, 99, 98, 94, 94, 95, 99, 100, 99, 95, 95, 96, 100, 101, 30, 25, 25, 97, 101, 102, 101, 97, - 97, 98, 102, 103, 102, 98, 98, 99, 103, 104, 103, 99, 99, 100, 104, 105, 35, 30, 30, 101, 105, - 106, 105, 101, 101, 102, 106, 107, 106, 102, 102, 103, 107, 108, 107, 103, 103, 104, 108, 109, - 40, 35, 35, 105, 109, 110, 109, 105, 105, 106, 110, 111, 110, 106, 106, 107, 111, 112, 111, - 107, 107, 108, 112, 113, 45, 40, 40, 109, 113, 114, 113, 109, 109, 110, 114, 115, 114, 110, - 110, 111, 115, 116, 115, 111, 111, 112, 116, 117, 50, 45, 45, 113, 117, 118, 117, 113, 113, - 114, 118, 119, 118, 114, 114, 115, 119, 120, 119, 115, 115, 116, 120, 121, 55, 50, 50, 117, - 121, 122, 121, 117, 117, 118, 122, 123, 122, 118, 118, 119, 123, 124, 123, 119, 119, 120, 124, - 125, 60, 55, 55, 121, 125, 126, 125, 121, 121, 122, 126, 127, 126, 122, 122, 123, 127, 128, - 127, 123, 123, 124, 128, 129, 65, 60, 60, 125, 129, 130, 129, 125, 125, 126, 130, 131, 130, - 126, 126, 127, 131, 132, 131, 127, 127, 128, 132, 133, 70, 65, 65, 129, 133, 134, 133, 129, - 129, 130, 134, 135, 134, 130, 130, 131, 135, 136, 135, 131, 131, 132, 136, 137, 75, 70, 70, - 133, 137, 138, 137, 133, 133, 134, 138, 139, 138, 134, 134, 135, 139, 140, 139, 135, 135, 136, - 140, 141, 80, 75, 75, 137, 141, 142, 141, 137, 137, 138, 142, 143, 142, 138, 138, 139, 143, - 144, 143, 139, 139, 140, 144, 81, 5, 80, 80, 141, 81, 82, 81, 141, 141, 142, 82, 83, 82, 142, - 142, 143, 83, 84, 83, 143, 143, 144, 84, 149, 88, 84, 84, 145, 149, 150, 149, 145, 145, 146, - 150, 151, 150, 146, 146, 147, 151, 152, 151, 147, 147, 148, 152, 153, 92, 88, 88, 149, 153, - 154, 153, 149, 149, 150, 154, 155, 154, 150, 150, 151, 155, 156, 155, 151, 151, 152, 156, 157, - 96, 92, 92, 153, 157, 158, 157, 153, 153, 154, 158, 159, 158, 154, 154, 155, 159, 160, 159, - 155, 155, 156, 160, 161, 100, 96, 96, 157, 161, 162, 161, 157, 157, 158, 162, 163, 162, 158, - 158, 159, 163, 164, 163, 159, 159, 160, 164, 165, 104, 100, 100, 161, 165, 166, 165, 161, 161, - 162, 166, 167, 166, 162, 162, 163, 167, 168, 167, 163, 163, 164, 168, 169, 108, 104, 104, 165, - 169, 170, 169, 165, 165, 166, 170, 171, 170, 166, 166, 167, 171, 172, 171, 167, 167, 168, 172, - 173, 112, 108, 108, 169, 173, 174, 173, 169, 169, 170, 174, 175, 174, 170, 170, 171, 175, 176, - 175, 171, 171, 172, 176, 177, 116, 112, 112, 173, 177, 178, 177, 173, 173, 174, 178, 179, 178, - 174, 174, 175, 179, 180, 179, 175, 175, 176, 180, 181, 120, 116, 116, 177, 181, 182, 181, 177, - 177, 178, 182, 183, 182, 178, 178, 179, 183, 184, 183, 179, 179, 180, 184, 185, 124, 120, 120, - 181, 185, 186, 185, 181, 181, 182, 186, 187, 186, 182, 182, 183, 187, 188, 187, 183, 183, 184, - 188, 189, 128, 124, 124, 185, 189, 190, 189, 185, 185, 186, 190, 191, 190, 186, 186, 187, 191, - 192, 191, 187, 187, 188, 192, 193, 132, 128, 128, 189, 193, 194, 193, 189, 189, 190, 194, 195, - 194, 190, 190, 191, 195, 196, 195, 191, 191, 192, 196, 197, 136, 132, 132, 193, 197, 198, 197, - 193, 193, 194, 198, 199, 198, 194, 194, 195, 199, 200, 199, 195, 195, 196, 200, 201, 140, 136, - 136, 197, 201, 202, 201, 197, 197, 198, 202, 203, 202, 198, 198, 199, 203, 204, 203, 199, 199, - 200, 204, 205, 144, 140, 140, 201, 205, 206, 205, 201, 201, 202, 206, 207, 206, 202, 202, 203, - 207, 208, 207, 203, 203, 204, 208, 145, 84, 144, 144, 205, 145, 146, 145, 205, 205, 206, 146, - 147, 146, 206, 206, 207, 147, 148, 147, 207, 207, 208, 148, 213, 152, 148, 148, 209, 213, 214, - 213, 209, 209, 210, 214, 215, 214, 210, 210, 211, 215, 212, 215, 211, 211, 212, 212, 216, 156, - 152, 152, 213, 216, 217, 216, 213, 213, 214, 217, 218, 217, 214, 214, 215, 218, 212, 218, 215, - 215, 212, 212, 219, 160, 156, 156, 216, 219, 220, 219, 216, 216, 217, 220, 221, 220, 217, 217, - 218, 221, 212, 221, 218, 218, 212, 212, 222, 164, 160, 160, 219, 222, 223, 222, 219, 219, 220, - 223, 224, 223, 220, 220, 221, 224, 212, 224, 221, 221, 212, 212, 225, 168, 164, 164, 222, 225, - 226, 225, 222, 222, 223, 226, 227, 226, 223, 223, 224, 227, 212, 227, 224, 224, 212, 212, 228, - 172, 168, 168, 225, 228, 229, 228, 225, 225, 226, 229, 230, 229, 226, 226, 227, 230, 212, 230, - 227, 227, 212, 212, 231, 176, 172, 172, 228, 231, 232, 231, 228, 228, 229, 232, 233, 232, 229, - 229, 230, 233, 212, 233, 230, 230, 212, 212, 234, 180, 176, 176, 231, 234, 235, 234, 231, 231, - 232, 235, 236, 235, 232, 232, 233, 236, 212, 236, 233, 233, 212, 212, 237, 184, 180, 180, 234, - 237, 238, 237, 234, 234, 235, 238, 239, 238, 235, 235, 236, 239, 212, 239, 236, 236, 212, 212, - 240, 188, 184, 184, 237, 240, 241, 240, 237, 237, 238, 241, 242, 241, 238, 238, 239, 242, 212, - 242, 239, 239, 212, 212, 243, 192, 188, 188, 240, 243, 244, 243, 240, 240, 241, 244, 245, 244, - 241, 241, 242, 245, 212, 245, 242, 242, 212, 212, 246, 196, 192, 192, 243, 246, 247, 246, 243, - 243, 244, 247, 248, 247, 244, 244, 245, 248, 212, 248, 245, 245, 212, 212, 249, 200, 196, 196, - 246, 249, 250, 249, 246, 246, 247, 250, 251, 250, 247, 247, 248, 251, 212, 251, 248, 248, 212, - 212, 252, 204, 200, 200, 249, 252, 253, 252, 249, 249, 250, 253, 254, 253, 250, 250, 251, 254, - 212, 254, 251, 251, 212, 212, 255, 208, 204, 204, 252, 255, 256, 255, 252, 252, 253, 256, 257, - 256, 253, 253, 254, 257, 212, 257, 254, 254, 212, 212, 209, 148, 208, 208, 255, 209, 210, 209, - 255, 255, 256, 210, 211, 210, 256, 256, 257, 211, 212, 211, 257, 257, 212, 212, 264, 263, 258, - 258, 259, 264, 265, 264, 259, 259, 260, 265, 266, 265, 260, 260, 261, 266, 267, 266, 261, 261, - 262, 267, 269, 268, 263, 263, 264, 269, 270, 269, 264, 264, 265, 270, 271, 270, 265, 265, 266, - 271, 272, 271, 266, 266, 267, 272, 274, 273, 268, 268, 269, 274, 275, 274, 269, 269, 270, 275, - 276, 275, 270, 270, 271, 276, 277, 276, 271, 271, 272, 277, 279, 278, 273, 273, 274, 279, 280, - 279, 274, 274, 275, 280, 281, 280, 275, 275, 276, 281, 282, 281, 276, 276, 277, 282, 284, 283, - 278, 278, 279, 284, 285, 284, 279, 279, 280, 285, 286, 285, 280, 280, 281, 286, 287, 286, 281, - 281, 282, 287, 289, 288, 283, 283, 284, 289, 290, 289, 284, 284, 285, 290, 291, 290, 285, 285, - 286, 291, 292, 291, 286, 286, 287, 292, 294, 293, 288, 288, 289, 294, 295, 294, 289, 289, 290, - 295, 296, 295, 290, 290, 291, 296, 297, 296, 291, 291, 292, 297, 259, 258, 293, 293, 294, 259, - 260, 259, 294, 294, 295, 260, 261, 260, 295, 295, 296, 261, 262, 261, 296, 296, 297, 262, 302, - 267, 262, 262, 298, 302, 303, 302, 298, 298, 299, 303, 304, 303, 299, 299, 300, 304, 305, 304, - 300, 300, 301, 305, 306, 272, 267, 267, 302, 306, 307, 306, 302, 302, 303, 307, 308, 307, 303, - 303, 304, 308, 309, 308, 304, 304, 305, 309, 310, 277, 272, 272, 306, 310, 311, 310, 306, 306, - 307, 311, 312, 311, 307, 307, 308, 312, 313, 312, 308, 308, 309, 313, 314, 282, 277, 277, 310, - 314, 315, 314, 310, 310, 311, 315, 316, 315, 311, 311, 312, 316, 317, 316, 312, 312, 313, 317, - 318, 287, 282, 282, 314, 318, 319, 318, 314, 314, 315, 319, 320, 319, 315, 315, 316, 320, 321, - 320, 316, 316, 317, 321, 322, 292, 287, 287, 318, 322, 323, 322, 318, 318, 319, 323, 324, 323, - 319, 319, 320, 324, 325, 324, 320, 320, 321, 325, 326, 297, 292, 292, 322, 326, 327, 326, 322, - 322, 323, 327, 328, 327, 323, 323, 324, 328, 329, 328, 324, 324, 325, 329, 298, 262, 297, 297, - 326, 298, 299, 298, 326, 326, 327, 299, 300, 299, 327, 327, 328, 300, 301, 300, 328, 328, 329, - 301, 336, 335, 330, 330, 331, 336, 337, 336, 331, 331, 332, 337, 338, 337, 332, 332, 333, 338, - 339, 338, 333, 333, 334, 339, 341, 340, 335, 335, 336, 341, 342, 341, 336, 336, 337, 342, 343, - 342, 337, 337, 338, 343, 344, 343, 338, 338, 339, 344, 346, 345, 340, 340, 341, 346, 347, 346, - 341, 341, 342, 347, 348, 347, 342, 342, 343, 348, 349, 348, 343, 343, 344, 349, 351, 350, 345, - 345, 346, 351, 352, 351, 346, 346, 347, 352, 353, 352, 347, 347, 348, 353, 354, 353, 348, 348, - 349, 354, 356, 355, 350, 350, 351, 356, 357, 356, 351, 351, 352, 357, 358, 357, 352, 352, 353, - 358, 359, 358, 353, 353, 354, 359, 361, 360, 355, 355, 356, 361, 362, 361, 356, 356, 357, 362, - 363, 362, 357, 357, 358, 363, 364, 363, 358, 358, 359, 364, 366, 365, 360, 360, 361, 366, 367, - 366, 361, 361, 362, 367, 368, 367, 362, 362, 363, 368, 369, 368, 363, 363, 364, 369, 331, 330, - 365, 365, 366, 331, 332, 331, 366, 366, 367, 332, 333, 332, 367, 367, 368, 333, 334, 333, 368, - 368, 369, 334, 374, 339, 334, 334, 370, 374, 375, 374, 370, 370, 371, 375, 376, 375, 371, 371, - 372, 376, 377, 376, 372, 372, 373, 377, 378, 344, 339, 339, 374, 378, 379, 378, 374, 374, 375, - 379, 380, 379, 375, 375, 376, 380, 381, 380, 376, 376, 377, 381, 382, 349, 344, 344, 378, 382, - 383, 382, 378, 378, 379, 383, 384, 383, 379, 379, 380, 384, 385, 384, 380, 380, 381, 385, 386, - 354, 349, 349, 382, 386, 387, 386, 382, 382, 383, 387, 388, 387, 383, 383, 384, 388, 389, 388, - 384, 384, 385, 389, 390, 359, 354, 354, 386, 390, 391, 390, 386, 386, 387, 391, 392, 391, 387, - 387, 388, 392, 393, 392, 388, 388, 389, 393, 394, 364, 359, 359, 390, 394, 395, 394, 390, 390, - 391, 395, 396, 395, 391, 391, 392, 396, 397, 396, 392, 392, 393, 397, 398, 369, 364, 364, 394, - 398, 399, 398, 394, 394, 395, 399, 400, 399, 395, 395, 396, 400, 401, 400, 396, 396, 397, 401, - 370, 334, 369, 369, 398, 370, 371, 370, 398, 398, 399, 371, 372, 371, 399, 399, 400, 372, 373, - 372, 400, 400, 401, 373, 407, 402, 402, 402, 403, 407, 408, 407, 403, 403, 404, 408, 409, 408, - 404, 404, 405, 409, 410, 409, 405, 405, 406, 410, 411, 402, 402, 402, 407, 411, 412, 411, 407, - 407, 408, 412, 413, 412, 408, 408, 409, 413, 414, 413, 409, 409, 410, 414, 415, 402, 402, 402, - 411, 415, 416, 415, 411, 411, 412, 416, 417, 416, 412, 412, 413, 417, 418, 417, 413, 413, 414, - 418, 419, 402, 402, 402, 415, 419, 420, 419, 415, 415, 416, 420, 421, 420, 416, 416, 417, 421, - 422, 421, 417, 417, 418, 422, 423, 402, 402, 402, 419, 423, 424, 423, 419, 419, 420, 424, 425, - 424, 420, 420, 421, 425, 426, 425, 421, 421, 422, 426, 427, 402, 402, 402, 423, 427, 428, 427, - 423, 423, 424, 428, 429, 428, 424, 424, 425, 429, 430, 429, 425, 425, 426, 430, 431, 402, 402, - 402, 427, 431, 432, 431, 427, 427, 428, 432, 433, 432, 428, 428, 429, 433, 434, 433, 429, 429, - 430, 434, 435, 402, 402, 402, 431, 435, 436, 435, 431, 431, 432, 436, 437, 436, 432, 432, 433, - 437, 438, 437, 433, 433, 434, 438, 439, 402, 402, 402, 435, 439, 440, 439, 435, 435, 436, 440, - 441, 440, 436, 436, 437, 441, 442, 441, 437, 437, 438, 442, 443, 402, 402, 402, 439, 443, 444, - 443, 439, 439, 440, 444, 445, 444, 440, 440, 441, 445, 446, 445, 441, 441, 442, 446, 447, 402, - 402, 402, 443, 447, 448, 447, 443, 443, 444, 448, 449, 448, 444, 444, 445, 449, 450, 449, 445, - 445, 446, 450, 451, 402, 402, 402, 447, 451, 452, 451, 447, 447, 448, 452, 453, 452, 448, 448, - 449, 453, 454, 453, 449, 449, 450, 454, 455, 402, 402, 402, 451, 455, 456, 455, 451, 451, 452, - 456, 457, 456, 452, 452, 453, 457, 458, 457, 453, 453, 454, 458, 459, 402, 402, 402, 455, 459, - 460, 459, 455, 455, 456, 460, 461, 460, 456, 456, 457, 461, 462, 461, 457, 457, 458, 462, 463, - 402, 402, 402, 459, 463, 464, 463, 459, 459, 460, 464, 465, 464, 460, 460, 461, 465, 466, 465, - 461, 461, 462, 466, 403, 402, 402, 402, 463, 403, 404, 403, 463, 463, 464, 404, 405, 404, 464, - 464, 465, 405, 406, 405, 465, 465, 466, 406, 471, 410, 406, 406, 467, 471, 472, 471, 467, 467, - 468, 472, 473, 472, 468, 468, 469, 473, 474, 473, 469, 469, 470, 474, 475, 414, 410, 410, 471, - 475, 476, 475, 471, 471, 472, 476, 477, 476, 472, 472, 473, 477, 478, 477, 473, 473, 474, 478, - 479, 418, 414, 414, 475, 479, 480, 479, 475, 475, 476, 480, 481, 480, 476, 476, 477, 481, 482, - 481, 477, 477, 478, 482, 483, 422, 418, 418, 479, 483, 484, 483, 479, 479, 480, 484, 485, 484, - 480, 480, 481, 485, 486, 485, 481, 481, 482, 486, 487, 426, 422, 422, 483, 487, 488, 487, 483, - 483, 484, 488, 489, 488, 484, 484, 485, 489, 490, 489, 485, 485, 486, 490, 491, 430, 426, 426, - 487, 491, 492, 491, 487, 487, 488, 492, 493, 492, 488, 488, 489, 493, 494, 493, 489, 489, 490, - 494, 495, 434, 430, 430, 491, 495, 496, 495, 491, 491, 492, 496, 497, 496, 492, 492, 493, 497, - 498, 497, 493, 493, 494, 498, 499, 438, 434, 434, 495, 499, 500, 499, 495, 495, 496, 500, 501, - 500, 496, 496, 497, 501, 502, 501, 497, 497, 498, 502, 503, 442, 438, 438, 499, 503, 504, 503, - 499, 499, 500, 504, 505, 504, 500, 500, 501, 505, 506, 505, 501, 501, 502, 506, 507, 446, 442, - 442, 503, 507, 508, 507, 503, 503, 504, 508, 509, 508, 504, 504, 505, 509, 510, 509, 505, 505, - 506, 510, 511, 450, 446, 446, 507, 511, 512, 511, 507, 507, 508, 512, 513, 512, 508, 508, 509, - 513, 514, 513, 509, 509, 510, 514, 515, 454, 450, 450, 511, 515, 516, 515, 511, 511, 512, 516, - 517, 516, 512, 512, 513, 517, 518, 517, 513, 513, 514, 518, 519, 458, 454, 454, 515, 519, 520, - 519, 515, 515, 516, 520, 521, 520, 516, 516, 517, 521, 522, 521, 517, 517, 518, 522, 523, 462, - 458, 458, 519, 523, 524, 523, 519, 519, 520, 524, 525, 524, 520, 520, 521, 525, 526, 525, 521, - 521, 522, 526, 527, 466, 462, 462, 523, 527, 528, 527, 523, 523, 524, 528, 529, 528, 524, 524, - 525, 529, 530, 529, 525, 525, 526, 530, 467, 406, 466, 466, 527, 467, 468, 467, 527, 527, 528, - 468, 469, 468, 528, 528, 529, 469, 470, 469, 529, 529, 530, 470u16, -]; diff --git a/src/main.rs b/src/main.rs index 23ade7f..e7a11a9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,599 +1,3 @@ -// Copyright (c) 2016 The vulkano developers -// Licensed under the Apache License, Version 2.0 -// or the MIT -// license , -// at your option. All files in the project carrying such -// notice may not be copied, modified, or distributed except -// according to those terms. - -use cgmath::{Matrix3, Matrix4, Rad, Vector2, Vector3, Rotation, Quaternion, Euler, SquareMatrix}; -use strafe_client::{Normal, Position, INDICES, NORMALS, POSITIONS}; -use std::{sync::Arc, time::Instant}; -use vulkano::{ - buffer::{ - allocator::{SubbufferAllocator, SubbufferAllocatorCreateInfo}, - Buffer, BufferCreateInfo, BufferUsage, - }, - command_buffer::{ - allocator::StandardCommandBufferAllocator, AutoCommandBufferBuilder, CommandBufferUsage, - RenderPassBeginInfo, SubpassContents, - }, - descriptor_set::{ - allocator::StandardDescriptorSetAllocator, PersistentDescriptorSet, WriteDescriptorSet, - }, - device::{ - physical::PhysicalDeviceType, Device, DeviceCreateInfo, DeviceExtensions, DeviceOwned, - QueueCreateInfo, QueueFlags, - }, - format::Format, - image::{view::ImageView, AttachmentImage, ImageAccess, ImageUsage, SwapchainImage}, - instance::{Instance, InstanceCreateInfo}, - memory::allocator::{AllocationCreateInfo, MemoryUsage, StandardMemoryAllocator}, - pipeline::{ - graphics::{ - depth_stencil::DepthStencilState, - input_assembly::InputAssemblyState, - vertex_input::Vertex, - viewport::{Viewport, ViewportState}, - }, - GraphicsPipeline, Pipeline, PipelineBindPoint, - }, - render_pass::{Framebuffer, FramebufferCreateInfo, RenderPass, Subpass}, - shader::ShaderModule, - swapchain::{ - acquire_next_image, AcquireError, Swapchain, SwapchainCreateInfo, SwapchainCreationError, - SwapchainPresentInfo, - }, - sync::{self, FlushError, GpuFuture}, - VulkanLibrary, -}; -use vulkano_win::VkSurfaceBuild; -use winit::{ - event::{ElementState,KeyboardInput,VirtualKeyCode,Event, WindowEvent, DeviceEvent}, - event_loop::{ControlFlow, EventLoop}, - window::{Window, WindowBuilder}, -}; - -const CONTROL_MOVEFORWARD:u32 = 0b00000001; -const CONTROL_MOVEBACK:u32 = 0b00000010; -const CONTROL_MOVERIGHT:u32 = 0b00000100; -const CONTROL_MOVELEFT:u32 = 0b00001000; -const CONTROL_MOVEUP:u32 = 0b00010000; -const CONTROL_MOVEDOWN:u32 = 0b00100000; -//const CONTROL_JUMP:u32 = 0b01000000; -//const CONTROL_ZOOM:u32 = 0b10000000; - -const FORWARD_DIR:Vector3 = Vector3::new(0,0,-1); -const RIGHT_DIR:Vector3 = Vector3::new(1,0,0); -const UP_DIR:Vector3 = Vector3::new(0,-1,0); - -fn get_control_dir(controls: u32) -> Vector3{ - //don't get fancy just do it - let mut control_dir:Vector3 = Vector3::new(0,0,0); - if controls & CONTROL_MOVEFORWARD == CONTROL_MOVEFORWARD { - control_dir+=FORWARD_DIR; - } - if controls & CONTROL_MOVEBACK == CONTROL_MOVEBACK { - control_dir+=-FORWARD_DIR; - } - if controls & CONTROL_MOVELEFT == CONTROL_MOVELEFT { - control_dir+=-RIGHT_DIR; - } - if controls & CONTROL_MOVERIGHT == CONTROL_MOVERIGHT { - control_dir+=RIGHT_DIR; - } - if controls & CONTROL_MOVEUP == CONTROL_MOVEUP { - control_dir+=UP_DIR; - } - if controls & CONTROL_MOVEDOWN == CONTROL_MOVEDOWN { - control_dir+=-UP_DIR; - } - return control_dir.cast().unwrap() -} - fn main() { - // The start of this example is exactly the same as `triangle`. You should read the `triangle` - // example if you haven't done so yet. - - let library = VulkanLibrary::new().unwrap(); - let required_extensions = vulkano_win::required_extensions(&library); - let instance = Instance::new( - library, - InstanceCreateInfo { - enabled_extensions: required_extensions, - enumerate_portability: true, - ..Default::default() - }, - ) - .unwrap(); - - let event_loop = EventLoop::new(); - let surface = WindowBuilder::new() - .build_vk_surface(&event_loop, instance.clone()) - .unwrap(); - - let device_extensions = DeviceExtensions { - khr_swapchain: true, - ..DeviceExtensions::empty() - }; - let (physical_device, queue_family_index) = instance - .enumerate_physical_devices() - .unwrap() - .filter(|p| p.supported_extensions().contains(&device_extensions)) - .filter_map(|p| { - p.queue_family_properties() - .iter() - .enumerate() - .position(|(i, q)| { - q.queue_flags.intersects(QueueFlags::GRAPHICS) - && p.surface_support(i as u32, &surface).unwrap_or(false) - }) - .map(|i| (p, i as u32)) - }) - .min_by_key(|(p, _)| match p.properties().device_type { - PhysicalDeviceType::DiscreteGpu => 0, - PhysicalDeviceType::IntegratedGpu => 1, - PhysicalDeviceType::VirtualGpu => 2, - PhysicalDeviceType::Cpu => 3, - PhysicalDeviceType::Other => 4, - _ => 5, - }) - .unwrap(); - - println!( - "Using device: {} (type: {:?})", - physical_device.properties().device_name, - physical_device.properties().device_type, - ); - - let (device, mut queues) = Device::new( - physical_device, - DeviceCreateInfo { - enabled_extensions: device_extensions, - queue_create_infos: vec![QueueCreateInfo { - queue_family_index, - ..Default::default() - }], - ..Default::default() - }, - ) - .unwrap(); - - let queue = queues.next().unwrap(); - - let (mut swapchain, images) = { - let surface_capabilities = device - .physical_device() - .surface_capabilities(&surface, Default::default()) - .unwrap(); - let image_format = Some( - device - .physical_device() - .surface_formats(&surface, Default::default()) - .unwrap()[0] - .0, - ); - let window = surface.object().unwrap().downcast_ref::().unwrap(); - - Swapchain::new( - device.clone(), - surface.clone(), - SwapchainCreateInfo { - min_image_count: surface_capabilities.min_image_count, - image_format, - image_extent: window.inner_size().into(), - image_usage: ImageUsage::COLOR_ATTACHMENT, - composite_alpha: surface_capabilities - .supported_composite_alpha - .into_iter() - .next() - .unwrap(), - ..Default::default() - }, - ) - .unwrap() - }; - - let memory_allocator = Arc::new(StandardMemoryAllocator::new_default(device.clone())); - - let vertex_buffer = Buffer::from_iter( - &memory_allocator, - BufferCreateInfo { - usage: BufferUsage::VERTEX_BUFFER, - ..Default::default() - }, - AllocationCreateInfo { - usage: MemoryUsage::Upload, - ..Default::default() - }, - POSITIONS, - ) - .unwrap(); - let normals_buffer = Buffer::from_iter( - &memory_allocator, - BufferCreateInfo { - usage: BufferUsage::VERTEX_BUFFER, - ..Default::default() - }, - AllocationCreateInfo { - usage: MemoryUsage::Upload, - ..Default::default() - }, - NORMALS, - ) - .unwrap(); - let index_buffer = Buffer::from_iter( - &memory_allocator, - BufferCreateInfo { - usage: BufferUsage::INDEX_BUFFER, - ..Default::default() - }, - AllocationCreateInfo { - usage: MemoryUsage::Upload, - ..Default::default() - }, - INDICES, - ) - .unwrap(); - - let uniform_buffer = SubbufferAllocator::new( - memory_allocator.clone(), - SubbufferAllocatorCreateInfo { - buffer_usage: BufferUsage::UNIFORM_BUFFER, - ..Default::default() - }, - ); - - let vs = vs::load(device.clone()).unwrap(); - let fs = fs::load(device.clone()).unwrap(); - - let render_pass = vulkano::single_pass_renderpass!( - device.clone(), - attachments: { - color: { - load: Clear, - store: Store, - format: swapchain.image_format(), - samples: 1, - }, - depth: { - load: Clear, - store: DontCare, - format: Format::D16_UNORM, - samples: 1, - }, - }, - pass: { - color: [color], - depth_stencil: {depth}, - }, - ) - .unwrap(); - - let (mut pipeline, mut framebuffers) = - window_size_dependent_setup(&memory_allocator, &vs, &fs, &images, render_pass.clone()); - let mut recreate_swapchain = false; - - let mut previous_frame_end = Some(sync::now(device.clone()).boxed()); - let rotation_start = Instant::now(); - - let descriptor_set_allocator = StandardDescriptorSetAllocator::new(device.clone()); - let command_buffer_allocator = - StandardCommandBufferAllocator::new(device.clone(), Default::default()); - - - let mut time = Instant::now(); - //polution - let mut mouse = Vector2::new(0.0,0.0); - let mut pos = Vector3::new(0.0,0.0,0.0); - let mut controls:u32 = 0; - let fly_speed = 0.05; - event_loop.run(move |event, _, control_flow| { - match event { - Event::WindowEvent { - event: WindowEvent::CloseRequested, - .. - } => { - *control_flow = ControlFlow::Exit; - } - Event::WindowEvent { - event: WindowEvent::Resized(_), - .. - } => { - recreate_swapchain = true; - } - Event::DeviceEvent { - event: - DeviceEvent::MouseMotion { - delta, - }, - .. - } => { - mouse+=Vector2::from(delta); - } - Event::WindowEvent { - event: - WindowEvent::KeyboardInput { - input: - KeyboardInput { - state, - virtual_keycode: Some(keycode), - .. - }, - .. - }, - .. - } => { - match (state,keycode) { - (k,VirtualKeyCode::W) => match k { - ElementState::Pressed => controls|=CONTROL_MOVEFORWARD, - ElementState::Released => controls&=!CONTROL_MOVEFORWARD, - } - (k,VirtualKeyCode::A) => match k { - ElementState::Pressed => controls|=CONTROL_MOVELEFT, - ElementState::Released => controls&=!CONTROL_MOVELEFT, - } - (k,VirtualKeyCode::S) => match k { - ElementState::Pressed => controls|=CONTROL_MOVEBACK, - ElementState::Released => controls&=!CONTROL_MOVEBACK, - } - (k,VirtualKeyCode::D) => match k { - ElementState::Pressed => controls|=CONTROL_MOVERIGHT, - ElementState::Released => controls&=!CONTROL_MOVERIGHT, - } - (k,VirtualKeyCode::E) => match k { - ElementState::Pressed => controls|=CONTROL_MOVEUP, - ElementState::Released => controls&=!CONTROL_MOVEUP, - } - (k,VirtualKeyCode::Q) => match k { - ElementState::Pressed => controls|=CONTROL_MOVEDOWN, - ElementState::Released => controls&=!CONTROL_MOVEDOWN, - } - (k,VirtualKeyCode::Tab) => match k { - ElementState::Pressed => { - let window = surface.object().unwrap().downcast_ref::().unwrap(); - let garb = window.set_cursor_grab(winit::window::CursorGrabMode::None); - match garb { - Err(err) => println!("set_cursor_grab error: {}",err), - _ => (), - } - } - ElementState::Released => { - let window = surface.object().unwrap().downcast_ref::().unwrap(); - let garb = window.set_cursor_grab(winit::window::CursorGrabMode::Locked); - match garb { - Err(err) => println!("set_cursor_grab error: {}",err), - _ => (), - } - } - } - _ => (), - } - } - _ => (), - } - let time_now = Instant::now(); - let dt = (time_now-time).as_secs_f64(); - if dt > 1.0 / 120.0 { - time = time_now; - let angles = Euler{x:Rad(mouse.y/1024.),y:Rad(mouse.x/-1024.),z:Rad(0.0)}; - let orientation=Quaternion::from(angles); - pos += orientation.rotate_vector(get_control_dir(controls))*fly_speed; - - let window = surface.object().unwrap().downcast_ref::().unwrap(); - let dimensions = window.inner_size(); - if dimensions.width == 0 || dimensions.height == 0 { - return; - } - - previous_frame_end.as_mut().unwrap().cleanup_finished(); - - if recreate_swapchain { - let (new_swapchain, new_images) = - match swapchain.recreate(SwapchainCreateInfo { - image_extent: dimensions.into(), - ..swapchain.create_info() - }) { - Ok(r) => r, - Err(SwapchainCreationError::ImageExtentNotSupported { .. }) => return, - Err(e) => panic!("failed to recreate swapchain: {e}"), - }; - - swapchain = new_swapchain; - let (new_pipeline, new_framebuffers) = window_size_dependent_setup( - &memory_allocator, - &vs, - &fs, - &new_images, - render_pass.clone(), - ); - pipeline = new_pipeline; - framebuffers = new_framebuffers; - recreate_swapchain = false; - } - - let uniform_buffer_subbuffer = { - let elapsed = rotation_start.elapsed(); - let rotation = - elapsed.as_secs() as f64 + elapsed.subsec_nanos() as f64 / 1_000_000_000.0; - let rotation = Matrix3::from_angle_y(Rad(rotation as f32)); - - // note: this teapot was meant for OpenGL where the origin is at the lower left - // instead the origin is at the upper left in Vulkan, so we reverse the Y axis - let aspect_ratio = - swapchain.image_extent()[0] as f32 / swapchain.image_extent()[1] as f32; - let proj = cgmath::perspective( - Rad(std::f32::consts::FRAC_PI_2), - aspect_ratio, - 0.01, - 100.0, - ); - let view = Matrix4::from_translation(pos)*Matrix4::from(angles); - let scale = Matrix4::from_scale(-0.01); -// Matrix4::from_translation(Vector3 { x: 0.0, y: 0.0, z: 0.0 }) * - let uniform_data = vs::Data { - world: (Matrix4::from(rotation) * scale).into(), - view: view.invert().unwrap().cast::().unwrap().into(), - proj: proj.into(), - }; - - let subbuffer = uniform_buffer.allocate_sized().unwrap(); - *subbuffer.write().unwrap() = uniform_data; - - subbuffer - }; - - let layout = pipeline.layout().set_layouts().get(0).unwrap(); - let set = PersistentDescriptorSet::new( - &descriptor_set_allocator, - layout.clone(), - [WriteDescriptorSet::buffer(0, uniform_buffer_subbuffer)], - ) - .unwrap(); - - let (image_index, suboptimal, acquire_future) = - match acquire_next_image(swapchain.clone(), None) { - Ok(r) => r, - Err(AcquireError::OutOfDate) => { - recreate_swapchain = true; - return; - } - Err(e) => panic!("failed to acquire next image: {e}"), - }; - - if suboptimal { - recreate_swapchain = true; - } - - let mut builder = AutoCommandBufferBuilder::primary( - &command_buffer_allocator, - queue.queue_family_index(), - CommandBufferUsage::OneTimeSubmit, - ) - .unwrap(); - builder - .begin_render_pass( - RenderPassBeginInfo { - clear_values: vec![ - Some([0.0, 0.0, 1.0, 1.0].into()), - Some(1f32.into()), - ], - ..RenderPassBeginInfo::framebuffer( - framebuffers[image_index as usize].clone(), - ) - }, - SubpassContents::Inline, - ) - .unwrap() - .bind_pipeline_graphics(pipeline.clone()) - .bind_descriptor_sets( - PipelineBindPoint::Graphics, - pipeline.layout().clone(), - 0, - set, - ) - .bind_vertex_buffers(0, (vertex_buffer.clone(), normals_buffer.clone())) - .bind_index_buffer(index_buffer.clone()) - .draw_indexed(index_buffer.len() as u32, 1, 0, 0, 0) - .unwrap() - .end_render_pass() - .unwrap(); - let command_buffer = builder.build().unwrap(); - - let future = previous_frame_end - .take() - .unwrap() - .join(acquire_future) - .then_execute(queue.clone(), command_buffer) - .unwrap() - .then_swapchain_present( - queue.clone(), - SwapchainPresentInfo::swapchain_image_index(swapchain.clone(), image_index), - ) - .then_signal_fence_and_flush(); - - match future { - Ok(future) => { - previous_frame_end = Some(future.boxed()); - } - Err(FlushError::OutOfDate) => { - recreate_swapchain = true; - previous_frame_end = Some(sync::now(device.clone()).boxed()); - } - Err(e) => { - println!("failed to flush future: {e}"); - previous_frame_end = Some(sync::now(device.clone()).boxed()); - } - } - } - }); -} - -/// This function is called once during initialization, then again whenever the window is resized. -fn window_size_dependent_setup( - memory_allocator: &StandardMemoryAllocator, - vs: &ShaderModule, - fs: &ShaderModule, - images: &[Arc], - render_pass: Arc, -) -> (Arc, Vec>) { - let dimensions = images[0].dimensions().width_height(); - - let depth_buffer = ImageView::new_default( - AttachmentImage::transient(memory_allocator, dimensions, Format::D16_UNORM).unwrap(), - ) - .unwrap(); - - let framebuffers = images - .iter() - .map(|image| { - let view = ImageView::new_default(image.clone()).unwrap(); - Framebuffer::new( - render_pass.clone(), - FramebufferCreateInfo { - attachments: vec![view, depth_buffer.clone()], - ..Default::default() - }, - ) - .unwrap() - }) - .collect::>(); - - // In the triangle example we use a dynamic viewport, as its a simple example. However in the - // teapot example, we recreate the pipelines with a hardcoded viewport instead. This allows the - // driver to optimize things, at the cost of slower window resizes. - // https://computergraphics.stackexchange.com/questions/5742/vulkan-best-way-of-updating-pipeline-viewport - let pipeline = GraphicsPipeline::start() - .vertex_input_state([Position::per_vertex(), Normal::per_vertex()]) - .vertex_shader(vs.entry_point("main").unwrap(), ()) - .input_assembly_state(InputAssemblyState::new()) - .viewport_state(ViewportState::viewport_fixed_scissor_irrelevant([ - Viewport { - origin: [0.0, 0.0], - dimensions: [dimensions[0] as f32, dimensions[1] as f32], - depth_range: 0.0..1.0, - }, - ])) - .fragment_shader(fs.entry_point("main").unwrap(), ()) - .depth_stencil_state(DepthStencilState::simple_depth_test()) - .render_pass(Subpass::from(render_pass, 0).unwrap()) - .build(memory_allocator.device().clone()) - .unwrap(); - - (pipeline, framebuffers) -} - -mod vs { - vulkano_shaders::shader! { - ty: "vertex", - path: "src/vert.glsl", - } -} - -mod fs { - vulkano_shaders::shader! { - ty: "fragment", - path: "src/frag.glsl", - } + println!("Hello, world!"); } diff --git a/src/vert.glsl b/src/vert.glsl deleted file mode 100644 index d2af02c..0000000 --- a/src/vert.glsl +++ /dev/null @@ -1,18 +0,0 @@ -#version 450 - -layout(location = 0) in vec3 position; -layout(location = 1) in vec3 normal; - -layout(location = 0) out vec3 v_normal; - -layout(set = 0, binding = 0) uniform Data { - mat4 world; - mat4 view; - mat4 proj; -} uniforms; - -void main() { - mat4 worldview = uniforms.view * uniforms.world; - v_normal = transpose(inverse(mat3(worldview))) * normal; - gl_Position = uniforms.proj * worldview * vec4(position, 1.0); -}