readded scalar types

This commit is contained in:
Jorijn van der Graaf 2026-03-31 14:57:56 +02:00
commit e4bfc0ff19
3 changed files with 12 additions and 29 deletions

View file

@ -23,36 +23,13 @@ import :MatrixRowMajor;
import std;
namespace Crafter {
export
constexpr std::array<float, 15> IntersectionTestRayTriangle(
VectorF32<3, 5> vertA0,
VectorF32<3, 5> vertA1,
VectorF32<3, 5> vertA2,
VectorF32<3, 5> vertB0,
VectorF32<3, 5> vertB1,
VectorF32<3, 5> vertB2,
VectorF32<3, 5> vertC0,
VectorF32<3, 5> vertC1,
VectorF32<3, 5> vertC2,
VectorF32<3, 5> rayOrigin,
VectorF32<3, 5> rayDir
) {
VectorF32<3, Packing> edgeA1 = vertA1 - vertA0;
VectorF32<3, Packing> edgeA2 = vertA2 - vertA0;
VectorF32<3, Packing> crossA = VectorF32<3, Packing> ::Cross(rayDir, edgeA2);
VectorF32<3, Packing> edgeB1 = vertB1 - vertB0;
VectorF32<3, Packing> edgeB2 = vertB2 - vertB0;
VectorF32<3, Packing> crossB = VectorF32<3, Packing> ::Cross(rayDir, edgeB2);
VectorF32<3, Packing> edgeC1 = vertC1 - vertC0;
VectorF32<3, Packing> edgeC2 = vertC2 - vertC0;
VectorF32<3, Packing> crossC = VectorF32<3, Packing> ::Cross(rayDir, edgeC2);
export template<typename T>
constexpr T IntersectionTestRayTriangle(Vector<T, 3, 0> vert0, Vector<T, 3, 0> vert1, Vector<T, 3, 0> vert2, Vector<T, 3, 0> rayOrigin, Vector<T, 3, 0> rayDir) {
Vector<T, 3, 0> edge1 = vert1 - vert0;
Vector<T, 3, 0> edge2 = vert2 - vert0;
Vector<T, 3, 0> h = Vector<T, 3, 0>::Cross(rayDir, edge2);
T determinant = Vector<T, 3, 0>::Dot(edge1, h);
if (determinant <= std::numeric_limits<T>::epsilon()) {
return std::numeric_limits<T>::max();

View file

@ -20,6 +20,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
export module Crafter.Math;
export import :Basic;
export import :Vector;
export import :MatrixRowMajor;
export import :Intersection;
export import :Common;
export import :VectorF16;
export import :VectorF32;

View file

@ -7,6 +7,9 @@
"interfaces/Crafter.Math-Basic",
"interfaces/Crafter.Math",
"interfaces/Crafter.Math-Common",
"interfaces/Crafter.Math-Vector",
"interfaces/Crafter.Math-Intersection",
"interfaces/Crafter.Math-MatrixRowMajor",
"interfaces/Crafter.Math-VectorF16",
"interfaces/Crafter.Math-VectorF32"
],