A composed object: an immutable tree of shapes and operations, built on the host and compiled by a Tape.
More...
|
|
| Expr ()=delete |
| | No empty expression.
|
| |
| template<class S , class = std::enable_if_t<!std::is_same_v<std::decay_t<S>, Expr> && !std::is_convertible_v<S, std::shared_ptr<const ExprDetail::Node<T>>>>> |
| | Expr (const S &a_shape) |
| | Wrap a shape.
|
| |
| | Expr (std::shared_ptr< const ExprDetail::Node< T > > a_node) noexcept |
| | Wrap a node; used by the builder functions.
|
| |
| const BV & | computeBoundingVolume () const noexcept |
| | A box enclosing the object.
|
| |
| DistanceQuality | getDistanceQuality () const noexcept |
| | How far the object's value can be trusted as a distance.
|
| |
| const ExprDetail::Node< T > & | node () const noexcept |
| | The root node, for the tape compiler.
|
| |
template<class T>
class EBGeometry::Expr< T >
A composed object: an immutable tree of shapes and operations, built on the host and compiled by a Tape.
Copies share the tree, so passing an Expr by value is cheap and an Expr can be used several times in one tree. Every shape converts to an Expr; the free functions in this header (Union, Translate, ...) take shapes or Exprs and return an Expr. A pool-resident shape (a mesh SDF, a BVH union) is held as a descriptor, so its pool must outlive any Tape compiled from the Expr, and must be the pool the Tape is compiled into.
- Template Parameters
-
| T | Floating-point precision. |