Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAntialiasingFadeMaker1D< BaseFade > Class Template Reference

#include <kis_antialiasing_fade_maker.h>

Public Member Functions

 KisAntialiasingFadeMaker1D (const BaseFade &baseFade, bool enableAntialiasing)
 
 KisAntialiasingFadeMaker1D (const KisAntialiasingFadeMaker1D &rhs, const BaseFade &baseFade)
 
bool needFade (qreal dist, quint8 *value)
 
template<typename A >
xsimd::batch_bool< float, AneedFade (xsimd::batch< float, A > &dist)
 
void setRadius (qreal radius)
 
void setSquareNormCoeffs (qreal xcoeff, qreal ycoeff)
 

Private Attributes

qreal m_antialiasingFadeCoeff
 
qreal m_antialiasingFadeStart
 
const BaseFade & m_baseFade
 
bool m_enableAntialiasing
 
quint8 m_fadeStartValue
 
qreal m_radius
 

Detailed Description

template<class BaseFade>
class KisAntialiasingFadeMaker1D< BaseFade >

Definition at line 16 of file kis_antialiasing_fade_maker.h.

Constructor & Destructor Documentation

◆ KisAntialiasingFadeMaker1D() [1/2]

template<class BaseFade >
KisAntialiasingFadeMaker1D< BaseFade >::KisAntialiasingFadeMaker1D ( const BaseFade & baseFade,
bool enableAntialiasing )
inline

◆ KisAntialiasingFadeMaker1D() [2/2]

template<class BaseFade >
KisAntialiasingFadeMaker1D< BaseFade >::KisAntialiasingFadeMaker1D ( const KisAntialiasingFadeMaker1D< BaseFade > & rhs,
const BaseFade & baseFade )
inline

Member Function Documentation

◆ needFade() [1/2]

template<class BaseFade >
bool KisAntialiasingFadeMaker1D< BaseFade >::needFade ( qreal dist,
quint8 * value )
inline

◆ needFade() [2/2]

template<class BaseFade >
template<typename A >
xsimd::batch_bool< float, A > KisAntialiasingFadeMaker1D< BaseFade >::needFade ( xsimd::batch< float, A > & dist)
inline

Definition at line 82 of file kis_antialiasing_fade_maker.h.

83 {
84 using float_v = xsimd::batch<float, A>;
85 using float_m = typename float_v::batch_bool_type;
86
87 const float_v vOne(1);
88 const float_v vValMax(255.f);
89
90 const float_v vRadius(m_radius);
91 const float_v vFadeStartValue(m_fadeStartValue);
92 const float_v vAntialiasingFadeStart(m_antialiasingFadeStart);
93 const float_v vAntialiasingFadeCoeff(m_antialiasingFadeCoeff);
94
95 const float_m outsideMask = dist > vRadius;
96 dist = xsimd::set_one(dist, outsideMask);
97
98 float_m fadeStartMask(false);
99
101 fadeStartMask = dist > vAntialiasingFadeStart;
102 dist = xsimd::select((outsideMask ^ fadeStartMask) & fadeStartMask,
103 (vFadeStartValue + (dist - vAntialiasingFadeStart) * vAntialiasingFadeCoeff) / vValMax,
104 dist);
105 }
106 return (outsideMask | fadeStartMask);
107 }
auto set_one(const batch< T, A > &src, const batch_bool< T, A > &mask) noexcept

References KisAntialiasingFadeMaker1D< BaseFade >::m_antialiasingFadeCoeff, KisAntialiasingFadeMaker1D< BaseFade >::m_antialiasingFadeStart, KisAntialiasingFadeMaker1D< BaseFade >::m_enableAntialiasing, KisAntialiasingFadeMaker1D< BaseFade >::m_fadeStartValue, KisAntialiasingFadeMaker1D< BaseFade >::m_radius, and xsimd::set_one().

◆ setRadius()

◆ setSquareNormCoeffs()

template<class BaseFade >
void KisAntialiasingFadeMaker1D< BaseFade >::setSquareNormCoeffs ( qreal xcoeff,
qreal ycoeff )
inline

Member Data Documentation

◆ m_antialiasingFadeCoeff

template<class BaseFade >
qreal KisAntialiasingFadeMaker1D< BaseFade >::m_antialiasingFadeCoeff
private

Definition at line 115 of file kis_antialiasing_fade_maker.h.

◆ m_antialiasingFadeStart

template<class BaseFade >
qreal KisAntialiasingFadeMaker1D< BaseFade >::m_antialiasingFadeStart
private

Definition at line 114 of file kis_antialiasing_fade_maker.h.

◆ m_baseFade

template<class BaseFade >
const BaseFade& KisAntialiasingFadeMaker1D< BaseFade >::m_baseFade
private

Definition at line 117 of file kis_antialiasing_fade_maker.h.

◆ m_enableAntialiasing

template<class BaseFade >
bool KisAntialiasingFadeMaker1D< BaseFade >::m_enableAntialiasing
private

Definition at line 116 of file kis_antialiasing_fade_maker.h.

◆ m_fadeStartValue

template<class BaseFade >
quint8 KisAntialiasingFadeMaker1D< BaseFade >::m_fadeStartValue
private

Definition at line 113 of file kis_antialiasing_fade_maker.h.

◆ m_radius

template<class BaseFade >
qreal KisAntialiasingFadeMaker1D< BaseFade >::m_radius
private

Definition at line 112 of file kis_antialiasing_fade_maker.h.


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