Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(463)

Side by Side Diff: Source/platform/transforms/TransformationMatrix.h

Issue 328333003: Adding Blink-side 3d Box and Bounds calculations to TransformOperations (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixing android build Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 23 matching lines...) Expand all
34 #include "wtf/CPU.h" 34 #include "wtf/CPU.h"
35 #include "wtf/FastAllocBase.h" 35 #include "wtf/FastAllocBase.h"
36 36
37 namespace WebCore { 37 namespace WebCore {
38 38
39 class AffineTransform; 39 class AffineTransform;
40 class IntRect; 40 class IntRect;
41 class LayoutRect; 41 class LayoutRect;
42 class FloatRect; 42 class FloatRect;
43 class FloatQuad; 43 class FloatQuad;
44 44 class FloatBox;
45 #if CPU(X86_64) 45 #if CPU(X86_64)
46 #define TRANSFORMATION_MATRIX_USE_X86_64_SSE2 46 #define TRANSFORMATION_MATRIX_USE_X86_64_SSE2
47 #endif 47 #endif
48 48
49 class PLATFORM_EXPORT TransformationMatrix { 49 class PLATFORM_EXPORT TransformationMatrix {
50 WTF_MAKE_FAST_ALLOCATED; 50 WTF_MAKE_FAST_ALLOCATED;
51 public: 51 public:
52 52
53 #if CPU(APPLE_ARMV7S) || defined(TRANSFORMATION_MATRIX_USE_X86_64_SSE2) 53 #if CPU(APPLE_ARMV7S) || defined(TRANSFORMATION_MATRIX_USE_X86_64_SSE2)
54 #if COMPILER(MSVC) 54 #if COMPILER(MSVC)
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 // a ray perpendicular to the source plane and computing 145 // a ray perpendicular to the source plane and computing
146 // the local x,y position of the point where that ray intersects 146 // the local x,y position of the point where that ray intersects
147 // with the destination plane. 147 // with the destination plane.
148 FloatPoint projectPoint(const FloatPoint&, bool* clamped = 0) const; 148 FloatPoint projectPoint(const FloatPoint&, bool* clamped = 0) const;
149 // Projects the four corners of the quad 149 // Projects the four corners of the quad
150 FloatQuad projectQuad(const FloatQuad&, bool* clamped = 0) const; 150 FloatQuad projectQuad(const FloatQuad&, bool* clamped = 0) const;
151 // Projects the four corners of the quad and takes a bounding box, 151 // Projects the four corners of the quad and takes a bounding box,
152 // while sanitizing values created when the w component is negative. 152 // while sanitizing values created when the w component is negative.
153 LayoutRect clampedBoundsOfProjectedQuad(const FloatQuad&) const; 153 LayoutRect clampedBoundsOfProjectedQuad(const FloatQuad&) const;
154 154
155 void transformBox(FloatBox&) const;
156
155 double m11() const { return m_matrix[0][0]; } 157 double m11() const { return m_matrix[0][0]; }
156 void setM11(double f) { m_matrix[0][0] = f; } 158 void setM11(double f) { m_matrix[0][0] = f; }
157 double m12() const { return m_matrix[0][1]; } 159 double m12() const { return m_matrix[0][1]; }
158 void setM12(double f) { m_matrix[0][1] = f; } 160 void setM12(double f) { m_matrix[0][1] = f; }
159 double m13() const { return m_matrix[0][2]; } 161 double m13() const { return m_matrix[0][2]; }
160 void setM13(double f) { m_matrix[0][2] = f; } 162 void setM13(double f) { m_matrix[0][2] = f; }
161 double m14() const { return m_matrix[0][3]; } 163 double m14() const { return m_matrix[0][3]; }
162 void setM14(double f) { m_matrix[0][3] = f; } 164 void setM14(double f) { m_matrix[0][3] = f; }
163 double m21() const { return m_matrix[1][0]; } 165 double m21() const { return m_matrix[1][0]; }
164 void setM21(double f) { m_matrix[1][0] = f; } 166 void setM21(double f) { m_matrix[1][0] = f; }
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 if (m && m != m_matrix) 357 if (m && m != m_matrix)
356 memcpy(m_matrix, m, sizeof(Matrix4)); 358 memcpy(m_matrix, m, sizeof(Matrix4));
357 } 359 }
358 360
359 Matrix4 m_matrix; 361 Matrix4 m_matrix;
360 }; 362 };
361 363
362 } // namespace WebCore 364 } // namespace WebCore
363 365
364 #endif // TransformationMatrix_h 366 #endif // TransformationMatrix_h
OLDNEW
« no previous file with comments | « Source/platform/transforms/TransformOperationsTest.cpp ('k') | Source/platform/transforms/TransformationMatrix.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698