12 #ifndef EBGeometry_Transform
13 #define EBGeometry_Transform
25 std::shared_ptr<ImplicitFunction<T>>
34 std::shared_ptr<ImplicitFunction<T>>
44 std::shared_ptr<ImplicitFunction<T>>
53 std::shared_ptr<ImplicitFunction<T>>
62 std::shared_ptr<ImplicitFunction<T>>
71 std::shared_ptr<ImplicitFunction<T>>
80 std::shared_ptr<ImplicitFunction<T>>
90 std::shared_ptr<ImplicitFunction<T>>
93 const size_t a_mollifierSamples = 2) noexcept;
211 const size_t a_axis) noexcept;
401 const T a_blurDistance,
402 const T a_alpha = 0.5) noexcept;
455 const size_t a_numPoints) noexcept;
483 std::vector<std::pair<
Vec3T<T>, T>> m_sampledMollifier;
572 #include "EBGeometry_NamespaceFooter.hpp"
574 #include "EBGeometry_TransformImplem.hpp"
Abstract base class for representing an implicit function.
Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools.
Annular implicit function function. Creates a shell out of the implicit function.
Definition: EBGeometry_Transform.hpp:341
virtual T value(const Vec3T< T > &a_point) const noexcept override
Value function.
std::shared_ptr< const ImplicitFunction< T > > m_implicitFunction
Original implicit function.
Definition: EBGeometry_Transform.hpp:371
T m_delta
Shell thickness.
Definition: EBGeometry_Transform.hpp:376
AnnularIF()=delete
Disallowed weak construction.
AnnularIF(const std::shared_ptr< ImplicitFunction< T >> a_implicitFunction, const T a_delta)
Full constructor.
virtual ~AnnularIF()
Destructor.
Blurred/interpolated implicit function - can be used for smoothing.
Definition: EBGeometry_Transform.hpp:387
BlurIF()=delete
Disallowed weak constructino.
BlurIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_blurDistance, const T a_alpha=0.5) noexcept
Full constructor.
Complemented implicit function.
Definition: EBGeometry_Transform.hpp:118
ComplementIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction) noexcept
Full constructor.
std::shared_ptr< ImplicitFunction< T > > m_implicitFunction
Implicit function.
Definition: EBGeometry_Transform.hpp:146
virtual ~ComplementIF()
Destructor (does nothing)
virtual T value(const Vec3T< T > &a_point) const noexcept override
Value function.
ComplementIF()=delete
No weak construction for this one.
Implicit function which is an elongation of another implicit function along some axis.
Definition: EBGeometry_Transform.hpp:491
virtual ~ElongateIF() noexcept
Destructor.
ElongateIF()=delete
Disallowed weak construction.
ElongateIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const Vec3T< T > &a_elongation) noexcept
Full constructor.
Abstract representation of an implicit function function (not necessarily signed distance).
Definition: EBGeometry_ImplicitFunction.hpp:27
Mollified implicit function.
Definition: EBGeometry_Transform.hpp:438
virtual ~MollifyIF() noexcept
Destructor.
MollifyIF()=delete
Disallowed weak construction.
MollifyIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const std::shared_ptr< ImplicitFunction< T >> &a_mollifier, const T a_maxValue, const size_t a_numPoints) noexcept
Full constructor.
Offset implicit function. Offsets the implicit function using the input value.
Definition: EBGeometry_Transform.hpp:256
OffsetIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_offset) noexcept
Rounded SDF. Rounds the input SDF.
std::shared_ptr< ImplicitFunction< T > > m_implicitFunction
Underlying implicit function.
Definition: EBGeometry_Transform.hpp:285
virtual ~OffsetIF()
Destructor.
T m_offset
Offset value.
Definition: EBGeometry_Transform.hpp:290
OffsetIF()=delete
Disallowed weak construction.
virtual T value(const Vec3T< T > &a_point) const noexcept override
Implementation of value function with offset.
Implicit function which is a reflection of another implicit function.
Definition: EBGeometry_Transform.hpp:534
virtual ~ReflectIF() noexcept
Destructor.
ReflectIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const size_t &a_reflectPlane) noexcept
Full constructor. Reflects around the input plane (0=yz-plane, 1=xz-plane, 2=xy-plane).
ReflectIF()=delete
Disallowed weak construction.
Rotated implicit function. Rotates an implicit function about an axis.
Definition: EBGeometry_Transform.hpp:196
virtual ~RotateIF()
Destructor.
T m_sinAngle
Parameter in rotation matrix. Stored for efficiency.
Definition: EBGeometry_Transform.hpp:248
std::shared_ptr< ImplicitFunction< T > > m_implicitFunction
Underlying implicit function.
Definition: EBGeometry_Transform.hpp:228
RotateIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_angle, const size_t a_axis) noexcept
Rounded SDF. Rounds the input SDF.
RotateIF()=delete
No weak construction.
T m_angle
Angle to rotate.
Definition: EBGeometry_Transform.hpp:238
T m_cosAngle
Parameter in rotation matrix. Stored for efficiency.
Definition: EBGeometry_Transform.hpp:243
size_t m_axis
Axis to rotate about.
Definition: EBGeometry_Transform.hpp:233
virtual T value(const Vec3T< T > &a_point) const noexcept override
Implementation of value function with rotation.
Scaled implicit function.
Definition: EBGeometry_Transform.hpp:298
T m_scale
Scaling factor.
Definition: EBGeometry_Transform.hpp:333
virtual T value(const Vec3T< T > &a_point) const noexcept override
Value function.
ScaleIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_scale) noexcept
Scaled implicit function.
ScaleIF()=delete
Disallowed weak construction.
std::shared_ptr< ImplicitFunction< T > > m_implicitFunction
Original implicit function.
Definition: EBGeometry_Transform.hpp:328
virtual ~ScaleIF() noexcept
Destructor.
Translated implicit function.
Definition: EBGeometry_Transform.hpp:154
Vec3T< T > m_shift
Input point translate.
Definition: EBGeometry_Transform.hpp:188
virtual ~TranslateIF()
Destructor (does nothing)
virtual T value(const Vec3T< T > &a_point) const noexcept override
Value function.
TranslateIF()=delete
No weak construction for this one.
TranslateIF(const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const Vec3T< T > &a_shift) noexcept
Full constructor.
std::shared_ptr< ImplicitFunction< T > > m_implicitFunction
Underlying implicit function.
Definition: EBGeometry_Transform.hpp:183
Three-dimensional vector class with arithmetic operators.
Definition: EBGeometry_Vec.hpp:218