1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkPathParts.h" 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkAnimateMaker.h" 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDrawMatrix.h" 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDrawRectangle.h" 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDrawPath.h" 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkPathPart::SkPathPart() : fPath(NULL) { 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 19d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.comvoid SkPathPart::dirty() { 20d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com fPath->dirty(); 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkDisplayable* SkPathPart::getParent() const { 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return fPath; 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkPathPart::setParent(SkDisplayable* parent) { 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkASSERT(parent != NULL); 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com if (parent->isPath() == false) 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return true; 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath = (SkDrawPath*) parent; 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// MoveTo 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkMoveTo::fInfo[] = { 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x, Float), 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y, Float) 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkMoveTo); 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkMoveTo::SkMoveTo() : x(0), y(0) { 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkMoveTo::add() { 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.moveTo(x, y); 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// RMoveTo 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkRMoveTo::fInfo[] = { 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED 618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkRMoveTo); 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkRMoveTo::add() { 688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.rMoveTo(x, y); 698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// LineTo 748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkLineTo::fInfo[] = { 778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x, Float), 788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y, Float) 798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkLineTo); 848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 858a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkLineTo::SkLineTo() : x(0), y(0) { 868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkLineTo::add() { 89d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com fPath->fPath.lineTo(x, y); 908a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 918a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// RLineTo 958a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 968a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 978a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkRLineTo::fInfo[] = { 988a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED 998a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1008a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1018a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1028a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1038a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkRLineTo); 1048a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1058a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkRLineTo::add() { 106d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com fPath->fPath.rLineTo(x, y); 1078a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 1088a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1098a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// QuadTo 1128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 1138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkQuadTo::fInfo[] = { 1158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x1, Float), 1168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x2, Float), 1178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y1, Float), 1188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y2, Float) 1198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkQuadTo); 1248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkQuadTo::SkQuadTo() : x1(0), y1(0), x2(0), y2(0) { 1268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkQuadTo::add() { 1298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.quadTo(x1, y1, x2, y2); 1308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 1318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// RQuadTo 1358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 1368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkRQuadTo::fInfo[] = { 1388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED 1398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkRQuadTo); 1448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkRQuadTo::add() { 1468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.rQuadTo(x1, y1, x2, y2); 1478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 1488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// CubicTo 1528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 1538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkCubicTo::fInfo[] = { 1558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x1, Float), 1568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x2, Float), 1578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x3, Float), 1588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y1, Float), 1598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y2, Float), 1608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y3, Float) 1618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkCubicTo); 1668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkCubicTo::SkCubicTo() : x1(0), y1(0), x2(0), y2(0), x3(0), y3(0) { 1688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkCubicTo::add() { 1718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.cubicTo(x1, y1, x2, y2, x3, y3); 1728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 1738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// RCubicTo 1778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 1788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkRCubicTo::fInfo[] = { 1808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED 1818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1858a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkRCubicTo); 1868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkRCubicTo::add() { 1888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.rCubicTo(x1, y1, x2, y2, x3, y3); 1898a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 1908a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1918a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// SkClose 1948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkClose::add() { 1958a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.close(); 1968a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 1978a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 1988a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1998a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2008a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// SkAddGeom 2018a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 2028a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2038a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkAddGeom::fInfo[] = { 2048a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(direction, PathDirection) 2058a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 2068a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2078a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 2088a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2098a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkAddGeom); 2108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkAddGeom::SkAddGeom() : direction(SkPath::kCCW_Direction) { 2128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 2158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkAddRect::fInfo[] = { 2178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED, 2188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_ALIAS(bottom, fRect.fBottom, Float), 2198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_ALIAS(left, fRect.fLeft, Float), 2208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_ALIAS(right, fRect.fRight, Float), 2218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_ALIAS(top, fRect.fTop, Float) 2228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 2238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 2258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkAddRect); 2278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 228d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.comSkAddRect::SkAddRect() { 229d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com fRect.setEmpty(); 2308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkAddRect::add() { 2338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.addRect(fRect, (SkPath::Direction) direction); 2348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 2358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 2398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkAddOval::fInfo[] = { 2418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED 2428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 2438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 2458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkAddOval); 2478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkAddOval::add() { 2498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.addOval(fRect, (SkPath::Direction) direction); 2508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 2518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 2558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkAddCircle::fInfo[] = { 2578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED, 2588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(radius, Float), 2598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(x, Float), 2608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(y, Float) 2618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 2628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 2648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkAddCircle); 2668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkAddCircle::SkAddCircle() : radius(0), x(0), y(0) { 2688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkAddCircle::add() { 2718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.addCircle(x, y, radius, (SkPath::Direction) direction); 2728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 2738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 2778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkAddRoundRect::fInfo[] = { 2798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER_INHERITED, 2808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(rx, Float), 2818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(ry, Float) 2828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 2838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 2858a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkAddRoundRect); 2878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkAddRoundRect::SkAddRoundRect() : rx(0), ry(0) { 2898a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2908a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2918a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkAddRoundRect::add() { 2928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.addRoundRect(fRect, rx, ry, (SkPath::Direction) direction); 2938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 2948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 2958a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2968a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2978a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 2988a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 2998a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkAddPath::fInfo[] = { 3008a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(matrix, Matrix), 3018a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(path, Path) 3028a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 3038a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 3048a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 3058a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 3068a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkAddPath); 3078a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 3088a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comSkAddPath::SkAddPath() : matrix(NULL), path(NULL) { 3098a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 3108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 3118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkAddPath::add() { 312d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com SkASSERT (path != NULL); 3138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com if (matrix) 3148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.addPath(path->fPath, matrix->getMatrix()); 3158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com else 3168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com fPath->fPath.addPath(path->fPath); 3178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return false; 3188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 319