10910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/* libs/graphics/animator/SkPathParts.cpp 20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 30910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Copyright 2006, The Android Open Source Project 40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 50910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License"); 60910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** you may not use this file except in compliance with the License. 70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** You may obtain a copy of the License at 80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** http://www.apache.org/licenses/LICENSE-2.0 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Unless required by applicable law or agreed to in writing, software 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS, 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** See the License for the specific language governing permissions and 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** limitations under the License. 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project*/ 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkPathParts.h" 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkAnimateMaker.h" 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawMatrix.h" 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawRectangle.h" 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawPath.h" 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkPathPart::SkPathPart() : fPath(NULL) { 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkPathPart::dirty() { 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->dirty(); 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkDisplayable* SkPathPart::getParent() const { 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return fPath; 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkPathPart::setParent(SkDisplayable* parent) { 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(parent != NULL); 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (parent->isPath() == false) 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return true; 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath = (SkDrawPath*) parent; 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// MoveTo 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkMoveTo::fInfo[] = { 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x, Float), 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y, Float) 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkMoveTo); 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkMoveTo::SkMoveTo() : x(0), y(0) { 560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkMoveTo::add() { 590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.moveTo(x, y); 600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// RMoveTo 650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkRMoveTo::fInfo[] = { 680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED 690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkRMoveTo); 740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkRMoveTo::add() { 760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.rMoveTo(x, y); 770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// LineTo 820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkLineTo::fInfo[] = { 850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x, Float), 860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y, Float) 870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkLineTo); 920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkLineTo::SkLineTo() : x(0), y(0) { 940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkLineTo::add() { 970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.lineTo(x, y); 980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// RLineTo 1030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 1040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkRLineTo::fInfo[] = { 1060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED 1070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 1080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkRLineTo); 1120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkRLineTo::add() { 1140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.rLineTo(x, y); 1150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 1160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// QuadTo 1200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 1210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkQuadTo::fInfo[] = { 1230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x1, Float), 1240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x2, Float), 1250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y1, Float), 1260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y2, Float) 1270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 1280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkQuadTo); 1320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkQuadTo::SkQuadTo() : x1(0), y1(0), x2(0), y2(0) { 1340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkQuadTo::add() { 1370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.quadTo(x1, y1, x2, y2); 1380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 1390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// RQuadTo 1430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 1440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkRQuadTo::fInfo[] = { 1460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED 1470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 1480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkRQuadTo); 1520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkRQuadTo::add() { 1540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.rQuadTo(x1, y1, x2, y2); 1550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 1560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// CubicTo 1600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 1610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkCubicTo::fInfo[] = { 1630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x1, Float), 1640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x2, Float), 1650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x3, Float), 1660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y1, Float), 1670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y2, Float), 1680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y3, Float) 1690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 1700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkCubicTo); 1740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkCubicTo::SkCubicTo() : x1(0), y1(0), x2(0), y2(0), x3(0), y3(0) { 1760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkCubicTo::add() { 1790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.cubicTo(x1, y1, x2, y2, x3, y3); 1800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 1810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// RCubicTo 1850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 1860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkRCubicTo::fInfo[] = { 1880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED 1890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 1900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkRCubicTo); 1940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkRCubicTo::add() { 1960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.rCubicTo(x1, y1, x2, y2, x3, y3); 1970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 1980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 1990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// SkClose 2020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkClose::add() { 2030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.close(); 2040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 2050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project// SkAddGeom 2090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 2100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkAddGeom::fInfo[] = { 2120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(direction, PathDirection) 2130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 2140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 2160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkAddGeom); 2180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkAddGeom::SkAddGeom() : direction(SkPath::kCCW_Direction) { 2200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 2230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkAddRect::fInfo[] = { 2250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED, 2260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_ALIAS(bottom, fRect.fBottom, Float), 2270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_ALIAS(left, fRect.fLeft, Float), 2280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_ALIAS(right, fRect.fRight, Float), 2290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_ALIAS(top, fRect.fTop, Float) 2300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 2310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 2330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkAddRect); 2350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkAddRect::SkAddRect() { 2370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fRect.setEmpty(); 2380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkAddRect::add() { 2410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.addRect(fRect, (SkPath::Direction) direction); 2420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 2430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 2470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkAddOval::fInfo[] = { 2490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED 2500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 2510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 2530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkAddOval); 2550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkAddOval::add() { 2570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.addOval(fRect, (SkPath::Direction) direction); 2580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 2590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 2630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkAddCircle::fInfo[] = { 2650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED, 2660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(radius, Float), 2670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x, Float), 2680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y, Float) 2690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 2700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 2720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkAddCircle); 2740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkAddCircle::SkAddCircle() : radius(0), x(0), y(0) { 2760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkAddCircle::add() { 2790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.addCircle(x, y, radius, (SkPath::Direction) direction); 2800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 2810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 2850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkAddRoundRect::fInfo[] = { 2870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_INHERITED, 2880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(rx, Float), 2890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(ry, Float) 2900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 2910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 2930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkAddRoundRect); 2950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkAddRoundRect::SkAddRoundRect() : rx(0), ry(0) { 2970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 2980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 2990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkAddRoundRect::add() { 3000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.addRoundRect(fRect, rx, ry, (SkPath::Direction) direction); 3010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 3020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 3030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 3060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkAddPath::fInfo[] = { 3080910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(matrix, Matrix), 3090910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(path, Path) 3100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 3110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 3130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkAddPath); 3150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkAddPath::SkAddPath() : matrix(NULL), path(NULL) { 3170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 3180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkAddPath::add() { 3200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT (path != NULL); 3210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (matrix) 3220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.addPath(path->fPath, matrix->getMatrix()); 3230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project else 3240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project fPath->fPath.addPath(path->fPath); 3250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 3260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 3270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 3280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 329