19 lines
400 B
C++
19 lines
400 B
C++
#include "../math.hpp"
|
|
|
|
namespace hpr::geometry
|
|
{
|
|
|
|
vec3 circumCentre(vec3 p1, vec3 p2, vec3 p3, vec3 p4)
|
|
{
|
|
vec3 e1 = p2 - p1;
|
|
vec3 e2 = p3 - p1;
|
|
vec3 e3 = p4 - p1;
|
|
mat3 A;
|
|
A.row(0, e1);
|
|
A.row(1, e2);
|
|
A.row(2, e3);
|
|
vec3 B = 0.5 * vec3(sum(pow(p2, 2)) - sum(pow(p1, 2)), sum(pow(p3, 2)) - sum(pow(p1, 2)), sum(pow(p4, 2)) - sum(pow(p1, 2)));
|
|
return A.inv() * B;
|
|
}
|
|
|
|
} |