package me.drton.flightplot.processors; import java.util.Map; /** * User: ton Date: 04.11.13 Time: 23:11 */ public class Integral extends Simple { private double param_In_Offset; private double[] integrals; private double[] times; @Override public Map<String, Object> getDefaultParameters() { Map<String, Object> params = super.getDefaultParameters(); params.put("In Offset", 0.0); return params; } @Override public void init() { super.init(); param_In_Offset = (Double) parameters.get("In Offset"); integrals = new double[param_Fields.length]; times = new double[param_Fields.length]; for (int i = 0; i < integrals.length; i++) { integrals[i] = 0.0; times[i] = Double.NaN; } } @Override protected double preProcessValue(int idx, double time, double in) { if (!Double.isNaN(times[idx])) { integrals[idx] += (in + param_In_Offset) * (time - times[idx]); } times[idx] = time; return integrals[idx]; } }