//! 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 - egde_a;
    let v2 = edge_c - egde_a;

    v1.cross(&v2).normalize()
}