/* SPDX-FileCopyrightText: 2011-2023 Blender Foundation * * SPDX-License-Identifier: Apache-2.0 */ #ifdef WITH_HIPRT # pragma once # include "bvh/bvh.h" # include "bvh/params.h" # include "device/memory.h" # include CCL_NAMESPACE_BEGIN class BVHHIPRT : public BVH { public: friend class HIPDevice; bool is_tlas() { return params.top_level; } hiprtGeometry hiprt_geom; hiprtTriangleMeshPrimitive triangle_mesh; hiprtAABBListPrimitive custom_prim_aabb; hiprtGeometryBuildInput geom_input; vector custom_prim_info; /* x: prim_id, y: prim_type */ vector prims_time; /* Custom primitives. */ device_vector custom_primitive_bound; device_vector triangle_index; device_vector vertex_data; float aabb_overlap_ratio; BVHHIPRT(const BVHParams ¶ms, const vector &geometry, const vector &objects, Device *in_device); ~BVHHIPRT() override; private: Device *device; }; CCL_NAMESPACE_END #endif