11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGEllipse.h"
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGParser.h"
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkParse.h"
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include <stdio.h>
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkSVGAttribute SkSVGEllipse::gAttributes[] = {
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(cx),
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(cy),
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(rx),
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(ry)
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_SVG_INFO(Ellipse)
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkSVGEllipse::translate(SkSVGParser& parser, bool defState) {
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._startElement("oval");
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    INHERITED::translate(parser, defState);
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkScalar cx, cy, rx, ry;
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkParse::FindScalar(f_cx.c_str(), &cx);
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkParse::FindScalar(f_cy.c_str(), &cy);
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkParse::FindScalar(f_rx.c_str(), &rx);
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkParse::FindScalar(f_ry.c_str(), &ry);
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkScalar left, top, right, bottom;
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    left = cx - rx;
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    top = cy - ry;
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    right = cx + rx;
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    bottom = cy + ry;
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    char scratch[16];
384f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger    sprintf(scratch, "%g", SkScalarToDouble(left));
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("left", scratch);
404f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger    sprintf(scratch, "%g", SkScalarToDouble(top));
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("top", scratch);
424f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger    sprintf(scratch, "%g", SkScalarToDouble(right));
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("right", scratch);
444f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger    sprintf(scratch, "%g", SkScalarToDouble(bottom));
450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("bottom", scratch);
460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._endElement();
470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}
48