package stat; import java.awt.*; import parameters.Parameter; import parameters.ParameterSet; import parameters.ParameterSetArray; import iterators.MultiFloatReturn; import main.Globals; import main.GlobalIO; /** Calculates the distance between the centers of the current and compare parameter set arrays. Distance is just euclidean distance along each parameter axis, where the axes have been scaled by their ranges. */ public class CenterCenterDistanceStat extends Stat implements Runnable { public CenterCenterDistanceStat() {} public void calculateStat() { int i; if(paramSets == null) { GlobalIO.printlnGeneral("No wheel loaded - Stat did nothing"); return; } try { makeOutputFile(); GlobalIO.printlnGeneral("Starting calculation - this may take a while", false); ParameterSetArray paramSets2 = Globals.getCompareParamSetArray(); if(paramSets2 == null) { GlobalIO.printlnGeneral("No second wheel set - Stat did nothing"); return; } MultiFloatReturn mfr = paramSets.calculateDistancesToSet(paramSets2); printlnToFile(paramSets.getFilename() + "\t" + paramSets2.getFilename() + "\t" + mfr.f1 + "\t" + mfr.f2); GlobalIO.printlnGeneral(paramSets.getFilename() + "\t" + paramSets2.getFilename() + "\t" + mfr.f1 + "\t" + mfr.f2, false); closeOutputFile(); } catch(Exception e) { System.out.println("Error in CenterCenterDistanceStat: " + e.toString()); } GlobalIO.printlnGeneral("Finished calculating", false); } }