diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/animator/SkMatrixParts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/animator/SkMatrixParts.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,119 @@ + +/* + * 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 SkMatrixParts_DEFINED +#define SkMatrixParts_DEFINED + +#include "SkDisplayable.h" +#include "SkMemberInfo.h" +#include "SkPathMeasure.h" + +class SkDrawPath; +class SkDrawRect; +class SkPolygon; + +class SkDrawMatrix; +// class SkMatrix; + +class SkMatrixPart : public SkDisplayable { +public: + SkMatrixPart(); + virtual bool add() = 0; + virtual void dirty(); + virtual SkDisplayable* getParent() const; + virtual bool setParent(SkDisplayable* parent); +#ifdef SK_DEBUG + virtual bool isMatrixPart() const { return true; } +#endif +protected: + SkDrawMatrix* fMatrix; +}; + +class SkRotate : public SkMatrixPart { + DECLARE_MEMBER_INFO(Rotate); + SkRotate(); +protected: + virtual bool add(); + SkScalar degrees; + SkPoint center; +}; + +class SkScale : public SkMatrixPart { + DECLARE_MEMBER_INFO(Scale); + SkScale(); +protected: + virtual bool add(); + SkScalar x; + SkScalar y; + SkPoint center; +}; + +class SkSkew : public SkMatrixPart { + DECLARE_MEMBER_INFO(Skew); + SkSkew(); +protected: + virtual bool add(); + SkScalar x; + SkScalar y; + SkPoint center; +}; + +class SkTranslate : public SkMatrixPart { + DECLARE_MEMBER_INFO(Translate); + SkTranslate(); +protected: + virtual bool add(); + SkScalar x; + SkScalar y; +}; + +class SkFromPath : public SkMatrixPart { + DECLARE_MEMBER_INFO(FromPath); + SkFromPath(); + virtual ~SkFromPath(); +protected: + virtual bool add(); + int32_t mode; + SkScalar offset; + SkDrawPath* path; + SkPathMeasure fPathMeasure; +}; + +class SkRectToRect : public SkMatrixPart { + DECLARE_MEMBER_INFO(RectToRect); + SkRectToRect(); + virtual ~SkRectToRect(); +#ifdef SK_DUMP_ENABLED + virtual void dump(SkAnimateMaker* ); +#endif + virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); +protected: + virtual bool add(); + SkDrawRect* source; + SkDrawRect* destination; +}; + +class SkPolyToPoly : public SkMatrixPart { + DECLARE_MEMBER_INFO(PolyToPoly); + SkPolyToPoly(); + virtual ~SkPolyToPoly(); +#ifdef SK_DUMP_ENABLED + virtual void dump(SkAnimateMaker* ); +#endif + virtual void onEndElement(SkAnimateMaker& ); + virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); +protected: + virtual bool add(); + SkPolygon* source; + SkPolygon* destination; +}; + +// !!! add concat matrix ? + +#endif // SkMatrixParts_DEFINED