package me.drton.flightplot.processors;
import java.util.HashMap;
import java.util.Map;
/**
* User: ton Date: 16.06.13 Time: 12:59
*/
public class Abs extends PlotProcessor {
protected String[] param_Fields;
protected double param_Scale;
@Override
public Map<String, Object> getDefaultParameters() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Fields", "LPOS.VX LPOS.VY");
params.put("Scale", 1.0);
return params;
}
@Override
public void init() {
param_Fields = ((String) parameters.get("Fields")).split(WHITESPACE_RE);
param_Scale = (Double) parameters.get("Scale");
addSeries();
}
@Override
public void process(double time, Map<String, Object> update) {
double s = 0.0;
for (String field : param_Fields) {
Object v = update.get(field);
if (v != null && v instanceof Number) {
double d = ((Number) v).doubleValue();
s += d * d;
} else {
return;
}
}
addPoint(0, time, Math.sqrt(s) * param_Scale);
}
}