From 828498b3de397467dbea0d82ffbdf985fb05da2d Mon Sep 17 00:00:00 2001 From: Aaron Fenyes Date: Mon, 8 Jul 2024 12:56:14 -0700 Subject: [PATCH] Add sphere and plane utilities to engine --- engine-proto/gram-test/Engine.jl | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/engine-proto/gram-test/Engine.jl b/engine-proto/gram-test/Engine.jl index a0a59be..a874485 100644 --- a/engine-proto/gram-test/Engine.jl +++ b/engine-proto/gram-test/Engine.jl @@ -33,6 +33,19 @@ rand_on_shell(rng::AbstractRNG, shells::Array{T}) where T <: Number = rand_on_shell(shells::Array{<:Number}) = rand_on_shell(Random.default_rng(), shells) +# === elements === + +plane(normal, offset) = [normal; offset; offset] + +function sphere(center, radius) + dist_sq = dot(center, center) + return [ + center / radius; + 0.5 * ((dist_sq - 1) / radius - radius); + 0.5 * ((dist_sq + 1) / radius - radius) + ] +end + # === Gram matrix realization === # the Lorentz form