Index: skia/animator/SkMatrixParts.cpp |
=================================================================== |
--- skia/animator/SkMatrixParts.cpp (revision 16859) |
+++ skia/animator/SkMatrixParts.cpp (working copy) |
@@ -1,302 +0,0 @@ |
-/* libs/graphics/animator/SkMatrixParts.cpp |
-** |
-** Copyright 2006, The Android Open Source Project |
-** |
-** Licensed under the Apache License, Version 2.0 (the "License"); |
-** you may not use this file except in compliance with the License. |
-** You may obtain a copy of the License at |
-** |
-** http://www.apache.org/licenses/LICENSE-2.0 |
-** |
-** Unless required by applicable law or agreed to in writing, software |
-** distributed under the License is distributed on an "AS IS" BASIS, |
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-** See the License for the specific language governing permissions and |
-** limitations under the License. |
-*/ |
- |
-#include "SkMatrixParts.h" |
-#include "SkAnimateMaker.h" |
-#include "SkDrawMatrix.h" |
-#include "SkDrawRectangle.h" |
-#include "SkDrawPath.h" |
- |
-SkMatrixPart::SkMatrixPart() : fMatrix(NULL) { |
-} |
- |
-void SkMatrixPart::dirty() { |
- fMatrix->dirty(); |
-} |
- |
-SkDisplayable* SkMatrixPart::getParent() const { |
- return fMatrix; |
-} |
- |
-bool SkMatrixPart::setParent(SkDisplayable* parent) { |
- SkASSERT(parent != NULL); |
- if (parent->isMatrix() == false) |
- return true; |
- fMatrix = (SkDrawMatrix*) parent; |
- return false; |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkRotate::fInfo[] = { |
- SK_MEMBER(center, Point), |
- SK_MEMBER(degrees, Float) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkRotate); |
- |
-SkRotate::SkRotate() : degrees(0) { |
- center.fX = center.fY = 0; |
-} |
- |
-bool SkRotate::add() { |
- fMatrix->rotate(degrees, center); |
- return false; |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkScale::fInfo[] = { |
- SK_MEMBER(center, Point), |
- SK_MEMBER(x, Float), |
- SK_MEMBER(y, Float) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkScale); |
- |
-SkScale::SkScale() : x(SK_Scalar1), y(SK_Scalar1) { |
- center.fX = center.fY = 0; |
-} |
- |
-bool SkScale::add() { |
- fMatrix->scale(x, y, center); |
- return false; |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkSkew::fInfo[] = { |
- SK_MEMBER(center, Point), |
- SK_MEMBER(x, Float), |
- SK_MEMBER(y, Float) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkSkew); |
- |
-SkSkew::SkSkew() : x(0), y(0) { |
- center.fX = center.fY = 0; |
-} |
- |
-bool SkSkew::add() { |
- fMatrix->skew(x, y, center); |
- return false; |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkTranslate::fInfo[] = { |
- SK_MEMBER(x, Float), |
- SK_MEMBER(y, Float) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkTranslate); |
- |
-SkTranslate::SkTranslate() : x(0), y(0) { |
-} |
- |
-bool SkTranslate::add() { |
- fMatrix->translate(x, y); |
- return false; |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkFromPath::fInfo[] = { |
- SK_MEMBER(mode, FromPathMode), |
- SK_MEMBER(offset, Float), |
- SK_MEMBER(path, Path) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkFromPath); |
- |
-SkFromPath::SkFromPath() : |
- mode(0), offset(0), path(NULL) { |
-} |
- |
-SkFromPath::~SkFromPath() { |
-} |
- |
-bool SkFromPath::add() { |
- if (path == NULL) |
- return true; |
- static const uint8_t gFlags[] = { |
- SkPathMeasure::kGetPosAndTan_MatrixFlag, // normal |
- SkPathMeasure::kGetTangent_MatrixFlag, // angle |
- SkPathMeasure::kGetPosition_MatrixFlag // position |
- }; |
- if ((unsigned)mode >= SK_ARRAY_COUNT(gFlags)) |
- return true; |
- SkMatrix result; |
- fPathMeasure.setPath(&path->getPath(), false); |
- if (fPathMeasure.getMatrix(offset, &result, (SkPathMeasure::MatrixFlags)gFlags[mode])) |
- fMatrix->set(result); |
- return false; |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkRectToRect::fInfo[] = { |
- SK_MEMBER(destination, Rect), |
- SK_MEMBER(source, Rect) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkRectToRect); |
- |
-SkRectToRect::SkRectToRect() : |
- source(NULL), destination(NULL) { |
-} |
- |
-SkRectToRect::~SkRectToRect() { |
-} |
- |
-bool SkRectToRect::add() { |
- if (source == NULL || destination == NULL) |
- return true; |
- SkMatrix temp; |
- temp.setRectToRect(source->fRect, destination->fRect, |
- SkMatrix::kFill_ScaleToFit); |
- fMatrix->set(temp); |
- return false; |
-} |
- |
-#ifdef SK_DUMP_ENABLED |
-void SkRectToRect::dump(SkAnimateMaker* maker) { |
- dumpBase(maker); |
- SkDebugf("/>\n"); |
- SkDisplayList::fIndent += 4; |
- if (source) { |
- SkDebugf("%*s<source>\n", SkDisplayList::fIndent, ""); |
- SkDisplayList::fIndent += 4; |
- source->dump(maker); |
- SkDisplayList::fIndent -= 4; |
- SkDebugf("%*s</source>\n", SkDisplayList::fIndent, ""); |
- } |
- if (destination) { |
- SkDebugf("%*s<destination>\n", SkDisplayList::fIndent, ""); |
- SkDisplayList::fIndent += 4; |
- destination->dump(maker); |
- SkDisplayList::fIndent -= 4; |
- SkDebugf("%*s</destination>\n", SkDisplayList::fIndent, ""); |
- } |
- SkDisplayList::fIndent -= 4; |
- dumpEnd(maker); |
-} |
-#endif |
- |
-const SkMemberInfo* SkRectToRect::preferredChild(SkDisplayTypes ) { |
- if (source == NULL) |
- return getMember("source"); // !!! cwap! need to refer to member through enum like kScope instead |
- else { |
- SkASSERT(destination == NULL); |
- return getMember("destination"); |
- } |
-} |
- |
- |
-#if SK_USE_CONDENSED_INFO == 0 |
- |
-const SkMemberInfo SkPolyToPoly::fInfo[] = { |
- SK_MEMBER(destination, Polygon), |
- SK_MEMBER(source, Polygon) |
-}; |
- |
-#endif |
- |
-DEFINE_GET_MEMBER(SkPolyToPoly); |
- |
-SkPolyToPoly::SkPolyToPoly() : source(NULL), destination(NULL) { |
-} |
- |
-SkPolyToPoly::~SkPolyToPoly() { |
-} |
- |
-bool SkPolyToPoly::add() { |
- SkASSERT(source); |
- SkASSERT(destination); |
- SkPoint src[4]; |
- SkPoint dst[4]; |
- SkPath& sourcePath = source->getPath(); |
- int srcPts = sourcePath.getPoints(src, 4); |
- SkPath& destPath = destination->getPath(); |
- int dstPts = destPath.getPoints(dst, 4); |
- if (srcPts != dstPts) |
- return true; |
- SkMatrix temp; |
- temp.setPolyToPoly(src, dst, srcPts); |
- fMatrix->set(temp); |
- return false; |
-} |
- |
-#ifdef SK_DUMP_ENABLED |
-void SkPolyToPoly::dump(SkAnimateMaker* maker) { |
- dumpBase(maker); |
- SkDebugf("/>\n"); |
- SkDisplayList::fIndent += 4; |
- if (source) { |
- SkDebugf("%*s<source>\n", SkDisplayList::fIndent, ""); |
- SkDisplayList::fIndent += 4; |
- source->dump(maker); |
- SkDisplayList::fIndent -= 4; |
- SkDebugf("%*s</source>\n", SkDisplayList::fIndent, ""); |
- } |
- if (destination) { |
- SkDebugf("%*s<destination>\n", SkDisplayList::fIndent, ""); |
- SkDisplayList::fIndent += 4; |
- destination->dump(maker); |
- SkDisplayList::fIndent -= 4; |
- SkDebugf("%*s</destination>\n", SkDisplayList::fIndent, ""); |
- } |
- SkDisplayList::fIndent -= 4; |
- dumpEnd(maker); |
-} |
-#endif |
- |
-void SkPolyToPoly::onEndElement(SkAnimateMaker& ) { |
- SkASSERT(source); |
- SkASSERT(destination); |
- if (source->childHasID() || destination->childHasID()) |
- fMatrix->setChildHasID(); |
-} |
- |
-const SkMemberInfo* SkPolyToPoly::preferredChild(SkDisplayTypes ) { |
- if (source == NULL) |
- return getMember("source"); // !!! cwap! need to refer to member through enum like kScope instead |
- else { |
- SkASSERT(destination == NULL); |
- return getMember("destination"); |
- } |
-} |
- |
- |