From c40e29bca38660781488dd5fee5ef7b950253d80 Mon Sep 17 00:00:00 2001 From: Patrik Buhring Date: Fri, 28 Aug 2020 19:52:06 -0400 Subject: [PATCH] Update icosphere dependency and add a limit to subdivisions. (#379) --- crates/bevy_render/Cargo.toml | 2 +- crates/bevy_render/src/mesh/mesh.rs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/bevy_render/Cargo.toml b/crates/bevy_render/Cargo.toml index 5d7c1324ef8bd..75cc5a9b96321 100644 --- a/crates/bevy_render/Cargo.toml +++ b/crates/bevy_render/Cargo.toml @@ -38,7 +38,7 @@ once_cell = "1.4.0" downcast-rs = "1.1.1" thiserror = "1.0" anyhow = "1.0" -hexasphere = "0.1.5" +hexasphere = "1.0.0" parking_lot = "0.10" [features] diff --git a/crates/bevy_render/src/mesh/mesh.rs b/crates/bevy_render/src/mesh/mesh.rs index 585b0e9e01b1a..73ff1a55f310d 100644 --- a/crates/bevy_render/src/mesh/mesh.rs +++ b/crates/bevy_render/src/mesh/mesh.rs @@ -411,6 +411,15 @@ pub mod shape { impl From for Mesh { fn from(sphere: Icosphere) -> Self { + if sphere.subdivisions >= 80 { + let temp_sphere = Hexasphere::new(sphere.subdivisions, |_| ()); + + panic!( + "Cannot create an icosphere of {} subdivisions due to there being too many vertices being generated: {} (Limited to 65535 vertices or 79 subdivisions)", + sphere.subdivisions, + temp_sphere.raw_points().len() + ); + } let hexasphere = Hexasphere::new(sphere.subdivisions, |point| { let inclination = point.z().acos(); let azumith = point.y().atan2(point.x());