Checking if a point is inside a triangle.
Point In Triangle
The following is a small code snippet in Odin of determining if a point is inside of a triangle.
package main
import "core:math/linalg"
// Vector Primitives
Vec2 :: [2]f32
VEC2_ZERO: Vec2 = {0, 0}
vec2_is_point_in_triangle :: proc(p, v1, v2, v3: Vec2) -> bool {
line_ab := v2 - v1
line_bc := v3 - v2
line_ca := v1 - v3
ap := p - v1
bp := p - v2
cp := p - v3
cross1 := linalg.vector_cross2(line_ab, ap)
cross2 := linalg.vector_cross2(line_bc, bp)
cross3 := linalg.vector_cross2(line_ca, cp)
if cross1 <= 0.0 || cross2 <= 0.0 || cross3 <= 0.0 {
return false
}
return true
}
main :: proc() {
}