Initial commit.
This commit is contained in:
commit
d3bb49b3f5
1073 changed files with 484757 additions and 0 deletions
43
Framework/external/embree/kernels/bvh/bvh_node_base.h
vendored
Normal file
43
Framework/external/embree/kernels/bvh/bvh_node_base.h
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
// Copyright 2009-2021 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "bvh_node_ref.h"
|
||||
|
||||
namespace embree
|
||||
{
|
||||
|
||||
/*! BVHN Base Node */
|
||||
template<typename NodeRef, int N>
|
||||
struct BaseNode_t
|
||||
{
|
||||
/*! Clears the node. */
|
||||
__forceinline void clear()
|
||||
{
|
||||
for (size_t i=0; i<N; i++)
|
||||
children[i] = NodeRef::emptyNode;
|
||||
}
|
||||
|
||||
/*! Returns reference to specified child */
|
||||
__forceinline NodeRef& child(size_t i) { assert(i<N); return children[i]; }
|
||||
__forceinline const NodeRef& child(size_t i) const { assert(i<N); return children[i]; }
|
||||
|
||||
/*! verifies the node */
|
||||
__forceinline bool verify() const
|
||||
{
|
||||
for (size_t i=0; i<N; i++) {
|
||||
if (child(i) == NodeRef::emptyNode) {
|
||||
for (; i<N; i++) {
|
||||
if (child(i) != NodeRef::emptyNode)
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
NodeRef children[N]; //!< Pointer to the N children (can be a node or leaf)
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue