diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/animator/SkPathParts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/animator/SkPathParts.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,164 @@ + +/* + * Copyright 2006 The Android Open Source Project + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + +#ifndef SkPathParts_DEFINED +#define SkPathParts_DEFINED + +#include "SkDisplayable.h" +#include "SkMemberInfo.h" +#include "SkPath.h" + +class SkDrawPath; +class SkDrawMatrix; + +class SkPathPart : public SkDisplayable { +public: + SkPathPart(); + virtual bool add() = 0; + virtual void dirty(); + virtual SkDisplayable* getParent() const; + virtual bool setParent(SkDisplayable* parent); +#ifdef SK_DEBUG + virtual bool isPathPart() const { return true; } +#endif +protected: + SkDrawPath* fPath; +}; + +class SkMoveTo : public SkPathPart { + DECLARE_MEMBER_INFO(MoveTo); + SkMoveTo(); + virtual bool add(); +protected: + SkScalar x; + SkScalar y; +}; + +class SkRMoveTo : public SkMoveTo { + DECLARE_MEMBER_INFO(RMoveTo); + virtual bool add(); +private: + typedef SkMoveTo INHERITED; +}; + +class SkLineTo : public SkPathPart { + DECLARE_MEMBER_INFO(LineTo); + SkLineTo(); + virtual bool add(); +protected: + SkScalar x; + SkScalar y; +}; + +class SkRLineTo : public SkLineTo { + DECLARE_MEMBER_INFO(RLineTo); + virtual bool add(); +private: + typedef SkLineTo INHERITED; +}; + +class SkQuadTo : public SkPathPart { + DECLARE_MEMBER_INFO(QuadTo); + SkQuadTo(); + virtual bool add(); +protected: + SkScalar x1; + SkScalar y1; + SkScalar x2; + SkScalar y2; +}; + +class SkRQuadTo : public SkQuadTo { + DECLARE_MEMBER_INFO(RQuadTo); + virtual bool add(); +private: + typedef SkQuadTo INHERITED; +}; + +class SkCubicTo : public SkPathPart { + DECLARE_MEMBER_INFO(CubicTo); + SkCubicTo(); + virtual bool add(); +protected: + SkScalar x1; + SkScalar y1; + SkScalar x2; + SkScalar y2; + SkScalar x3; + SkScalar y3; +}; + +class SkRCubicTo : public SkCubicTo { + DECLARE_MEMBER_INFO(RCubicTo); + virtual bool add(); +private: + typedef SkCubicTo INHERITED; +}; + +class SkClose : public SkPathPart { + DECLARE_EMPTY_MEMBER_INFO(Close); + virtual bool add(); +}; + +class SkAddGeom : public SkPathPart { + DECLARE_PRIVATE_MEMBER_INFO(AddGeom); + SkAddGeom(); +protected: + int /*SkPath::Direction*/ direction; +}; + +class SkAddRect : public SkAddGeom { + DECLARE_MEMBER_INFO(AddRect); + SkAddRect(); + virtual bool add(); +protected: + SkRect fRect; +private: + typedef SkAddGeom INHERITED; +}; + +class SkAddOval : public SkAddRect { + DECLARE_MEMBER_INFO(AddOval); + virtual bool add(); +private: + typedef SkAddRect INHERITED; +}; + +class SkAddCircle : public SkAddGeom { + DECLARE_MEMBER_INFO(AddCircle); + SkAddCircle(); + virtual bool add(); +private: + SkScalar radius; + SkScalar x; + SkScalar y; + typedef SkAddGeom INHERITED; +}; + +class SkAddRoundRect : public SkAddRect { + DECLARE_MEMBER_INFO(AddRoundRect); + SkAddRoundRect(); + virtual bool add(); +private: + SkScalar rx; + SkScalar ry; + typedef SkAddRect INHERITED; +}; + +class SkAddPath : public SkPathPart { + DECLARE_MEMBER_INFO(AddPath); + SkAddPath(); + virtual bool add(); +private: + typedef SkPathPart INHERITED; + SkDrawMatrix* matrix; + SkDrawPath* path; +}; + +#endif // SkPathParts_DEFINED