} else if ( cname == "debug" ) {
debug = child->getBoolValue();
} else if ( cname == "type" ) {
- filterType = cval;
+ if ( cval == "exponential" ) {
+ filterType = exponential;
+ } else if (cval == "double-exponential") {
+ filterType = doubleExponential;
+ } else if (cval == "moving-average") {
+ filterType = movingAverage;
+ } else if (cval == "noise-spike") {
+ filterType = noiseSpike;
+ }
} else if ( cname == "input" ) {
input_prop = fgGetNode( child->getStringValue(), true );
} else if ( cname == "filter-time" ) {
*
*/
- if (filterType == "exponential")
+ if (filterType == exponential)
{
double alpha = 1 / ((Tf/dt) + 1);
output.push_front(alpha * input[0] +
}
output.resize(1);
}
- else if (filterType == "double-exponential")
+ else if (filterType == doubleExponential)
{
double alpha = 1 / ((Tf/dt) + 1);
output.push_front(alpha * alpha * input[0] +
}
output.resize(2);
}
- else if (filterType == "moving-average")
+ else if (filterType == movingAverage)
{
output.push_front(output[0] +
(input[0] - input.back()) / samples);
}
output.resize(1);
}
- else if (filterType == "noise-spike")
+ else if (filterType == noiseSpike)
{
double maxChange = rateOfChange * dt;