package com.flaremicro.visualforecast.icons.impl; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import com.flaremicro.visualforecast.icons.Icon; public class SmallCloudIcon extends Icon { public SmallCloudIcon(int id) { super(id); } private final Ellipse2D.Float[] cloudCircles = new Ellipse2D.Float[]{ new Ellipse2D.Float(0.456F, 0.241F, 0.346F, 0.748F), new Ellipse2D.Float(0.655F, 0.238F, 0.356F, 0.748F), new Ellipse2D.Float(0.480F, 0.043F, 0.341F, 0.523F), new Ellipse2D.Float(0.191F, 0.000F, 0.454F, 0.656F), new Ellipse2D.Float(0.217F, 0.261F, 0.454F, 0.732F), new Ellipse2D.Float(0.000F, 0.199F, 0.428F, 0.801F) }; private final Ellipse2D.Float[] lightCircles = new Ellipse2D.Float[]{ new Ellipse2D.Float(0.196F, 0.052F, 0.439F, 0.748F), new Ellipse2D.Float(0.030F, 0.230F, 0.439F, 0.654F), new Ellipse2D.Float(0.709F, 0.300F, 0.218F, 0.335F), new Ellipse2D.Float(0.429F, 0.498F, 0.218F, 0.335F) }; private final Ellipse2D.Float[] overLight = new Ellipse2D.Float[]{ new Ellipse2D.Float(0.183F, 0.124F, 0.478F, 0.713F), new Ellipse2D.Float(0.040F, 0.264F, 0.478F, 0.713F), new Ellipse2D.Float(0.716F, 0.335F, 0.237F, 0.365F), new Ellipse2D.Float(0.437F, 0.532F, 0.237F, 0.365F) }; @Override public void drawIcon(Graphics2D g2d, float scale, int animationStep) { g2d.setColor(Color.BLACK); g2d.setStroke(new BasicStroke(4/scale)); for(int i = 0; i < cloudCircles.length; i++) { g2d.draw(cloudCircles[i]); } g2d.setColor(Color.LIGHT_GRAY); for(int i = 0; i < cloudCircles.length; i++) { g2d.fill(cloudCircles[i]); } for(int i = 0; i < lightCircles.length; i++) { g2d.setColor(Color.LIGHT_GRAY.brighter()); g2d.fill(lightCircles[i]); g2d.setColor(Color.LIGHT_GRAY); g2d.fill(overLight[i]); } } @Override public boolean isAnimated() { return false; } }