|
| struct | AffineOp |
| | An affine map (translation, rotation, scaling, reflection, or a composition of them): the operand's value at the mapped point, times a value scale. More...
|
| |
| struct | BlurOp |
| | Blur: a weighted average of the operand's values at 27 points (CSGOps::blur()). More...
|
| |
| struct | CombineOp |
| | Union or intersection: the minimum or the maximum of the operands' values, in order. More...
|
| |
| struct | ComplementOp |
| | Complement: -v, inside and outside swapped. More...
|
| |
| struct | ElongateOp |
| | Elongation: the operand's value at p - clamp(p, -h, h). More...
|
| |
| struct | MollifyOp |
| | Mollification: the operand convolved with a bump kernel sampled on a grid (CSGOps::mollify()). More...
|
| |
| class | Node |
| | A fused composition: an operation applied to its operands, itself a shape (isShape). More...
|
| |
| struct | OperandList |
| | A list of operands, for the n-ary smooth operations (whose smoothing parameters follow the operands): Fused::SmoothUnion(Fused::operands(a, b, c), s). More...
|
| |
| struct | RepetitionOp |
| | Finite repetition: the minimum of the operand's value over all its copies (CSGOps::repetition()). More...
|
| |
| struct | ShiftOp |
| | Offset (v - r) or annulus (|v| - delta). More...
|
| |
| struct | SmoothCombineOp |
| | Smooth union or intersection: a smooth minimum (maximum) of the two smallest (largest) values. More...
|
| |
|
| template<class... Cs> |
| OperandList< Cs... > | operands (const Cs &... a_operands) |
| | A list of operands for an n-ary smooth operation.
|
| |
| template<class C , class... Cs> |
| auto | Union (const C &a_first, const Cs &... a_others) |
| | Union of shapes: the minimum of their values. One shape is returned as is.
|
| |
| template<class C , class... Cs> |
| auto | Intersection (const C &a_first, const Cs &... a_others) |
| | Intersection of shapes: the maximum of their values. One shape is returned as is.
|
| |
| template<class A , class B , class... Bs> |
| auto | Difference (const A &a_first, const B &a_second, const Bs &... a_others) |
| | Difference A \ (B1 u B2 u ...): max(A, -min_i Bi).
|
| |
| template<class C > |
| Node< ComplementOp, C > | Complement (const C &a_operand) |
| | Complement: inside and outside swapped, -v.
|
| |
| template<class A , class B > |
| Node< SmoothCombineOp< ShapePrecision< A >, true >, A, B > | SmoothUnion (const A &a_first, const B &a_second, const ShapePrecision< A > a_smooth, const BlendKind a_blend=BlendKind::Polynomial) |
| | Smooth union of two shapes: a smooth minimum of their values.
|
| |
| template<class... Cs> |
| auto | SmoothUnion (const OperandList< Cs... > &a_operands, const ShapePrecision< typename Detail::TypeAt< 0, Cs... >::type > a_smooth, const BlendKind a_blend=BlendKind::Polynomial) |
| | Smooth union of any number of shapes: a smooth minimum of the two smallest values (see EBGeometry::SmoothUnion()).
|
| |
| template<class A , class B > |
| Node< SmoothCombineOp< ShapePrecision< A >, false >, A, B > | SmoothIntersection (const A &a_first, const B &a_second, const ShapePrecision< A > a_smooth, const BlendKind a_blend=BlendKind::Polynomial) |
| | Smooth intersection of two shapes: a smooth maximum of their values.
|
| |
| template<class... Cs> |
| auto | SmoothIntersection (const OperandList< Cs... > &a_operands, const ShapePrecision< typename Detail::TypeAt< 0, Cs... >::type > a_smooth, const BlendKind a_blend=BlendKind::Polynomial) |
| | Smooth intersection of any number of shapes: a smooth maximum of the two largest values.
|
| |
| template<class A , class B > |
| auto | SmoothDifference (const A &a_first, const B &a_second, const ShapePrecision< A > a_smooth, const BlendKind a_blend=BlendKind::Polynomial) |
| | Smooth difference A \ B: the smooth intersection of A and the complement of B.
|
| |
| template<class A , class... Bs> |
| auto | SmoothDifference (const A &a_first, const OperandList< Bs... > &a_others, const ShapePrecision< A > a_smooth, const BlendKind a_blend=BlendKind::Polynomial) |
| | Smooth difference A \ (B1, B2, ...): the smooth intersection of A and the complement of each Bi.
|
| |
| template<class C > |
| auto | Translate (const C &a_operand, const Vec3T< ShapePrecision< C > > &a_shift) |
| | Translate a shape by a shift.
|
| |
| template<class C > |
| auto | Rotate (const C &a_operand, const ShapePrecision< C > a_degrees, const size_t a_axis) |
| | Rotate a shape about a coordinate axis through the origin.
|
| |
| template<class C > |
| auto | Rotate (const C &a_operand, const ShapePrecision< C > a_degrees, const Vec3T< ShapePrecision< C > > &a_axis) |
| | Rotate a shape about an arbitrary axis through the origin.
|
| |
| template<class C > |
| auto | Scale (const C &a_operand, const ShapePrecision< C > a_factor) |
| | Scale a shape uniformly about the origin: |s| times its value at p / s.
|
| |
| template<class C > |
| auto | Reflect (const C &a_operand, const size_t a_axis) |
| | Reflect a shape in a coordinate plane through the origin.
|
| |
| template<class C > |
| Node< ShiftOp< ShapePrecision< C >, false >, C > | Offset (const C &a_operand, const ShapePrecision< C > a_offset) |
| | Offset a shape's surface outward by a distance, v - r.
|
| |
| template<class C > |
| Node< ShiftOp< ShapePrecision< C >, true >, C > | Annular (const C &a_operand, const ShapePrecision< C > a_delta) |
| | A shell around a shape's surface, |v| - delta.
|
| |
| template<class C > |
| Node< ElongateOp< ShapePrecision< C > >, C > | Elongate (const C &a_operand, const Vec3T< ShapePrecision< C > > &a_elongation) |
| | Elongate a shape: stretch it by inserting a box of half-lengths h at the origin.
|
| |
| template<class C > |
| Node< RepetitionOp< ShapePrecision< C > >, C > | FiniteRepetition (const C &a_operand, const Vec3T< ShapePrecision< C > > &a_period, const Vec3T< ShapePrecision< C > > &a_repeatLo, const Vec3T< ShapePrecision< C > > &a_repeatHi) |
| | Finite repetition: copies of a shape on a grid of tiles, the minimum over all of them (see EBGeometry::FiniteRepetition()).
|
| |
| template<class C > |
| Node< BlurOp< ShapePrecision< C > >, C > | Blur (const C &a_operand, const ShapePrecision< C > a_blur, const ShapePrecision< C > a_alpha=ShapePrecision< C >(0.5)) |
| | Blur a shape: a weighted average of its values at the 27 points p + d (i, j, k), i, j, k in {-1, 0, 1} (see EBGeometry::Blur()).
|
| |
| template<class C > |
| Node< MollifyOp< ShapePrecision< C > >, C > | Mollify (const C &a_operand, const ShapePrecision< C > a_dist, const size_t a_samples) |
| | Mollify a shape: convolve it with a smooth bump kernel sampled on an n x n x n grid over [-r, r]^3 (see EBGeometry::Mollify()).
|
| |
Fused CSG: the expression builder's operations as types (see EBGeometry_Fused.hpp).