The primitive of SphereCloudBVH: a sphere, keyed at its center and packed into SphereAoSoA groups; see PointPrimitive.
More...
#include <EBGeometry_SphereCloudBVH.hpp>
|
| static const Vec3T< T > & | center (const Item &a_item) noexcept |
| | The point a sphere's Morton key is taken at.
|
| |
| static void | grow (Vec3T< T > &a_lo, Vec3T< T > &a_hi, const Item &a_item) noexcept |
| | Grow a box to hold a sphere.
|
| |
| static void | requireValid (const char *a_who, const std::vector< Item > &a_items) noexcept |
| | Abort with a message unless the spheres of a host array can be built over: a finite center, and a finite radius of at least 0.
|
| |
| template<class Source > |
| static void | requireValidWhereBuilt (const Source &a_source, const uint32_t a_numItems, const bool a_parallel, Vec3T< T > *a_scratch, const char *a_who) noexcept |
| | Check every radius, where the build runs: finite, and at least 0.
|
| |
|
|
static constexpr const char * | ClassName = "SphereCloudBVH" |
| | The class built over these primitives, for the messages.
|
| |
|
static constexpr const char * | Singular = "sphere" |
| | One primitive, for the messages.
|
| |
|
static constexpr const char * | Plural = "spheres" |
| | Primitives, for the messages.
|
| |
|
static constexpr const char * | MaxParameter = "a_maxSpheres" |
| | build()'s parameter giving the room for a rebuild, for the messages.
|
| |
template<class T, size_t W>
struct EBGeometry::PointCloudDetail::SpherePrimitive< T, W >
The primitive of SphereCloudBVH: a sphere, keyed at its center and packed into SphereAoSoA groups; see PointPrimitive.
Internal; not part of the public API.
- Template Parameters
-
| T | Floating-point precision. |
| W | Spheres per group. |
◆ center()
template<class T , size_t W>
The point a sphere's Morton key is taken at.
- Parameters
-
- Returns
- Its center.
◆ grow()
template<class T , size_t W>
Grow a box to hold a sphere.
- Parameters
-
| [in,out] | a_lo | The box's lower corner. |
| [in,out] | a_hi | The box's upper corner. |
| [in] | a_item | The sphere. |
◆ requireValid()
template<class T , size_t W>
Abort with a message unless the spheres of a host array can be built over: a finite center, and a finite radius of at least 0.
- Parameters
-
| [in] | a_who | The calling function, for the message. |
| [in] | a_items | The spheres. |
◆ requireValidWhereBuilt()
template<class T , size_t W>
template<class Source >
Check every radius, where the build runs: finite, and at least 0.
The centers are checked with the box of the centers. Through GPU::parallelFor(), the smallest radius and whether every radius is finite come from GPU::boundingBoxOf(), and a bad one is reported as "a sphere"; on the host, it is reported by its index.
One of three checks of a sphere, each for one way in: this one for every build from a source, where the build runs; requireValid() for a host array headed to a build through GPU::parallelFor(), so that a bad sphere is still named by its index; and SphereAoSoA::pack() for a group packed by hand.
- Template Parameters
-
| Source | The spheres' source. |
- Parameters
-
| [in] | a_source | The spheres. |
| [in] | a_numItems | Number of spheres. |
| [in] | a_parallel | Whether the build runs through GPU::parallelFor(). |
| [in] | a_scratch | GPU::boundingBoxScratchSize(a_numItems) elements, for a build through GPU::parallelFor(). |
| [in] | a_who | The calling function, for the message. |
The documentation for this struct was generated from the following file: