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