OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
olb::IndicScale< S, D > Class Template Reference

#include <indicMod.h>

+ Inheritance diagram for olb::IndicScale< S, D >:
+ Collaboration diagram for olb::IndicScale< S, D >:

Public Member Functions

 IndicScale (FunctorPtr< IndicatorF< S, D > > f, S scalingFactor=S {1})
 
void setScalingFactor (const S scalingFactor)
 
getScalingFactor ()
 
Vector< S, D > getEstimatedCenter ()
 
signedDistance (const Vector< S, D > &input)
 

Protected Attributes

FunctorPtr< IndicatorF< S, D > > _f
 
_scalingFactor
 

Detailed Description

template<typename S, unsigned D>
class olb::IndicScale< S, D >

Definition at line 45 of file indicMod.h.

Constructor & Destructor Documentation

◆ IndicScale()

template<typename S , unsigned D>
olb::IndicScale< S, D >::IndicScale ( FunctorPtr< IndicatorF< S, D > > f,
S scalingFactor = S {1} )

Definition at line 61 of file indicMod.hh.

62 : _f(std::move(f))
63{
64 setScalingFactor(scalingFactor);
65}
void setScalingFactor(const S scalingFactor)
Definition indicMod.hh:68
FunctorPtr< IndicatorF< S, D > > _f
Definition indicMod.h:47

References olb::IndicScale< S, D >::setScalingFactor().

+ Here is the call graph for this function:

Member Function Documentation

◆ getEstimatedCenter()

template<typename S , unsigned D>
Vector< S, D > olb::IndicScale< S, D >::getEstimatedCenter ( )

Definition at line 82 of file indicMod.hh.

83{
84 return 0.5 * (_f->getMin() + _f->getMax());
85}

◆ getScalingFactor()

template<typename S , unsigned D>
S olb::IndicScale< S, D >::getScalingFactor ( )

Definition at line 76 of file indicMod.hh.

77{
78 return _scalingFactor;
79}

◆ setScalingFactor()

template<typename S , unsigned D>
void olb::IndicScale< S, D >::setScalingFactor ( const S scalingFactor)

Definition at line 68 of file indicMod.hh.

69{
70 _scalingFactor = scalingFactor;
71 this->_myMin = _f->getMin() - scalingFactor*_f->getMin();
72 this->_myMax = _f->getMax() + scalingFactor*_f->getMax();
73}
+ Here is the caller graph for this function:

◆ signedDistance()

template<typename S , unsigned D>
S olb::IndicScale< S, D >::signedDistance ( const Vector< S, D > & input)

Definition at line 89 of file indicMod.hh.

90{
91 std::function<S(const Vector<S, D>&)> sdf =
92 [this](const Vector<S, D>& input) {
93 return this->_f->signedDistance(input);
94 };
95
96 return sdf::scale(sdf, input, _scalingFactor);
97}
T scale(std::function< T(const Vector< T, D > &)> sdf, const Vector< T, D > &p, T s, const Vector< T, D > &center=(T(0))) any_platform
Function to scale a geometry The object has to be placed in the origin of the coodinate system.
Definition sdf.h:437

References olb::sdf::scale().

+ Here is the call graph for this function:

Member Data Documentation

◆ _f

template<typename S , unsigned D>
FunctorPtr<IndicatorF<S, D> > olb::IndicScale< S, D >::_f
protected

Definition at line 47 of file indicMod.h.

◆ _scalingFactor

template<typename S , unsigned D>
S olb::IndicScale< S, D >::_scalingFactor
protected

Definition at line 48 of file indicMod.h.


The documentation for this class was generated from the following files: