EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
EBGeometry_BVHUnion.hpp File Reference

BVH-accelerated unions of many primitives of one type: BVHUnion and BVHSmoothUnion. More...

#include <cstddef>
#include <type_traits>
#include <utility>
#include <vector>
#include "EBGeometry_BVH.hpp"
#include "EBGeometry_Blend.hpp"
#include "EBGeometry_DistanceQuality.hpp"
#include "EBGeometry_GPU.hpp"
#include "EBGeometry_Macros.hpp"
#include "EBGeometry_Math.hpp"
#include "EBGeometry_Pool.hpp"
#include "EBGeometry_Vec.hpp"
#include "EBGeometry_BVHUnionImplem.hpp"
#include "EBGeometry_Fused.hpp"
Include dependency graph for EBGeometry_BVHUnion.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  EBGeometry::CSGDetail::StoredAs< P, bool >
 How a BVH union stores a primitive of type P: as is, or, for a pool-resident handle, as the handle's layout. More...
 
struct  EBGeometry::CSGDetail::StoredAs< P, true >
 How a BVH union stores a pool-resident handle: as its layout. More...
 
struct  EBGeometry::CSGDetail::UnionParts< T, P, K >
 What a BVH union is built into: a BVH over the primitives whose bounding box is bounded, and a single leaf (or nothing) holding those whose box is unbounded in some direction. More...
 
class  EBGeometry::BVHUnion< T, P, K >
 BVH-accelerated union of many primitives of one type. More...
 
struct  EBGeometry::BVHUnion< T, P, K >::Layout
 The union's arrays as offsets into its pool, with no location: what an outer union stores when this union is its primitive (see PoolHandle). More...
 
class  EBGeometry::BVHSmoothUnion< T, P, K, Blend >
 BVH-accelerated smooth union of many primitives of one type. More...
 
struct  EBGeometry::BVHSmoothUnion< T, P, K, Blend >::Layout
 The smooth union's arrays and parameters, with no location: what an outer union stores when this one is its primitive (see PoolHandle). More...
 

Namespaces

namespace  EBGeometry
 Namespace containing all of EBGeometry's functionality.
 
namespace  EBGeometry::CSGDetail
 Internal helpers shared by BVHUnion and BVHSmoothUnion.
 

Typedefs

template<class P >
using EBGeometry::CSGDetail::Stored = typename StoredAs< P >::type
 Shorthand for the type a BVH union stores for a primitive of type P.
 

Functions

template<class P >
Stored< P > EBGeometry::CSGDetail::toStored (const P &a_primitive) noexcept
 Convert a primitive to the form a BVH union stores.
 
template<class P >
P EBGeometry::CSGDetail::fromStored (const Stored< P > &a_stored, const PoolLocation &a_location) noexcept
 The primitive a stored entry stands for, resolving against a_location.
 

Detailed Description

BVH-accelerated unions of many primitives of one type: BVHUnion and BVHSmoothUnion.

Device-callable value types. They need the BVH builders and the blend operators, but not the expression builder, the Tape or the fused operations that EBGeometry_CSG.hpp also includes.

Author
Robert Marskar