public static BVHNode CreateLeaf(SceneObject sceneObject, int firstTriangleIndex, ref BoundingBox bounds) { return new BVHNode(sceneObject, firstTriangleIndex, ref bounds); }
private static BVHNode[] ReduceToBVHNodes(IEnumerable <SceneObject> scene) { return(scene .SelectMany(s => s.Geometry.Triangles .Select((t, i) => { var bounds = t.BoundsIn(s.Geometry.Vertices); return BVHNode.CreateLeaf(s, i, ref bounds); })) .ToArray()); }