EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
EBGeometry_PrimitiveRef.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Robert Marskar <robert.marskar@sintef.no>
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
11#ifndef EBGEOMETRY_PRIMITIVEREF_HPP
12#define EBGEOMETRY_PRIMITIVEREF_HPP
13
14// Std includes
15#include <cstdint>
16
17// Our includes
18#include "EBGeometry_GPU.hpp"
19#include "EBGeometry_Vec.hpp"
20
21namespace EBGeometry {
22
39template <class T>
41{
45 static constexpr uint32_t None = 0xFFFFFFFFU;
46
50 uint32_t m_leaf = None;
51
56 uint32_t m_type = None;
57
61 uint32_t m_index = None;
62
68};
69
70} // namespace EBGeometry
71
72#endif
GPU portability layer: host/device decoration macros and backend detection.
Declaration of 2D and 3D point/vector classes with templated precision, and free functions on them.
Three-dimensional vector class with arithmetic operators.
Definition EBGeometry_Vec.hpp:258
static constexpr Vec3T< T > zeros() noexcept
Return a vector with x = y = z = 0.
Namespace containing all of EBGeometry's functionality.
Definition EBGeometry_Affine.hpp:26
The deciding leaf of a composition at a point: the primitive whose surface the composed value comes f...
Definition EBGeometry_PrimitiveRef.hpp:41
uint32_t m_leaf
The leaf: its number in expression order, depth first, each occurrence counted.
Definition EBGeometry_PrimitiveRef.hpp:50
static constexpr uint32_t None
No leaf (an empty composition).
Definition EBGeometry_PrimitiveRef.hpp:45
uint32_t m_index
The primitive's index within that type's array.
Definition EBGeometry_PrimitiveRef.hpp:61
uint32_t m_type
The index of the primitive's type in the tape's type list (the built-in types, then UserPrimitives).
Definition EBGeometry_PrimitiveRef.hpp:56
Vec3T< T > m_localPoint
The point in the primitive's own frame (after the composition's maps), at which it can be queried its...
Definition EBGeometry_PrimitiveRef.hpp:67