Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 330 TransformationMatrix& skewY(double angle) { return skew(0, angle); } | 330 TransformationMatrix& skewY(double angle) { return skew(0, angle); } |
| 331 | 331 |
| 332 TransformationMatrix& applyPerspective(double p); | 332 TransformationMatrix& applyPerspective(double p); |
| 333 | 333 |
| 334 // Changes the transform to apply as if the origin were at (x, y, z). | 334 // Changes the transform to apply as if the origin were at (x, y, z). |
| 335 TransformationMatrix& applyTransformOrigin(double x, double y, double z); | 335 TransformationMatrix& applyTransformOrigin(double x, double y, double z); |
| 336 TransformationMatrix& applyTransformOrigin(const FloatPoint3D& origin) { | 336 TransformationMatrix& applyTransformOrigin(const FloatPoint3D& origin) { |
| 337 return applyTransformOrigin(origin.x(), origin.y(), origin.z()); | 337 return applyTransformOrigin(origin.x(), origin.y(), origin.z()); |
| 338 } | 338 } |
| 339 | 339 |
| 340 // Changes the transform to: | |
| 341 // | |
| 342 // scale3d(z, z, z) * mat * scale3d(1/z, 1/z, 1/z) | |
| 343 // | |
| 344 // Useful for mapping zoomed points to their zoomed transformed result: | |
| 345 // | |
| 346 // new_mat * (scale3d(z, z, z) * x) == scale3d(z, z, z) * (mat * x) | |
| 347 // | |
|
alancutter (OOO until 2018)
2016/11/10 06:50:03
Nice comment! I'd even put this in the description
| |
| 348 TransformationMatrix& zoom(double zoomFactor); | |
| 349 | |
| 340 bool isInvertible() const; | 350 bool isInvertible() const; |
| 341 | 351 |
| 342 // This method returns the identity matrix if it is not invertible. | 352 // This method returns the identity matrix if it is not invertible. |
| 343 // Use isInvertible() before calling this if you need to know. | 353 // Use isInvertible() before calling this if you need to know. |
| 344 TransformationMatrix inverse() const; | 354 TransformationMatrix inverse() const; |
| 345 | 355 |
| 346 // decompose the matrix into its component parts | 356 // decompose the matrix into its component parts |
| 347 typedef struct { | 357 typedef struct { |
| 348 double scaleX, scaleY, scaleZ; | 358 double scaleX, scaleY, scaleZ; |
| 349 double skewXY, skewXZ, skewYZ; | 359 double skewXY, skewXZ, skewYZ; |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 479 Matrix4 m_matrix; | 489 Matrix4 m_matrix; |
| 480 }; | 490 }; |
| 481 | 491 |
| 482 // Redeclared here to avoid ODR issues. | 492 // Redeclared here to avoid ODR issues. |
| 483 // See platform/testing/TransformPrinters.h. | 493 // See platform/testing/TransformPrinters.h. |
| 484 void PrintTo(const TransformationMatrix&, std::ostream*); | 494 void PrintTo(const TransformationMatrix&, std::ostream*); |
| 485 | 495 |
| 486 } // namespace blink | 496 } // namespace blink |
| 487 | 497 |
| 488 #endif // TransformationMatrix_h | 498 #endif // TransformationMatrix_h |
| OLD | NEW |