EBGeometry  1.0
Classes | Functions
EBGeometry_Transform.hpp File Reference

Various transformations for implicit functions and distance fields. More...

#include "EBGeometry_ImplicitFunction.hpp"
#include "EBGeometry_Vec.hpp"
#include "EBGeometry_NamespaceHeader.hpp"
#include "EBGeometry_NamespaceFooter.hpp"
#include "EBGeometry_TransformImplem.hpp"
Include dependency graph for EBGeometry_Transform.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ComplementIF< T >
 Complemented implicit function. More...
 
class  TranslateIF< T >
 Translated implicit function. More...
 
class  RotateIF< T >
 Rotated implicit function. Rotates an implicit function about an axis. More...
 
class  OffsetIF< T >
 Offset implicit function. Offsets the implicit function using the input value. More...
 
class  ScaleIF< T >
 Scaled implicit function. More...
 
class  AnnularIF< T >
 Annular implicit function function. Creates a shell out of the implicit function. More...
 
class  BlurIF< T >
 Blurred/interpolated implicit function - can be used for smoothing. More...
 
class  MollifyIF< T >
 Mollified implicit function. More...
 
class  ElongateIF< T >
 Implicit function which is an elongation of another implicit function along some axis. More...
 
class  ReflectIF< T >
 Implicit function which is a reflection of another implicit function. More...
 

Functions

template<class T >
std::shared_ptr< ImplicitFunction< T > > Complement (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction) noexcept
 Convenience function for taking the complement of an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Translate (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const Vec3T< T > &a_shift) noexcept
 Convenience function for translating an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Rotate (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_angle, const size_t a_axis) noexcept
 Convenience function for rotating an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Scale (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_scale) noexcept
 Convenience function for scaling an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Offset (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_offset) noexcept
 Convenience function for offsetting an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Annular (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_delta) noexcept
 Convenience function for creating a shell out of an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Blur (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_blurDistance) noexcept
 Convenience function for blurring an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Mollify (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const T a_dist, const size_t a_mollifierSamples=2) noexcept
 Convenience function for mollification with an input sphere. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Elongate (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const Vec3T< T > &a_elongation) noexcept
 Convenience function for elongating (stretching) an implicit function. More...
 
template<class T >
std::shared_ptr< ImplicitFunction< T > > Reflect (const std::shared_ptr< ImplicitFunction< T >> &a_implicitFunction, const size_t &a_reflectPlane) noexcept
 Convenience function for reflecting an implicit function. More...
 

Detailed Description

Various transformations for implicit functions and distance fields.

Author
Robert Marskar

Function Documentation

◆ Annular()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Annular ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const T  a_delta 
)
noexcept

Convenience function for creating a shell out of an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function to be shelled.
[in]a_deltaShell thickness

◆ Blur()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Blur ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const T  a_blurDistance 
)
noexcept

Convenience function for blurring an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function to be blurred
[in]a_blurDistanceSmoothing distance

◆ Complement()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Complement ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction)
noexcept

Convenience function for taking the complement of an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function

◆ Elongate()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Elongate ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const Vec3T< T > &  a_elongation 
)
noexcept

Convenience function for elongating (stretching) an implicit function.

Parameters
[in]a_implicitFunctionImplicit function to be elongated
[in]a_elongationElongation

◆ Mollify()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Mollify ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const T  a_dist,
const size_t  a_mollifierSamples = 2 
)
noexcept

Convenience function for mollification with an input sphere.

Parameters
[in]a_implicitFunctionInput implicit function to be mollifier
[in]a_distMollification distance.
[in]a_mollifierSamplesNumber of samples for the mollifier

◆ Offset()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Offset ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const T  a_offset 
)
noexcept

Convenience function for offsetting an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function to be offset
[in]a_offsetOffset distance

◆ Reflect()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Reflect ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const size_t &  a_reflectPlane 
)
noexcept

Convenience function for reflecting an implicit function.

Parameters
[in]a_implicitFunctionImplicit function to be reflected
[in]a_reflectPlanePlane to reflect across (0=yz-plane, 1=xz-plane, 2=xy-plane).

◆ Rotate()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Rotate ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const T  a_angle,
const size_t  a_axis 
)
noexcept

Convenience function for rotating an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function to be rotated.
[in]a_angleAngle to be rotated by (in degrees)
[in]a_axisAxis to rotate about

◆ Scale()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Scale ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const T  a_scale 
)
noexcept

Convenience function for scaling an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function to be scaled.
[in]a_scaleScaling factor

◆ Translate()

template<class T >
std::shared_ptr<ImplicitFunction<T> > Translate ( const std::shared_ptr< ImplicitFunction< T >> &  a_implicitFunction,
const Vec3T< T > &  a_shift 
)
noexcept

Convenience function for translating an implicit function.

Parameters
[in]a_implicitFunctionInput implicit function to be translated
[in]a_shiftDistance to shift