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}