diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/animator/SkDrawMatrix.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/animator/SkDrawMatrix.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,74 @@ + +/* + * 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 SkDrawMatrix_DEFINED +#define SkDrawMatrix_DEFINED + +#include "SkDrawable.h" +#include "SkMatrix.h" +#include "SkMemberInfo.h" +#include "SkIntArray.h" + +class SkMatrixPart; + +class SkDrawMatrix : public SkDrawable { + DECLARE_DRAW_MEMBER_INFO(Matrix); + SkDrawMatrix(); + virtual ~SkDrawMatrix(); + virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE; + virtual bool childrenNeedDisposing() const; + virtual void dirty(); + virtual bool draw(SkAnimateMaker& ); +#ifdef SK_DUMP_ENABLED + virtual void dump(SkAnimateMaker* ); +#endif + SkMatrix& getMatrix(); + virtual bool getProperty(int index, SkScriptValue* value) const; + virtual void initialize(); + virtual void onEndElement(SkAnimateMaker& ); + virtual void setChildHasID(); + virtual bool setProperty(int index, SkScriptValue& ); + + void concat(SkMatrix& inMatrix) { + fConcat.preConcat(inMatrix); + } + + virtual SkDisplayable* deepCopy(SkAnimateMaker* ); + + + void rotate(SkScalar degrees, SkPoint& center) { + fMatrix.preRotate(degrees, center.fX, center.fY); + } + + void set(SkMatrix& src) { + fMatrix.preConcat(src); + } + + void scale(SkScalar scaleX, SkScalar scaleY, SkPoint& center) { + fMatrix.preScale(scaleX, scaleY, center.fX, center.fY); + } + + void skew(SkScalar skewX, SkScalar skewY, SkPoint& center) { + fMatrix.preSkew(skewX, skewY, center.fX, center.fY); + } + + void translate(SkScalar x, SkScalar y) { + fMatrix.preTranslate(x, y); + } +private: + SkTDScalarArray matrix; + SkMatrix fConcat; + SkMatrix fMatrix; + SkTDMatrixPartArray fParts; + SkBool8 fChildHasID; + SkBool8 fDirty; + typedef SkDrawable INHERITED; +}; + +#endif // SkDrawMatrix_DEFINED