OLD | NEW |
---|---|
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #ifndef SkMatrix_DEFINED | 10 #ifndef SkMatrix_DEFINED |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
89 Returns false if other transformation types are included or is degenerat e | 89 Returns false if other transformation types are included or is degenerat e |
90 */ | 90 */ |
91 bool isSimilarity(SkScalar tol = SK_ScalarNearlyZero) const; | 91 bool isSimilarity(SkScalar tol = SK_ScalarNearlyZero) const; |
92 | 92 |
93 /** Returns true if the matrix contains only translation, rotation or scale | 93 /** Returns true if the matrix contains only translation, rotation or scale |
94 (non-uniform scale is allowed). | 94 (non-uniform scale is allowed). |
95 Returns false if other transformation types are included or is degenerat e | 95 Returns false if other transformation types are included or is degenerat e |
96 */ | 96 */ |
97 bool preservesRightAngles(SkScalar tol = SK_ScalarNearlyZero) const; | 97 bool preservesRightAngles(SkScalar tol = SK_ScalarNearlyZero) const; |
98 | 98 |
99 /** Decomposes the upper 2x2 of the matrix into a rotation, followed by a no n-uniform scale, | |
100 followed by another rotation. Returns true if successful. | |
101 If the scale factors are uniform, then rotation1 will be 0. | |
102 If there is a reflection, yScale will be negative. | |
103 Returns false if the matrix is degenerate. | |
reed1
2013/07/18 14:15:54
... or perspective?
| |
104 */ | |
105 bool decomposeUpper2x2(SkScalar* rotation0, | |
106 SkScalar* xScale, SkScalar* yScale, | |
107 SkScalar* rotation1) const; | |
108 | |
99 enum { | 109 enum { |
100 kMScaleX, | 110 kMScaleX, |
101 kMSkewX, | 111 kMSkewX, |
102 kMTransX, | 112 kMTransX, |
103 kMSkewY, | 113 kMSkewY, |
104 kMScaleY, | 114 kMScaleY, |
105 kMTransY, | 115 kMTransY, |
106 kMPersp0, | 116 kMPersp0, |
107 kMPersp1, | 117 kMPersp1, |
108 kMPersp2 | 118 kMPersp2 |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
665 static void RotTrans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], | 675 static void RotTrans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], |
666 int count); | 676 int count); |
667 static void Persp_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int); | 677 static void Persp_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int); |
668 | 678 |
669 static const MapPtsProc gMapPtsProcs[]; | 679 static const MapPtsProc gMapPtsProcs[]; |
670 | 680 |
671 friend class SkPerspIter; | 681 friend class SkPerspIter; |
672 }; | 682 }; |
673 | 683 |
674 #endif | 684 #endif |
OLD | NEW |