From b1a383f702f9ad3bff17ddb599a247e32b06d8c7 Mon Sep 17 00:00:00 2001 From: JoeBell Date: Sun, 2 Mar 2025 21:38:47 -0500 Subject: [PATCH] Created the CompositeMesh class Created a new class that allows you to combine multiple meshes --- Raytrace/CompositeMesh.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Raytrace/CompositeMesh.py diff --git a/Raytrace/CompositeMesh.py b/Raytrace/CompositeMesh.py new file mode 100644 index 0000000..f1dc5b6 --- /dev/null +++ b/Raytrace/CompositeMesh.py @@ -0,0 +1,11 @@ +import numpy as np +from Raytrace.TriangleMesh import TriangleMesh, Ray + +class CompositeMesh(TriangleMesh): + meshes: list[TriangleMesh] + def __init__(self, meshes:list[TriangleMesh]) -> None: + self.meshes = meshes + self.triangles = np.concatenate([mesh.triangles for mesh in self.meshes]) + def raytrace(self, ray:Ray) -> float: + distances = [mesh.raytrace(ray) for mesh in self.meshes] + return min(distances, default = np.inf) \ No newline at end of file