11#ifndef EBGEOMETRY_SIGNEDDISTANCEFUNCTION_HPP
12#define EBGEOMETRY_SIGNEDDISTANCEFUNCTION_HPP
35 static_assert(std::is_floating_point_v<T>,
"T must be a floating-point type");
79#include "EBGeometry_SignedDistanceFunctionImplem.hpp"
Abstract base class for representing an implicit function.
Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools.
Abstract representation of an implicit function (not necessarily a signed distance function).
Definition EBGeometry_ImplicitFunction.hpp:32
Abstract representation of a signed distance function.
Definition EBGeometry_SignedDistanceFunction.hpp:34
~SignedDistanceFunction() override=default
Destructor.
SignedDistanceFunction()=default
Default constructor.
virtual Vec3T< T > normal(const Vec3T< T > &a_point, const T &a_delta) const noexcept
Compute the outward normal using central finite differences.
virtual T signedDistance(const Vec3T< T > &a_point) const noexcept=0
Pure virtual signed distance function to be implemented by subclasses.
T value(const Vec3T< T > &a_point) const noexcept final
Implementation of ImplicitFunction::value; delegates to signedDistance().
Three-dimensional vector class with arithmetic operators.
Definition EBGeometry_Vec.hpp:225
Namespace containing all of EBGeometry's functionality.
Definition EBGeometry_AnalyticDistanceFunctions.hpp:31