package com.pixelmaid.dresscode.antlr.types.tree; import java.util.List; import com.pixelmaid.dresscode.antlr.types.VarType; import com.pixelmaid.dresscode.app.DisplayFrame; public class NoiseNode extends NodeEvent implements DCNode { protected List<DCNode> params; protected int line; public NoiseNode(List<DCNode> ps, int l) { params = ps; line = l; //System.out.println("created new drawable node at line:"+line); } @Override public VarType evaluate() { try{ double num =0; double x=0; double y=0; double z = 0; if(params.size()==1){ x= params.get(0).evaluate().asDouble(); num = DisplayFrame.noise.noise(x); } else if(params.size()==2){ x= params.get(0).evaluate().asDouble(); y = params.get(1).evaluate().asDouble(); num = DisplayFrame.noise.noise(x,y); } else if(params.size()==3){ x= params.get(0).evaluate().asDouble(); y = params.get(1).evaluate().asDouble(); y = params.get(2).evaluate().asDouble(); num = DisplayFrame.noise.noise(x,y,z); } return new VarType(num); } catch (ClassCastException e){ throw new RuntimeException("Illegal noise function call at line:"+ line+" : " + this); } } }