|
template<typename T > |
T | olb::sdf::mix (T a, T b, T h) any_platform |
|
template<typename T0 , typename T1 , typename T2 > |
decltype(T0 {} *T1 {} *T2 {}) | olb::sdf::clamp (T0 x, T1 a, T2 b) any_platform |
|
template<typename T > |
Vector< bool, 3 > | olb::sdf::isSymmetric (std::function< T(const Vector< T, 3 > &)> sdf, Vector< T, 3 > center) any_platform |
| A rough test for symmetry.
|
|
template<typename T , unsigned D> |
T | olb::sdf::sphere (Vector< T, D > p, T r) any_platform |
| Exact signed distance to the surface of circle (in 2D) or sphere (in 3D).
|
|
template<typename T > |
T | olb::sdf::box (Vector< T, 2 > p, Vector< T, 2 > b) any_platform |
| Exact signed distance to the surface of two-dimensional cuboid.
|
|
template<typename T > |
T | olb::sdf::box (Vector< T, 3 > p, Vector< T, 3 > b) any_platform |
| Exact signed distance to the surface of three-dimensional cuboid.
|
|
template<typename T > |
T | olb::sdf::triangle (Vector< T, 2 > p, Vector< T, 2 > a, Vector< T, 2 > b, Vector< T, 2 > c) any_platform |
| Exact signed distance to the surface of two-dimensional triangle.
|
|
template<typename T > |
T | olb::sdf::cylinder (Vector< T, 3 > p, Vector< T, 3 > a, Vector< T, 3 > ba, T baba, T r) any_platform |
| Exact signed distance to the surface of three-dimensional cylinder.
|
|
template<typename T > |
T | olb::sdf::cylinder (Vector< T, 3 > p, Vector< T, 3 > a, Vector< T, 3 > b, T r) any_platform |
| Calculate signed distance to the surface of three-dimensional cylinder defined by the centers of the two extremities and the radius.
|
|
template<typename T > |
T | olb::sdf::cone (Vector< T, 3 > p, Vector< T, 3 > a, Vector< T, 3 > ba, T baba, T ra, T rb) any_platform |
| Exact signed distance to the surface of three-dimensional (capped) cone.
|
|
template<typename T > |
T | olb::sdf::cone (Vector< T, 3 > p, Vector< T, 3 > a, Vector< T, 3 > b, T ra, T rb) any_platform |
| Calculate signed distance to the surface of three-dimensional capped cone defined by the centers of the two extremities and the corresponding radius.
|
|
template<typename T > |
T | olb::sdf::ellipsoid (Vector< T, 3 > p, Vector< T, 3 > r) any_platform |
| Calculate the NOT EXACT (!) signed distance to the surface of three-dimensional ellipsoid.
|
|
template<typename T > |
T | olb::sdf::torus (Vector< T, 3 > p, Vector< T, 2 > t) any_platform |
| Exact signed distance to the surface of a torus placed in the XZ-plane of the coordinate system.
|
|
template<typename T > |
T | olb::sdf::solidAngle (Vector< T, 3 > p, Vector< T, 2 > c, T r) any_platform |
| Exact signed distance to the surface of a solid angle which represents a combination of a cone (axis y=0 to y=r) and a sphere.
|
|
template<typename T , unsigned D> |
Vector< T, D > | olb::sdf::translate (Vector< T, D > p, Vector< T, D > origin) any_platform |
| Translation: The output of this function is used for the calculation of the signed distance to translated/shifted objects.
|
|
template<typename T > |
Vector< T, 3 > | olb::sdf::flip (Vector< T, 3 > p) any_platform |
|
template<typename T > |
T | olb::sdf::subtraction (T a, T b) any_platform |
| Volume of a is subtracted from b.
|
|
template<typename T > |
T | olb::sdf::unify (T a, T b) any_platform |
| Volume of a and volume of b are combined as a new object.
|
|
template<typename T > |
T | olb::sdf::intersection (T a, T b) any_platform |
| Volume which is shared by a and b creates a new object.
|
|
template<typename T > |
T | olb::sdf::smooth_union (T a, T b, T k) any_platform |
|
template<typename T > |
T | olb::sdf::smooth_subtraction (T a, T b, T k) any_platform |
|
template<typename T > |
T | olb::sdf::smooth_intersection (T a, T b, T k) any_platform |
|
template<typename T > |
T | olb::sdf::rounding (T a, T r) any_platform |
| Computes a layer of a constant thickness around the surface.
|
|
template<typename T , bool symmetryCheck = true> |
T | olb::sdf::elongation (std::function< T(const Vector< T, 3 > &)> sdf, const Vector< T, 3 > &p, const Vector< T, 3 > &h, const Vector< T, 3 > ¢er=(T(0))) any_platform |
| Elongation splits the object in 2 (4 or 8) parts, moves them apart and connects them again The object has to be placed in the origin of the coodinate system.
|
|
template<typename T , unsigned D> |
T | olb::sdf::scale (std::function< T(const Vector< T, D > &)> sdf, const Vector< T, D > &p, T s, const Vector< T, D > ¢er=(T(0))) any_platform |
| Function to scale a geometry The object has to be placed in the origin of the coodinate system.
|
|
template<typename T > |
T | olb::sdf::signedDistanceToPorosity (T signedDist, T eps) any_platform |
| Converts signed distance to values for the smooth epsilon boundary.
|
|
template<typename T > |
bool | olb::sdf::evalSolidVolumeFraction (T output[], T signedDist, T eps) any_platform |
|