1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/skia/trunk/src/animator/SkPathParts.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,164 @@ 1.4 + 1.5 +/* 1.6 + * Copyright 2006 The Android Open Source Project 1.7 + * 1.8 + * Use of this source code is governed by a BSD-style license that can be 1.9 + * found in the LICENSE file. 1.10 + */ 1.11 + 1.12 + 1.13 +#ifndef SkPathParts_DEFINED 1.14 +#define SkPathParts_DEFINED 1.15 + 1.16 +#include "SkDisplayable.h" 1.17 +#include "SkMemberInfo.h" 1.18 +#include "SkPath.h" 1.19 + 1.20 +class SkDrawPath; 1.21 +class SkDrawMatrix; 1.22 + 1.23 +class SkPathPart : public SkDisplayable { 1.24 +public: 1.25 + SkPathPart(); 1.26 + virtual bool add() = 0; 1.27 + virtual void dirty(); 1.28 + virtual SkDisplayable* getParent() const; 1.29 + virtual bool setParent(SkDisplayable* parent); 1.30 +#ifdef SK_DEBUG 1.31 + virtual bool isPathPart() const { return true; } 1.32 +#endif 1.33 +protected: 1.34 + SkDrawPath* fPath; 1.35 +}; 1.36 + 1.37 +class SkMoveTo : public SkPathPart { 1.38 + DECLARE_MEMBER_INFO(MoveTo); 1.39 + SkMoveTo(); 1.40 + virtual bool add(); 1.41 +protected: 1.42 + SkScalar x; 1.43 + SkScalar y; 1.44 +}; 1.45 + 1.46 +class SkRMoveTo : public SkMoveTo { 1.47 + DECLARE_MEMBER_INFO(RMoveTo); 1.48 + virtual bool add(); 1.49 +private: 1.50 + typedef SkMoveTo INHERITED; 1.51 +}; 1.52 + 1.53 +class SkLineTo : public SkPathPart { 1.54 + DECLARE_MEMBER_INFO(LineTo); 1.55 + SkLineTo(); 1.56 + virtual bool add(); 1.57 +protected: 1.58 + SkScalar x; 1.59 + SkScalar y; 1.60 +}; 1.61 + 1.62 +class SkRLineTo : public SkLineTo { 1.63 + DECLARE_MEMBER_INFO(RLineTo); 1.64 + virtual bool add(); 1.65 +private: 1.66 + typedef SkLineTo INHERITED; 1.67 +}; 1.68 + 1.69 +class SkQuadTo : public SkPathPart { 1.70 + DECLARE_MEMBER_INFO(QuadTo); 1.71 + SkQuadTo(); 1.72 + virtual bool add(); 1.73 +protected: 1.74 + SkScalar x1; 1.75 + SkScalar y1; 1.76 + SkScalar x2; 1.77 + SkScalar y2; 1.78 +}; 1.79 + 1.80 +class SkRQuadTo : public SkQuadTo { 1.81 + DECLARE_MEMBER_INFO(RQuadTo); 1.82 + virtual bool add(); 1.83 +private: 1.84 + typedef SkQuadTo INHERITED; 1.85 +}; 1.86 + 1.87 +class SkCubicTo : public SkPathPart { 1.88 + DECLARE_MEMBER_INFO(CubicTo); 1.89 + SkCubicTo(); 1.90 + virtual bool add(); 1.91 +protected: 1.92 + SkScalar x1; 1.93 + SkScalar y1; 1.94 + SkScalar x2; 1.95 + SkScalar y2; 1.96 + SkScalar x3; 1.97 + SkScalar y3; 1.98 +}; 1.99 + 1.100 +class SkRCubicTo : public SkCubicTo { 1.101 + DECLARE_MEMBER_INFO(RCubicTo); 1.102 + virtual bool add(); 1.103 +private: 1.104 + typedef SkCubicTo INHERITED; 1.105 +}; 1.106 + 1.107 +class SkClose : public SkPathPart { 1.108 + DECLARE_EMPTY_MEMBER_INFO(Close); 1.109 + virtual bool add(); 1.110 +}; 1.111 + 1.112 +class SkAddGeom : public SkPathPart { 1.113 + DECLARE_PRIVATE_MEMBER_INFO(AddGeom); 1.114 + SkAddGeom(); 1.115 +protected: 1.116 + int /*SkPath::Direction*/ direction; 1.117 +}; 1.118 + 1.119 +class SkAddRect : public SkAddGeom { 1.120 + DECLARE_MEMBER_INFO(AddRect); 1.121 + SkAddRect(); 1.122 + virtual bool add(); 1.123 +protected: 1.124 + SkRect fRect; 1.125 +private: 1.126 + typedef SkAddGeom INHERITED; 1.127 +}; 1.128 + 1.129 +class SkAddOval : public SkAddRect { 1.130 + DECLARE_MEMBER_INFO(AddOval); 1.131 + virtual bool add(); 1.132 +private: 1.133 + typedef SkAddRect INHERITED; 1.134 +}; 1.135 + 1.136 +class SkAddCircle : public SkAddGeom { 1.137 + DECLARE_MEMBER_INFO(AddCircle); 1.138 + SkAddCircle(); 1.139 + virtual bool add(); 1.140 +private: 1.141 + SkScalar radius; 1.142 + SkScalar x; 1.143 + SkScalar y; 1.144 + typedef SkAddGeom INHERITED; 1.145 +}; 1.146 + 1.147 +class SkAddRoundRect : public SkAddRect { 1.148 + DECLARE_MEMBER_INFO(AddRoundRect); 1.149 + SkAddRoundRect(); 1.150 + virtual bool add(); 1.151 +private: 1.152 + SkScalar rx; 1.153 + SkScalar ry; 1.154 + typedef SkAddRect INHERITED; 1.155 +}; 1.156 + 1.157 +class SkAddPath : public SkPathPart { 1.158 + DECLARE_MEMBER_INFO(AddPath); 1.159 + SkAddPath(); 1.160 + virtual bool add(); 1.161 +private: 1.162 + typedef SkPathPart INHERITED; 1.163 + SkDrawMatrix* matrix; 1.164 + SkDrawPath* path; 1.165 +}; 1.166 + 1.167 +#endif // SkPathParts_DEFINED