Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/embree/kernels/bvh/bvh_intersector1.h
9906 views
1
// Copyright 2009-2021 Intel Corporation
2
// SPDX-License-Identifier: Apache-2.0
3
4
#pragma once
5
6
#include "bvh.h"
7
#include "../common/ray.h"
8
#include "../common/point_query.h"
9
10
namespace embree
11
{
12
namespace isa
13
{
14
/*! BVH single ray intersector. */
15
template<int N, int types, bool robust, typename PrimitiveIntersector1>
16
class BVHNIntersector1
17
{
18
/* shortcuts for frequently used types */
19
typedef typename PrimitiveIntersector1::Precalculations Precalculations;
20
typedef typename PrimitiveIntersector1::Primitive Primitive;
21
typedef BVHN<N> BVH;
22
typedef typename BVH::NodeRef NodeRef;
23
typedef typename BVH::AABBNode AABBNode;
24
typedef typename BVH::AABBNodeMB4D AABBNodeMB4D;
25
26
static const size_t stackSize = 1+(N-1)*BVH::maxDepth+3; // +3 due to 16-wide store
27
28
public:
29
static void intersect (const Accel::Intersectors* This, RayHit& ray, RayQueryContext* context);
30
static void occluded (const Accel::Intersectors* This, Ray& ray, RayQueryContext* context);
31
static bool pointQuery(const Accel::Intersectors* This, PointQuery* query, PointQueryContext* context);
32
};
33
}
34
}
35
36