summaryrefslogtreecommitdiff
path: root/engine/src/math.rs
blob: bda3b59b180939af19031f0f66f7f2e62b2e7e17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Miscellaneous math functions.

use crate::vector::Vec3;

/// Calculates the surface normal of a triangle.
#[must_use]
pub fn calc_triangle_surface_normal(
    egde_a: &Vec3<f32>,
    edge_b: &Vec3<f32>,
    edge_c: &Vec3<f32>,
) -> Vec3<f32>
{
    let v1 = edge_b.clone() - egde_a.clone();
    let v2 = edge_c.clone() - egde_a.clone();

    v1.cross(&v2)
}