|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
An expression node. More...
#include <EBGeometry_Expr.hpp>

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. | |
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.
| T | Floating-point precision. |