package com.pixelmaid.dresscode.antlr.types.tree.functions; import java.util.List; 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.math.Geom; import com.pixelmaid.dresscode.drawing.math.PolyBoolean; import com.pixelmaid.dresscode.drawing.primitive2d.Drawable; import com.pixelmaid.dresscode.drawing.primitive2d.Polygon; import com.pixelmaid.dresscode.events.CustomEvent; public class IntersectNode extends NodeEvent implements DCNode { protected List<DCNode> params; protected int line; protected Scope scope; public IntersectNode(List<DCNode> ps) { params = ps; // line = l; //scope = s; //System.out.println("created new drawable node at line:"+line); } @Override public VarType evaluate() { Boolean d= null; VarType v = null; //try{ Drawable aP = params.get(0).evaluate().asDrawable(); Drawable bP = params.get(1).evaluate().asDrawable(); //this.drawableEvent(CustomEvent.REMOVE_DRAWABLE, aP); //this.drawableEvent(CustomEvent.REMOVE_DRAWABLE, bP); d = Geom.polygonIntersect((Polygon)aP.copy().toPolygon(),(Polygon)bP.copy().toPolygon()); // d.setIdentifier(aP.getIdentifier()); v= new VarType(d); //} /*catch (ClassCastException e){ throw new RuntimeException("Illegal union function call at line:"+ line+" : " + this); }*/ return v; } }