Fix generate_dodecahedron() to match recent BVH changes
This commit is contained in:
parent
d4cbcfcb59
commit
db2d1806a3
|
|
@ -2,7 +2,7 @@ use itertools::izip;
|
||||||
|
|
||||||
use crate::materials::Material;
|
use crate::materials::Material;
|
||||||
use crate::math::Vec3;
|
use crate::math::Vec3;
|
||||||
use crate::raycasting::Triangle;
|
use crate::raycasting::{Primitive, Triangle};
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
|
@ -10,14 +10,16 @@ pub fn triangulate_polygon(
|
||||||
vertices: &Vec<Vec3>,
|
vertices: &Vec<Vec3>,
|
||||||
normal: &Vec3,
|
normal: &Vec3,
|
||||||
material: Arc<dyn Material>,
|
material: Arc<dyn Material>,
|
||||||
) -> Vec<Triangle> {
|
) -> Vec<Arc<dyn Primitive>> {
|
||||||
assert!(vertices.len() >= 3);
|
assert!(vertices.len() >= 3);
|
||||||
let hinge = vertices[0];
|
let hinge = vertices[0];
|
||||||
izip!(vertices.iter().skip(1), vertices.iter().skip(2))
|
izip!(vertices.iter().skip(1), vertices.iter().skip(2))
|
||||||
.map(|(a, b)| Triangle {
|
.map(|(a, b)| {
|
||||||
|
Arc::new(Triangle {
|
||||||
vertices: [hinge, *a, *b],
|
vertices: [hinge, *a, *b],
|
||||||
normals: [*normal, *normal, *normal],
|
normals: [*normal, *normal, *normal],
|
||||||
material: Arc::clone(&material),
|
material: Arc::clone(&material),
|
||||||
|
}) as Arc<dyn Primitive>
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +28,7 @@ pub fn generate_dodecahedron(
|
||||||
centre: Vec3,
|
centre: Vec3,
|
||||||
size: f64,
|
size: f64,
|
||||||
material: Arc<dyn Material>,
|
material: Arc<dyn Material>,
|
||||||
) -> Vec<Triangle> {
|
) -> Vec<Arc<dyn Primitive>> {
|
||||||
let phi = (1.0 + (5.0_f64).sqrt()) / 2.0;
|
let phi = (1.0 + (5.0_f64).sqrt()) / 2.0;
|
||||||
let phi_inv = 1.0 / phi;
|
let phi_inv = 1.0 / phi;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue