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

An expression node. More...

#include <EBGeometry_Expr.hpp>

Collaboration diagram for EBGeometry::ExprDetail::Node< T >:
Collaboration graph
[legend]

Public Attributes

Kind m_kind = Kind::Primitive
 What the node does.
 
std::vector< Expr< T > > m_children
 Children (none for a primitive, one for a map or value operation, any number for a union or intersection).
 
Leaf m_leaf
 The shape, for a primitive.
 
Affine3T< T > m_map = Affine3T<T>::identity()
 Point map applied before the child is evaluated (Affine).
 
Affine3T< T > m_inverse = Affine3T<T>::identity()
 Inverse of m_map, which maps the child's box to the node's (Affine).
 
T m_valueScale = T(1)
 Value multiplier applied after the child is evaluated (Affine): |s| for a scaling by s.
 
Vec3T< T > m_vec0 = Vec3T<T>::zeros()
 Elongation half-lengths (Elongate) or tile period (Repeat).
 
Vec3T< T > m_vec1 = Vec3T<T>::zeros()
 Tiles in the decreasing direction of each axis, rounded to whole numbers (Repeat).
 
Vec3T< T > m_vec2 = Vec3T<T>::zeros()
 Tiles in the increasing direction of each axis, rounded to whole numbers (Repeat).
 
T m_scalar0 = T(0)
 Offset distance (Offset), shell half-thickness (Annular), blur distance (Blur), mollification distance (Mollify) or smoothing length (smooth operations).
 
T m_scalar1 = T(0)
 Blend weight alpha (Blur).
 
uint32_t m_count = 0
 Samples per axis (Mollify).
 
BlendKind m_blend = BlendKind::Polynomial
 Blend kind (smooth operations).
 
BoundingVolumes::AABBT< T > m_boundingVolume
 A box enclosing the node's object.
 
DistanceQuality m_quality = DistanceQuality::Exact
 How far the node's value can be trusted as a distance.
 

Detailed Description

template<class T>
struct EBGeometry::ExprDetail::Node< T >

An expression node.

Internal helper; not part of the public API. Each node's bounding volume and distance quality are computed when it is made, from its children's.

Template Parameters
TFloating-point precision.

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