EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Public Attributes | List of all members
EBGeometry::CSGOps::Tagged< T > Struct Template Reference

A value with the deciding leaf it comes from: the leaf whose surface the composed value is taken from there, and the point that leaf was evaluated at (in its own frame). More...

#include <EBGeometry_CSGOps.hpp>

Public Attributes

T m_value
 The value.
 
uint32_t m_tag
 The deciding leaf, as the structure numbers it (NoTag for none).
 
Vec3T< T > m_point
 The point the leaf was evaluated at.
 

Detailed Description

template<class T>
struct EBGeometry::CSGOps::Tagged< T >

A value with the deciding leaf it comes from: the leaf whose surface the composed value is taken from there, and the point that leaf was evaluated at (in its own frame).

The operations below work on a plain value T and on a Tagged<T> alike. On a Tagged<T> they compute the value as on a T and carry the tag of the operand the value comes from (see Tape::closestPrimitive()).

Template Parameters
TFloating-point precision.

Member Data Documentation

◆ m_tag

template<class T >
uint32_t EBGeometry::CSGOps::Tagged< T >::m_tag

The deciding leaf, as the structure numbers it (NoTag for none).

No default member initializer: the tape keeps a fixed stack of values, and one would write every slot of it on every evaluation (a tagged float tape on a GPU was 59% slower). A value that names no leaf is made with noLeaf().


The documentation for this struct was generated from the following file: