22 #ifndef QDENGINE_QDCORE_UTIL_FILTERS_H 23 #define QDENGINE_QDCORE_UTIL_FILTERS_H 36 double getWidth()
const {
39 void setWidth(
double dWidth) {
43 virtual double filter(
double dVal) = 0;
47 #define FILTER_PI double (3.1415926535897932384626433832795) 48 #define FILTER_2PI double (2.0 * 3.1415926535897932384626433832795) 49 #define FILTER_4PI double (4.0 * 3.1415926535897932384626433832795) 59 double filter(
double dVal) {
60 return (fabs(dVal) <= _dWidth ? 1.0 : 0.0);
69 double filter(
double dVal) {
71 return (dVal < _dWidth ? _dWidth - dVal : 0.0);
80 double filter(
double dVal) {
81 if (fabs(dVal) > _dWidth) {
84 return exp(-dVal * dVal / 2.0) / sqrt(FILTER_2PI);
93 double filter(
double dVal) {
94 if (fabs(dVal) > _dWidth)
97 double dWindow = 0.54 + 0.46 * cos(FILTER_2PI * dVal);
98 double dSinc = (dVal == 0) ? 1.0 : sin(FILTER_PI * dVal) / (FILTER_PI * dVal);
99 return dWindow * dSinc;
108 double filter(
double dVal) {
109 if (fabs(dVal) > _dWidth)
112 double dN = 2.0 * _dWidth + 1.0;
113 return 0.42 + 0.5 * cos(FILTER_2PI * dVal / (dN - 1.0)) + 0.08 * cos(FILTER_4PI * dVal / (dN - 1.0));
121 #endif // QDENGINE_QDCORE_UTIL_FILTERS_H
Definition: Filters.h:103
Базовый класс для игровых ресурсов.
Definition: console.h:28