Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMitchellFilterStrategy Class Reference

#include <kis_filter_strategy.h>

+ Inheritance diagram for KisMitchellFilterStrategy:

Public Member Functions

 KisMitchellFilterStrategy ()
 
qreal valueAt (qreal t, qreal weightsPositionScale) const override
 
 ~KisMitchellFilterStrategy () override
 
- Public Member Functions inherited from KisFilterStrategy
virtual QString description ()
 
QString id ()
 
virtual qint32 intSupport (qreal weightsPositionScale)
 
virtual qint32 intValueAt (qint32 t, qreal weightsPositionScale) const
 
 KisFilterStrategy (KoID id)
 
QString name ()
 
virtual qreal support (qreal weightsPositionScale)
 
virtual ~KisFilterStrategy ()
 

Additional Inherited Members

- Protected Attributes inherited from KisFilterStrategy
qint32 intSupportVal {0}
 
KoID m_id
 
qreal supportVal {0.0}
 

Detailed Description

Definition at line 160 of file kis_filter_strategy.h.

Constructor & Destructor Documentation

◆ KisMitchellFilterStrategy()

KisMitchellFilterStrategy::KisMitchellFilterStrategy ( )
inline

Definition at line 163 of file kis_filter_strategy.h.

163 : KisFilterStrategy(KoID("Mitchell", i18n("Mitchell"))) {
164 supportVal = 2.0; intSupportVal = 256;
165 }
Definition KoID.h:30

◆ ~KisMitchellFilterStrategy()

KisMitchellFilterStrategy::~KisMitchellFilterStrategy ( )
inlineoverride

Definition at line 166 of file kis_filter_strategy.h.

166{}

Member Function Documentation

◆ valueAt()

qreal KisMitchellFilterStrategy::valueAt ( qreal t,
qreal weightsPositionScale ) const
overridevirtual

Reimplemented from KisFilterStrategy.

Definition at line 172 of file kis_filter_strategy.cc.

173{
174 Q_UNUSED(weightsPositionScale);
175 const qreal B = 1.0 / 3.0;
176 const qreal C = 1.0 / 3.0;
177 qreal tt;
178
179 tt = t * t;
180 if (t < 0) t = -t;
181 if (t < 1.0) {
182 t = (((12.0 - 9.0 * B - 6.0 * C) * (t * tt)) + ((-18.0 + 12.0 * B + 6.0 * C) * tt) + (6.0 - 2 * B));
183 return(t / 6.0);
184 } else if (t < 2.0) {
185 t = (((-1.0 * B - 6.0 * C) * (t * tt)) + ((6.0 * B + 30.0 * C) * tt) + ((-12.0 * B - 48.0 * C) * t) + (8.0 * B + 24 * C));
186 return(t / 6.0);
187 }
188 return(0.0);
189}
#define C(i, j)

References B, and C.


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