Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/embree/kernels/common/acceln.h
9905 views
1
// Copyright 2009-2021 Intel Corporation
2
// SPDX-License-Identifier: Apache-2.0
3
4
#pragma once
5
6
#include "accel.h"
7
8
namespace embree
9
{
10
/*! merges N acceleration structures together, by processing them in order */
11
class AccelN : public Accel
12
{
13
public:
14
AccelN ();
15
~AccelN();
16
17
public:
18
void accels_add(Accel* accel);
19
void accels_init();
20
21
public:
22
static bool pointQuery (Accel::Intersectors* This, PointQuery* query, PointQueryContext* context);
23
24
public:
25
static void intersect (Accel::Intersectors* This, RTCRayHit& ray, RayQueryContext* context);
26
static void intersect4 (const void* valid, Accel::Intersectors* This, RTCRayHit4& ray, RayQueryContext* context);
27
static void intersect8 (const void* valid, Accel::Intersectors* This, RTCRayHit8& ray, RayQueryContext* context);
28
static void intersect16 (const void* valid, Accel::Intersectors* This, RTCRayHit16& ray, RayQueryContext* context);
29
30
public:
31
static void occluded (Accel::Intersectors* This, RTCRay& ray, RayQueryContext* context);
32
static void occluded4 (const void* valid, Accel::Intersectors* This, RTCRay4& ray, RayQueryContext* context);
33
static void occluded8 (const void* valid, Accel::Intersectors* This, RTCRay8& ray, RayQueryContext* context);
34
static void occluded16 (const void* valid, Accel::Intersectors* This, RTCRay16& ray, RayQueryContext* context);
35
36
public:
37
void accels_print(size_t ident);
38
void accels_immutable();
39
void accels_build ();
40
void accels_select(bool filter);
41
void accels_deleteGeometry(size_t geomID);
42
void accels_clear ();
43
44
public:
45
std::vector<Accel*> accels;
46
};
47
}
48
49