void createTriangleMeshTriangle4i(TriangleMesh* mesh, AccelData*& accel, Builder*& builder) { if (mesh->numTimeSteps != 1) THROW_RUNTIME_ERROR("internal error"); accel = new BVH4(Triangle4i::type,mesh->parent,LeafMode); switch (mesh->flags) { case RTC_GEOMETRY_STATIC: builder = BVH4Triangle4iMeshBuilderSAH(accel,mesh,LeafMode); break; case RTC_GEOMETRY_DEFORMABLE: builder = BVH4Triangle4iMeshRefitSAH(accel,mesh,LeafMode); break; case RTC_GEOMETRY_DYNAMIC: builder = BVH4Triangle4iMeshBuilderMortonGeneral(accel,mesh,LeafMode); break; default: THROW_RUNTIME_ERROR("internal error"); } }
Builder* BVH4Triangle4iMeshRefitSAH (void* accel, TriangleMesh* mesh, size_t mode) { return new BVHNRefitT<4,TriangleMesh,Triangle4i>((BVH4*)accel,BVH4Triangle4iMeshBuilderSAH(accel,mesh,mode),mesh,mode); }