package com.pixelmaid.dresscode.antlr.types.tree.functions.transforms;
import com.pixelmaid.dresscode.antlr.types.Scope;
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;
import com.pixelmaid.dresscode.drawing.primitive2d.Polygon;
import com.pixelmaid.dresscode.events.CustomEvent;
public class FlattenNode extends NodeEvent implements DCNode {
protected DCNode param;
protected int line;
protected Scope scope;
public FlattenNode(DCNode p,Scope s, int l) {
param = p;
line = l;
scope = s;
//System.out.println("created new drawable node at line:"+line);
}
@Override
public VarType evaluate() {
Drawable d;
d= param.evaluate().asDrawable();
d.hide();
Drawable n = d.flatten(true,new Drawable());
n.setLine(line);
if(d.getIdentifier()!=null){
n.setIdentifier(d.getIdentifier());
}
this.fireDrawableEvent(CustomEvent.DRAWABLE_CREATED, n);
return new VarType(n);
//throw new RuntimeException("Illegal function call: " + this);
}
}