Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
prism/engine/math/include/plane.hpp

31 lines
797 B
C++
Raw Normal View History

2020-08-11 12:07:21 -04:00
#pragma once
2020-08-19 22:09:14 -04:00
#include <cmath>
#include "vector.hpp"
2020-08-11 12:07:21 -04:00
struct Plane {
float a = 0.0, b = 0.0, c = 0.0, d = 0.0;
};
inline Plane normalize(const Plane& plane) {
const float magnitude = std::sqrt(plane.a * plane.a +
plane.b * plane.b +
plane.c * plane.c);
Plane normalized_plane = plane;
normalized_plane.a = plane.a / magnitude;
normalized_plane.b = plane.b / magnitude;
normalized_plane.c = plane.c / magnitude;
normalized_plane.d = plane.d / magnitude;
return normalized_plane;
}
2021-05-12 09:56:44 -04:00
inline float distance_to_point(const Plane& plane, const prism::float3& point) {
2020-08-11 12:07:21 -04:00
return plane.a * point.x +
plane.b * point.y +
plane.c * point.z +
plane.d;
}