package builtin.graphics;
import builtin.BuiltinSub;
import java.util.ArrayList;
import gui.Heap;
import gui.MintException;
import gui.MintObject;
import gui.Pointer;
import gui.PointerTools;
import gui.SmartList;
/**
* @author Oliver Chu
*/
public class Polygon extends BuiltinSub {
@Override
public Pointer apply(SmartList<Pointer> args) throws MintException {
try {
ArrayList<Integer> dim = new ArrayList<Integer>();
SmartList<Pointer> args2 =
PointerTools.dereferenceList(args.get(0));
for (Pointer p : args2) {
dim.add(PointerTools.dereferenceInt(p));
}
return Heap.allocateShape(new Shape(Shape.POLYGON, dim));
} catch (Throwable t) {
if (args.isEmpty()) {
return Heap.allocateObject(new MintObject());
}
ArrayList<Integer> dimSum = new ArrayList<Integer>();
for (Pointer p : args) {
dimSum.add(p.value);
}
return Heap.allocateShape(new Shape(Shape.POLYGON, dimSum));
}
}
}