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

#include <kis_filter_strategy.h>

+ Inheritance diagram for KisHermiteFilterStrategy:

Public Member Functions

qint32 intValueAt (qint32 t, qreal weightsPositionScale) const override
 
 KisHermiteFilterStrategy ()
 
qreal valueAt (qreal t, qreal weightsPositionScale) const override
 
 ~KisHermiteFilterStrategy () override
 
- Public Member Functions inherited from KisFilterStrategy
virtual QString description ()
 
QString id ()
 
virtual qint32 intSupport (qreal weightsPositionScale)
 
 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 57 of file kis_filter_strategy.h.

Constructor & Destructor Documentation

◆ KisHermiteFilterStrategy()

KisHermiteFilterStrategy::KisHermiteFilterStrategy ( )
inline

Definition at line 60 of file kis_filter_strategy.h.

60 : KisFilterStrategy(KoID("Hermite", i18n("Hermite"))) {
61 supportVal = 1.0; intSupportVal = 256;
62 }
Definition KoID.h:30

◆ ~KisHermiteFilterStrategy()

KisHermiteFilterStrategy::~KisHermiteFilterStrategy ( )
inlineoverride

Definition at line 63 of file kis_filter_strategy.h.

63{}

Member Function Documentation

◆ intValueAt()

qint32 KisHermiteFilterStrategy::intValueAt ( qint32 t,
qreal weightsPositionScale ) const
overridevirtual

Reimplemented from KisFilterStrategy.

Definition at line 31 of file kis_filter_strategy.cc.

32{
33 Q_UNUSED(weightsPositionScale);
34 /* f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 */
35 if (t < 0) t = -t;
36 if (t < 256) {
37 t = (2 * t - 3 * 256) * t * t + (256 << 16);
38
39 //go from .24 fixed point to .8 fixedpoint (hack only works with positive numbers, which it is)
40 t = (t + 0x8000) >> 16;
41
42 // go from .8 fixed point to 8bitscale. ie t = (t*255)/256;
43 if (t >= 128)
44 return t - 1;
45 return t;
46 }
47 return(0);
48}

◆ valueAt()

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

Reimplemented from KisFilterStrategy.

Definition at line 22 of file kis_filter_strategy.cc.

23{
24 Q_UNUSED(weightsPositionScale);
25 /* f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 */
26 if (t < 0.0) t = -t;
27 if (t < 1.0) return((2.0 * t - 3.0) * t * t + 1.0);
28 return(0.0);
29}

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