EBGeometry 1.0
Loading...
Searching...
No Matches
EBGeometry_ImplicitFunction.hpp
Go to the documentation of this file.
1/* EBGeometry
2 * Copyright © 2022 Robert Marskar
3 * Please refer to Copyright.txt and LICENSE in the EBGeometry root directory.
4 */
5
12#ifndef EBGeometry_ImplicitFunction
13#define EBGeometry_ImplicitFunction
14
15// Our includes
16#include "EBGeometry_Vec.hpp"
19
25template <class T>
27{
28public:
32 ImplicitFunction() = default;
33
37 virtual ~ImplicitFunction() = default;
38
44 virtual T
45 value(const Vec3T<T>& a_point) const noexcept = 0;
46
51 T
52 operator()(const Vec3T<T>& a_point) const noexcept;
53
68 template <class BV>
69 inline BV
72 const unsigned int a_maxTreeDepth,
73 const T& a_safety = 0.0) const noexcept;
74};
75
76#include "EBGeometry_NamespaceFooter.hpp"
77
78#include "EBGeometry_ImplicitFunctionImplem.hpp"
79
80#endif
Declaration of a various bounding volumes used for bounding volume hierarchy.
Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools.
Abstract representation of an implicit function function (not necessarily signed distance).
Definition EBGeometry_ImplicitFunction.hpp:27
virtual T value(const Vec3T< T > &a_point) const noexcept=0
Value function. Points are outside the object if value > 0.0 and inside if value < 0....
virtual ~ImplicitFunction()=default
Destructor (does nothing)
T operator()(const Vec3T< T > &a_point) const noexcept
Alternative signature for the value function.
BV approximateBoundingVolumeOctree(const Vec3T< T > &a_initialLowCorner, const Vec3T< T > &a_initialHighCorner, const unsigned int a_maxTreeDepth, const T &a_safety=0.0) const noexcept
Compute an approximation to the bounding volume for the implicit surface, using octrees.
ImplicitFunction()=default
Disallowed, use the full constructor.
Three-dimensional vector class with arithmetic operators.
Definition EBGeometry_Vec.hpp:218