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

Unified Diff: ui/gfx/transform.cc

Issue 11774005: Migrate more functions from MathUtil to gfx::Transform (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Converted constructors to row-major input Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: ui/gfx/transform.cc
diff --git a/ui/gfx/transform.cc b/ui/gfx/transform.cc
index c2b6ba2fa9dffe86b6d2e7795ea3096f1479161f..6c54360523faca60c7e571604a5f3a5d61033bcd 100644
--- a/ui/gfx/transform.cc
+++ b/ui/gfx/transform.cc
@@ -32,6 +32,51 @@ double TanDegrees(double degrees) {
} // namespace
+Transform::Transform(
+ double col1row1, double col2row1, double col3row1, double col4row1,
+ double col1row2, double col2row2, double col3row2, double col4row2,
+ double col1row3, double col2row3, double col3row3, double col4row3,
+ double col1row4, double col2row4, double col3row4, double col4row4)
+ : matrix_(SkMatrix44::kUninitialized_Constructor)
+{
+ // Initialize column 1
danakj 2013/01/11 04:14:12 nit: i dont think these comments are explaining mu
+ matrix_.setDouble(0, 0, col1row1);
+ matrix_.setDouble(1, 0, col1row2);
+ matrix_.setDouble(2, 0, col1row3);
+ matrix_.setDouble(3, 0, col1row4);
+
+ // Initialize column 2
+ matrix_.setDouble(0, 1, col2row1);
+ matrix_.setDouble(1, 1, col2row2);
+ matrix_.setDouble(2, 1, col2row3);
+ matrix_.setDouble(3, 1, col2row4);
+
+ // Initialize column 3
+ matrix_.setDouble(0, 2, col3row1);
+ matrix_.setDouble(1, 2, col3row2);
+ matrix_.setDouble(2, 2, col3row3);
+ matrix_.setDouble(3, 2, col3row4);
+
+ // Initialize column 4
+ matrix_.setDouble(0, 3, col4row1);
+ matrix_.setDouble(1, 3, col4row2);
+ matrix_.setDouble(2, 3, col4row3);
+ matrix_.setDouble(3, 3, col4row4);
+}
+
+Transform::Transform(
+ double col1row1, double col2row1,
+ double col1row2, double col2row2,
+ double x_translation, double y_translation)
danakj 2013/01/11 04:14:12 can you make this call matrix_(SkMatrix44::kIdenti
+{
+ matrix_.setDouble(0, 0, col1row1);
+ matrix_.setDouble(1, 0, col1row2);
+ matrix_.setDouble(0, 1, col2row1);
+ matrix_.setDouble(1, 1, col2row2);
+ matrix_.setDouble(0, 3, x_translation);
+ matrix_.setDouble(1, 3, y_translation);
+}
+
void Transform::RotateAboutXAxis(double degrees) {
double radians = degrees * M_PI / 180;
double cosTheta = std::cos(radians);
@@ -259,6 +304,16 @@ void Transform::Transpose() {
matrix_.transpose();
}
+void Transform::FlattenTo2d() {
+ matrix_.setDouble(2, 0, 0.0);
+ matrix_.setDouble(2, 1, 0.0);
+ matrix_.setDouble(0, 2, 0.0);
+ matrix_.setDouble(1, 2, 0.0);
+ matrix_.setDouble(2, 2, 1.0);
+ matrix_.setDouble(3, 2, 0.0);
+ matrix_.setDouble(2, 3, 0.0);
+}
+
void Transform::TransformPoint(Point& point) const {
TransformPointInternal(matrix_, point);
}
« ui/gfx/transform.h ('K') | « ui/gfx/transform.h ('k') | ui/gfx/transform_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698