package com.pixelmaid.dresscode.antlr.types.tree;
import java.util.List;
import java.util.Random;
import com.pixelmaid.dresscode.antlr.types.VarType;
import com.pixelmaid.dresscode.app.DisplayFrame;
public class GaussianNode extends NodeEvent implements DCNode {
protected List<DCNode> params;
protected int line;
public GaussianNode(List<DCNode> ps, int l) {
params = ps;
line = l;
System.out.println("created new gaussian node at line:"+line);
}
@Override
public VarType evaluate() {
System.out.println("attempting to evaluate gaussian");
try{
double mean= params.get(0).evaluate().asDouble();
double sd = params.get(1).evaluate().asDouble();
Random r = DisplayFrame.mainRandom;
double num = sd *r.nextGaussian()+mean;
return new VarType(num);
}
catch (ClassCastException e){
throw new RuntimeException("Illegal random function call at line:"+ line+" : " + this);
}
}
}