From db2d1806a357f398862346639fe14f263d9d88e3 Mon Sep 17 00:00:00 2001 From: Matthew Gordon Date: Sat, 12 Sep 2020 09:59:52 -0400 Subject: [PATCH] Fix generate_dodecahedron() to match recent BVH changes --- src/util/polyhedra.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/util/polyhedra.rs b/src/util/polyhedra.rs index 6e90beb..2182303 100644 --- a/src/util/polyhedra.rs +++ b/src/util/polyhedra.rs @@ -2,7 +2,7 @@ use itertools::izip; use crate::materials::Material; use crate::math::Vec3; -use crate::raycasting::Triangle; +use crate::raycasting::{Primitive, Triangle}; use std::sync::Arc; @@ -10,14 +10,16 @@ pub fn triangulate_polygon( vertices: &Vec, normal: &Vec3, material: Arc, -) -> Vec { +) -> Vec> { assert!(vertices.len() >= 3); let hinge = vertices[0]; izip!(vertices.iter().skip(1), vertices.iter().skip(2)) - .map(|(a, b)| Triangle { - vertices: [hinge, *a, *b], - normals: [*normal, *normal, *normal], - material: Arc::clone(&material), + .map(|(a, b)| { + Arc::new(Triangle { + vertices: [hinge, *a, *b], + normals: [*normal, *normal, *normal], + material: Arc::clone(&material), + }) as Arc }) .collect() } @@ -26,7 +28,7 @@ pub fn generate_dodecahedron( centre: Vec3, size: f64, material: Arc, -) -> Vec { +) -> Vec> { let phi = (1.0 + (5.0_f64).sqrt()) / 2.0; let phi_inv = 1.0 / phi;