EBGeometry 1.0
Loading...
Searching...
No Matches
EBGeometry_SignedDistanceFunction.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_SignedDistanceFunction
13#define EBGeometry_SignedDistanceFunction
14
15#include <memory>
16#include <deque>
17
18// Our includes
21
30template <class T>
32{
33public:
38
42 virtual ~SignedDistanceFunction() = default;
43
48 virtual T
49 value(const Vec3T<T>& a_point) const noexcept override final;
50
55 virtual T
56 signedDistance(const Vec3T<T>& a_point) const noexcept = 0;
57
64 inline virtual Vec3T<T>
65 normal(const Vec3T<T>& a_point, const T& a_delta) const noexcept;
66};
67
69
70#include "EBGeometry_SignedDistanceFunctionImplem.hpp"
71
72#endif
Abstract base class for representing an implicit function.
Abstract representation of an implicit function function (not necessarily signed distance).
Definition EBGeometry_ImplicitFunction.hpp:27
Abstract representation of a signed distance function.
Definition EBGeometry_SignedDistanceFunction.hpp:32
virtual T value(const Vec3T< T > &a_point) const noexcept override final
Implementation of ImplicitFunction::value.
virtual Vec3T< T > normal(const Vec3T< T > &a_point, const T &a_delta) const noexcept
Signed distance normal vector.
virtual ~SignedDistanceFunction()=default
Destructor (does nothing)
SignedDistanceFunction()=default
Disallowed, use the full constructor.
virtual T signedDistance(const Vec3T< T > &a_point) const noexcept=0
Signed distance function.
Three-dimensional vector class with arithmetic operators.
Definition EBGeometry_Vec.hpp:218