180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2006 The Android Open Source Project 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef SkMatrixParts_DEFINED 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define SkMatrixParts_DEFINED 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkDisplayable.h" 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkMemberInfo.h" 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkPathMeasure.h" 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkDrawPath; 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkDrawRect; 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkPolygon; 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkDrawMatrix; 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru// class SkMatrix; 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkMatrixPart : public SkDisplayable { 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkMatrixPart(); 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add() = 0; 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void dirty(); 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual SkDisplayable* getParent() const; 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool setParent(SkDisplayable* parent); 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef SK_DEBUG 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool isMatrixPart() const { return true; } 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDrawMatrix* fMatrix; 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkRotate : public SkMatrixPart { 3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(Rotate); 4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkRotate(); 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar degrees; 4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPoint center; 4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkScale : public SkMatrixPart { 4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(Scale); 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScale(); 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar x; 5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar y; 5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPoint center; 5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 5680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkSkew : public SkMatrixPart { 5880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(Skew); 5980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkSkew(); 6080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 6180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 6280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar x; 6380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar y; 6480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPoint center; 6580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 6680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 6780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkTranslate : public SkMatrixPart { 6880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(Translate); 6980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkTranslate(); 7080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 7180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 7280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar x; 7380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar y; 7480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 7580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 7680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkFromPath : public SkMatrixPart { 7780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(FromPath); 7880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkFromPath(); 7980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkFromPath(); 8080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 8180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 8280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru int32_t mode; 8380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkScalar offset; 8480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDrawPath* path; 8580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPathMeasure fPathMeasure; 8680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 8780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 8880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkRectToRect : public SkMatrixPart { 8980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(RectToRect); 9080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkRectToRect(); 9180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkRectToRect(); 9280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef SK_DUMP_ENABLED 9380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void dump(SkAnimateMaker* ); 9480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 9580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); 9680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 9780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 9880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDrawRect* source; 9980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDrawRect* destination; 10080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 10180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 10280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkPolyToPoly : public SkMatrixPart { 10380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru DECLARE_MEMBER_INFO(PolyToPoly); 10480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPolyToPoly(); 10580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual ~SkPolyToPoly(); 10680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef SK_DUMP_ENABLED 10780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void dump(SkAnimateMaker* ); 10880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 10980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual void onEndElement(SkAnimateMaker& ); 11080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); 11180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprotected: 11280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru virtual bool add(); 11380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPolygon* source; 11480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkPolygon* destination; 11580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 11680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 11780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru// !!! add concat matrix ? 11880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 11980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif // SkMatrixParts_DEFINED 120