1#[cfg(cpu)]
9mod cpu;
10#[cfg(cpu)]
11pub use cpu::*;
12
13pub mod shader;
14
15#[cfg(test)]
16mod test {
17 use glam::{Vec2, Vec3};
18
19 use crate::cubemap::shader::{CubemapDescriptor, CubemapFaceDirection};
20
21 #[test]
22 fn cubemap_right() {
23 assert_eq!(Vec3::NEG_Z, CubemapFaceDirection::X.right());
24 assert_eq!(Vec3::Z, CubemapFaceDirection::NEG_X.right());
25 assert_eq!(Vec3::X, CubemapFaceDirection::Y.right());
26 assert_eq!(Vec3::X, CubemapFaceDirection::NEG_Y.right());
27 assert_eq!(Vec3::X, CubemapFaceDirection::Z.right());
28 assert_eq!(Vec3::NEG_X, CubemapFaceDirection::NEG_Z.right());
29
30 assert_eq!(
31 (1, Vec2::new(0.0, 1.0)),
32 CubemapDescriptor::get_face_index_and_uv(Vec3::NEG_ONE)
33 );
34 }
35
36 #[test]
37 fn cubemap_face_index() {
38 let center = Vec2::splat(0.5);
39 let data = [
40 (Vec3::X, 0, center),
41 (Vec3::NEG_X, 1, center),
42 (Vec3::Y, 2, center),
43 (Vec3::NEG_Y, 3, center),
44 (Vec3::Z, 4, center),
45 (Vec3::NEG_Z, 5, center),
46 ];
47 for (coord, expected_face_index, expected_uv) in data {
48 let (seen_face_index, seen_uv) = CubemapDescriptor::get_face_index_and_uv(coord);
49 dbg!((coord, seen_face_index, seen_uv));
50 assert_eq!(expected_face_index, seen_face_index);
51 assert_eq!(expected_uv, seen_uv);
52 }
53 }
54}