00001 package de.tum.in.fipm.kipm.gui.visualisation.items; 00002 00003 import java.util.ArrayList; 00004 00005 import edu.tum.cs.vis.Canvas; 00006 00012 public class MultiEllipse extends ItemBase { 00013 private ArrayList<float[]> data; 00014 private ArrayList<Integer> colors; 00015 private float z; 00016 00017 public MultiEllipse(float z) 00018 { 00019 this.z = z; 00020 colors = new ArrayList<Integer>(); 00021 data = new ArrayList<float[]>(); 00022 } 00023 00024 public void addEllipse(float x, float y, float xVar, float yVar, int color) { 00025 this.colors.add(color); 00026 this.data.add(new float[] {x,y,xVar,yVar}); 00027 } 00028 00029 public void addPoint(float x, float y, int color) { 00030 this.colors.add(color); 00031 this.data.add(new float[] {x,y,2.5f,2.5f}); 00032 } 00033 00034 @Override 00035 public void setColor(int color) { 00036 } 00037 00038 @Override 00039 public void setColor(int color, int start, int end) { 00040 } 00041 00042 public void draw(Canvas c, int step) { 00043 c.pushMatrix(); 00044 if(trafoMatrix != null) 00045 c.applyMatrix(trafoMatrix[0], trafoMatrix[1], trafoMatrix[2], trafoMatrix[3], 00046 trafoMatrix[4], trafoMatrix[5], trafoMatrix[6], trafoMatrix[7], 00047 trafoMatrix[8], trafoMatrix[9], trafoMatrix[10], trafoMatrix[11], 00048 trafoMatrix[12], trafoMatrix[13], trafoMatrix[14], trafoMatrix[15]); 00049 c.translate(0, 0, -z); 00050 for(int i=0;i<colors.size();i++) { 00051 c.fill(colorOverride!=0 ? colorOverride : colors.get(i)); 00052 c.ellipse(data.get(i)[0],data.get(i)[1],data.get(i)[2],data.get(i)[3]); 00053 } 00054 c.popMatrix(); 00055 } 00056 00057 }