package org.andengine.extension.svg.util; import org.andengine.extension.svg.adt.SVGPaint; import org.andengine.extension.svg.adt.SVGProperties; import org.andengine.extension.svg.util.constants.ISVGConstants; import android.graphics.Canvas; import android.graphics.RectF; /** * (c) 2010 Nicolas Gramlich * (c) 2011 Zynga Inc. * * @author Nicolas Gramlich * @since 19:57:25 - 25.05.2011 */ public class SVGEllipseParser implements ISVGConstants { // =========================================================== // Constants // =========================================================== // =========================================================== // Fields // =========================================================== // =========================================================== // Constructors // =========================================================== // =========================================================== // Getter & Setter // =========================================================== // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== // =========================================================== // Methods // =========================================================== public static void parse(final SVGProperties pSVGProperties, final Canvas pCanvas, final SVGPaint pSVGPaint, final RectF pRect) { final Float centerX = pSVGProperties.getFloatAttribute(ATTRIBUTE_CENTER_X); final Float centerY = pSVGProperties.getFloatAttribute(ATTRIBUTE_CENTER_Y); final Float radiusX = pSVGProperties.getFloatAttribute(ATTRIBUTE_RADIUS_X); final Float radiusY = pSVGProperties.getFloatAttribute(ATTRIBUTE_RADIUS_Y); if (centerX != null && centerY != null && radiusX != null && radiusY != null) { pRect.set(centerX - radiusX, centerY - radiusY, centerX + radiusX, centerY + radiusY); final boolean fill = pSVGPaint.setFill(pSVGProperties); if (fill) { pCanvas.drawOval(pRect, pSVGPaint.getPaint()); } final boolean stroke = pSVGPaint.setStroke(pSVGProperties); if (stroke) { pCanvas.drawOval(pRect, pSVGPaint.getPaint()); } if(fill || stroke) { pSVGPaint.ensureComputedBoundsInclude(centerX - radiusX, centerY - radiusY); pSVGPaint.ensureComputedBoundsInclude(centerX + radiusX, centerY + radiusY); } } } // =========================================================== // Inner and Anonymous Classes // =========================================================== }