package com.pixelmaid.dresscode.antlr.types.tree.functions.transforms; import java.util.List; import com.pixelmaid.dresscode.antlr.types.VarType; import com.pixelmaid.dresscode.antlr.types.tree.DCNode; import com.pixelmaid.dresscode.antlr.types.tree.NodeEvent; import com.pixelmaid.dresscode.drawing.primitive2d.Drawable; public class WeightNode extends NodeEvent implements DCNode { protected List<DCNode> params; protected int line; public WeightNode(List<DCNode> ps, int l) { params = ps; line = l; } @Override public VarType evaluate() { Drawable d; if(params.size()!=2){ throw new RuntimeException("Incorrect number of parameters for weight at line " + line); } try{ d= (params.get(0).evaluate().asDrawable()); double w = params.get(1).evaluate().asDouble(); d.setStrokeWeight(w); d.setLine(line); return new VarType(d); } catch (ClassCastException e){ throw new RuntimeException("Illegal weight function call at line:"+ line+" : " + this); } } }