001package sec.geo.shape;
002
003import java.util.ArrayList;
004import sec.geo.GeoPoint;
005
006public class Cake /*extends AComposite implements IPivot*/ {
007
008    private GeoPoint pivot;
009    private ArrayList elements;
010
011    public Cake() {
012        //super();
013        elements = new ArrayList();
014        pivot = new GeoPoint();
015    }
016
017    public void addLayer(Object layer) {    //was AExtrusion
018        if (layer instanceof Polyarc) {
019            ((Polyarc) layer).setPivot(pivot);
020            elements.add(layer);
021        } else if (layer instanceof Radarc) {
022            ((Radarc) layer).setPivot(pivot);
023            elements.add(layer);
024        } else {
025            throw new IllegalArgumentException();
026        }
027    }
028
029    //@Override
030    public void setPivot(GeoPoint pivot) {
031        this.pivot = pivot;
032        for (Object layer : elements) {
033            if (layer instanceof Polyarc) {
034                ((Polyarc) layer).setPivot(pivot);
035                elements.add(layer);
036            } else if (layer instanceof Radarc) {
037                ((Radarc) layer).setPivot(pivot);
038                elements.add(layer);
039            } else if (layer instanceof Circle) {
040                ((Circle) layer).setPivot(pivot);
041                elements.add(layer);
042            }
043            //add other cases AArc, Circle etc
044        }
045    }
046
047    public ArrayList getElements() {
048        return elements;
049    }
050}