aboutsummaryrefslogtreecommitdiffhomepage
path: root/libs/graphics/svg/SkSVGCircle.cpp
blob: e964229f4c2547e308cd474af6cd7d101a8d1543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "SkSVGCircle.h"
#include "SkSVGParser.h"
#include "SkParse.h"
#include <stdio.h>

const SkSVGAttribute SkSVGCircle::gAttributes[] = {
	SVG_ATTRIBUTE(cx),
	SVG_ATTRIBUTE(cy),
	SVG_ATTRIBUTE(r)
};

DEFINE_SVG_INFO(Circle)

void SkSVGCircle::translate(SkSVGParser& parser, bool defState) {
	parser._startElement("oval");
	INHERITED::translate(parser, defState);
	SkScalar cx, cy, r;
	SkParse::FindScalar(f_cx.c_str(), &cx);
	SkParse::FindScalar(f_cy.c_str(), &cy);
	SkParse::FindScalar(f_r.c_str(), &r);
	SkScalar left, top, right, bottom;
	left = cx - r;
	top = cy - r;
	right = cx + r;
	bottom = cy + r;
	char scratch[16];
	sprintf(scratch, "%g", left);
	parser._addAttribute("left", scratch);
	sprintf(scratch, "%g", top);
	parser._addAttribute("top", scratch);
	sprintf(scratch, "%g", right);
	parser._addAttribute("right", scratch);
	sprintf(scratch, "%g", bottom);
	parser._addAttribute("bottom", scratch);
	parser._endElement();
}