A 4x4 matrix using column-major storage. More...
#include <matrix.h>
Public Member Functions | |
| constexpr | Matrix () |
| constexpr | Matrix (Scalar m0, Scalar m1, Scalar m2, Scalar m3, Scalar m4, Scalar m5, Scalar m6, Scalar m7, Scalar m8, Scalar m9, Scalar m10, Scalar m11, Scalar m12, Scalar m13, Scalar m14, Scalar m15) |
| Matrix (const MatrixDecomposition &decomposition) | |
| constexpr Matrix | Basis () const |
The Matrix without its w components (without translation). | |
| constexpr Matrix | To3x3 () const |
| constexpr Matrix | Translate (const Vector3 &t) const |
| constexpr Matrix | Scale (const Vector3 &s) const |
| constexpr Matrix | Multiply (const Matrix &o) const |
| constexpr Matrix | Transpose () const |
| Matrix | Invert () const |
| Scalar | GetDeterminant () const |
| bool | IsInvertible () const |
| Scalar | GetMaxBasisLengthXY () const |
| Return the maximum scale applied specifically to either the X axis or Y axis unit vectors (the bases). The matrix might lengthen a non-axis-aligned vector by more than this value. | |
| std::optional< Scalar > | GetMinScale2D () const |
| Return the smaller of the two non-negative scales that will be applied to 2D coordinates by this matrix. If the matrix has perspective components, the method will return a nullopt. | |
| std::optional< Scalar > | GetMaxScale2D () const |
| Return the smaller of the two non-negative scales that will be applied to 2D coordinates by this matrix. If the matrix has perspective components, the method will return a nullopt. | |
| constexpr Vector3 | GetBasisX () const |
| constexpr Vector3 | GetBasisY () const |
| constexpr Vector3 | GetBasisZ () const |
| Vector3 | GetScale () const |
| Scalar | GetDirectionScale (Vector3 direction) const |
| bool | IsFinite () const |
| constexpr bool | IsAffine () const |
| constexpr bool | HasPerspective2D () const |
| constexpr bool | HasPerspective () const |
| constexpr bool | HasTranslation () const |
| constexpr bool | IsAligned2D (Scalar tolerance=0) const |
| constexpr bool | IsAligned (Scalar tolerance=0) const |
| constexpr bool | IsIdentity () const |
| constexpr bool | IsTranslationOnly () const |
| Returns true if the matrix has no entries other than translation components. Note that an identity matrix meets this criteria. | |
| constexpr bool | IsTranslationScaleOnly () const |
| Returns true if the matrix has a scale-only basis and is non-projective. Note that an identity matrix meets this criteria. | |
| std::optional< MatrixDecomposition > | Decompose () const |
| std::optional< std::pair< Scalar, Scalar > > | GetScales2D () const |
| Compute the two non-negative scales applied by this matrix to 2D coordinates and return them as an optional pair of Scalar values in any order. If the matrix has perspective elements, this method will return a nullopt. | |
| bool | Equals (const Matrix &matrix, Scalar epsilon=1e-5f) const |
| constexpr bool | operator== (const Matrix &m) const |
| constexpr bool | operator!= (const Matrix &m) const |
| Matrix | operator+ (const Vector3 &t) const |
| Matrix | operator- (const Vector3 &t) const |
| Matrix | operator* (const Matrix &m) const |
| Matrix | operator+ (const Matrix &m) const |
| constexpr Vector4 | operator* (const Vector4 &v) const |
| constexpr Vector3 | operator* (const Vector3 &v) const |
| constexpr Point | operator* (const Point &v) const |
| constexpr Vector3 | TransformHomogenous (const Point &v) const |
| constexpr Vector4 | TransformDirection (const Vector4 &v) const |
| constexpr Vector3 | TransformDirection (const Vector3 &v) const |
| constexpr Vector2 | TransformDirection (const Vector2 &v) const |
| constexpr Quad | Transform (const Quad &quad) const |
Static Public Member Functions | |
| static constexpr Matrix | MakeColumn (Scalar m0, Scalar m1, Scalar m2, Scalar m3, Scalar m4, Scalar m5, Scalar m6, Scalar m7, Scalar m8, Scalar m9, Scalar m10, Scalar m11, Scalar m12, Scalar m13, Scalar m14, Scalar m15) |
| static constexpr Matrix | MakeRow (Scalar m0, Scalar m1, Scalar m2, Scalar m3, Scalar m4, Scalar m5, Scalar m6, Scalar m7, Scalar m8, Scalar m9, Scalar m10, Scalar m11, Scalar m12, Scalar m13, Scalar m14, Scalar m15) |
| static constexpr Matrix | MakeTranslation (const Vector3 &t) |
| static constexpr Matrix | MakeScale (const Vector3 &s) |
| static constexpr Matrix | MakeTranslateScale (const Vector3 &s, const Vector3 &t) |
| static constexpr Matrix | MakeScale (const Vector2 &s) |
| static constexpr Matrix | MakeSkew (Scalar sx, Scalar sy) |
| static Matrix | MakeRotation (Quaternion q) |
| static Matrix | MakeRotation (Radians radians, const Vector4 &r) |
| static Matrix | MakeRotationX (Radians r) |
| static Matrix | MakeRotationY (Radians r) |
| static Matrix | MakeRotationZ (Radians r) |
| template<class T > | |
| static constexpr Matrix | MakeOrthographic (TSize< T > size) |
| static Matrix | MakePerspective (Radians fov_y, Scalar aspect_ratio, Scalar z_near, Scalar z_far) |
| template<class T > | |
| static constexpr Matrix | MakePerspective (Radians fov_y, TSize< T > size, Scalar z_near, Scalar z_far) |
| static Matrix | MakeLookAt (Vector3 position, Vector3 target, Vector3 up) |
| static Vector2 | CosSin (Radians radians) |
Public Attributes | ||
| union { | ||
| Scalar m [16] | ||
| Scalar e [4][4] | ||
| Vector4 vec [4] | ||
| }; | ||
A 4x4 matrix using column-major storage.
Utility methods that need to make assumptions about normalized
device coordinates must use the following convention:
* Left-handed coordinate system. Positive rotation is
clockwise about axis of rotation.
* Lower left corner is -1.0f, -1.0.
* Upper right corner is 1.0f, 1.0.
* Visible z-space is from 0.0 to 1.0.
* This is NOT the same as OpenGL! Be careful.
* NDC origin is at (0.0f, 0.0f, 0.5f).
|
inlineconstexpr |
Constructs a default identity matrix.
Definition at line 47 of file matrix.h.
Referenced by Basis(), MakeColumn(), MakeRotation(), MakeRotation(), MakeRotationX(), MakeRotationY(), MakeRotationZ(), MakeRow(), MakeScale(), MakeSkew(), MakeTranslateScale(), MakeTranslation(), Multiply(), operator+(), Scale(), To3x3(), and Translate().
|
explicit |
Definition at line 14 of file matrix.cc.
|
inlineconstexpr |
The Matrix without its w components (without translation).
Definition at line 239 of file matrix.h.
Referenced by impeller::TextContents::ComputeVertexData(), GetDirectionScale(), impeller::DirectionalMorphologyFilterContents::GetFilterCoverage(), impeller::GaussianBlurFilterContents::GetFilterSourceCoverage(), impeller::LocalMatrixFilterContents::GetFilterSourceCoverage(), impeller::SolidRRectLikeBlurContents::Render(), and impeller::testing::TEST().
Definition at line 685 of file matrix.h.
References impeller::Radians::radians.
Referenced by impeller::Arc::ComputeIterations(), impeller::Arc::GetTightArcBounds(), impeller::RSTransform::Make(), MakeRotation(), MakeRotationX(), MakeRotationY(), and MakeRotationZ().
| std::optional< MatrixDecomposition > impeller::Matrix::Decompose | ( | ) | const |
Definition at line 202 of file matrix.cc.
References impeller::Vector3::Combine(), impeller::Vector3::Dot(), impeller::Vector3::e, impeller::Vector4::e, e, impeller::Vector3::GetLength(), i, Invert(), IsInvertible(), impeller::Vector3::Normalize(), impeller::MatrixDecomposition::perspective, impeller::MatrixDecomposition::rotation, impeller::MatrixDecomposition::scale, self, impeller::MatrixDecomposition::shear, impeller::MatrixDecomposition::translation, Transpose(), impeller::Quaternion::w, x, impeller::Quaternion::x, impeller::Vector3::x, impeller::Shear::xy, impeller::Shear::xz, impeller::Quaternion::y, impeller::Vector3::y, y, impeller::Shear::yz, impeller::Quaternion::z, and impeller::Vector3::z.
Referenced by impeller::testing::TEST(), impeller::testing::TEST(), and impeller::testing::TEST().
Definition at line 520 of file matrix.h.
References m, and impeller::ScalarNearlyEqual().
|
inlineconstexpr |
Definition at line 388 of file matrix.h.
References m.
Referenced by impeller::Paint::MaskBlurDescriptor::CreateMaskBlur(), and GetScale().
|
inlineconstexpr |
Definition at line 390 of file matrix.h.
References m.
Referenced by impeller::Paint::MaskBlurDescriptor::CreateMaskBlur(), and GetScale().
|
inlineconstexpr |
| Scalar impeller::Matrix::GetDeterminant | ( | ) | const |
Definition at line 164 of file matrix.cc.
References e.
Referenced by IsInvertible().
Definition at line 399 of file matrix.h.
References Basis(), impeller::Vector3::GetLength(), Invert(), and impeller::Vector3::Normalize().
Referenced by impeller::testing::TEST().
|
inline |
Return the maximum scale applied specifically to either the X axis or Y axis unit vectors (the bases). The matrix might lengthen a non-axis-aligned vector by more than this value.
Definition at line 328 of file matrix.h.
References e.
Referenced by impeller::LineContents::CalculatePerVertex(), impeller::Canvas::DrawTextFrame(), impeller::Tessellator::FilledArc(), impeller::Tessellator::FilledCircle(), impeller::Tessellator::FilledEllipse(), impeller::Tessellator::FilledRoundRect(), impeller::StrokeRectGeometry::GetPositionBuffer(), impeller::LineContents::Render(), impeller::Tessellator::RoundCapLine(), impeller::Tessellator::StrokedArc(), impeller::Tessellator::StrokedCircle(), impeller::testing::TEST(), impeller::testing::TEST(), and impeller::testing::TEST().
|
inline |
Return the smaller of the two non-negative scales that will be applied to 2D coordinates by this matrix. If the matrix has perspective components, the method will return a nullopt.
Note that negative scale factors really represent a positive scale factor with a flip, so the absolute value (the positive scale factor) is returned instead so that the results can be directly applied to rendering calculations to compute the potential size of an operation.
This method differs from the "basis length" methods in that those methods answer the question "how much does this transform stretch perfectly horizontal or vertical source vectors, whereas this method can answer "what's the largest scale applied to any vector regardless of direction".
Definition at line 380 of file matrix.h.
References GetScales2D().
Referenced by impeller::testing::TEST().
|
inline |
Return the smaller of the two non-negative scales that will be applied to 2D coordinates by this matrix. If the matrix has perspective components, the method will return a nullopt.
Note that negative scale factors really represent a positive scale factor with a flip, so the absolute value (the positive scale factor) is returned instead so that the results can be directly applied to rendering calculations to compute the potential size of an operation.
This method differs from the "basis length" methods in that those methods answer the question "how much does this transform stretch perfectly horizontal or vertical source vectors, whereas this method can answer "what's the smallest scale applied to any vector regardless of direction".
Definition at line 356 of file matrix.h.
References GetScales2D().
Referenced by impeller::testing::TEST().
|
inline |
Definition at line 394 of file matrix.h.
References GetBasisX(), GetBasisY(), and GetBasisZ().
Referenced by impeller::DlDispatcherBase::drawShadow().
Compute the two non-negative scales applied by this matrix to 2D coordinates and return them as an optional pair of Scalar values in any order. If the matrix has perspective elements, this method will return a nullopt.
Note that negative scale factors really represent a positive scale factor with a flip, so the absolute value (the positive scale factor) is returned instead so that the results can be directly applied to rendering calculations to compute the potential size of an operation.
Definition at line 363 of file matrix.cc.
References d, FML_DCHECK, HasPerspective2D(), impeller::kEhCloseEnough, and m.
Referenced by GetMaxScale2D(), GetMinScale2D(), and impeller::testing::TEST().
|
inlineconstexpr |
Definition at line 418 of file matrix.h.
References m.
Referenced by impeller::DlDispatcherBase::drawDisplayList(), impeller::FirstPassDispatcher::drawDisplayList(), flutter::DisplayListMatrixClipState::has_perspective(), IsAligned(), and impeller::testing::TEST().
|
inlineconstexpr |
Definition at line 414 of file matrix.h.
References m.
Referenced by flutter::DisplayListMatrixClipState::GetLocalCullCoverage(), GetScales2D(), flutter::DlImageFilter::inset_device_bounds(), IsAligned2D(), flutter::DlImageFilter::map_vectors_affine(), flutter::DlImageFilter::outset_device_bounds(), impeller::testing::TEST(), and flutter::testing::TestBounds().
|
inlineconstexpr |
| Matrix impeller::Matrix::Invert | ( | ) | const |
Definition at line 99 of file matrix.cc.
References m.
Referenced by Decompose(), flutter::DlMatrixImageFilter::get_input_device_bounds(), GetDirectionScale(), impeller::MatrixFilterContents::GetFilterCoverage(), impeller::LocalMatrixFilterContents::GetFilterSourceCoverage(), flutter::DisplayListMatrixClipState::GetLocalCullCoverage(), impeller::Snapshot::GetUVTransform(), flutter::DisplayListMatrixClipState::inverseTransform(), impeller::TextShadowCache::Lookup(), flutter::DlMatrixImageFilter::map_device_bounds(), impeller::SolidRRectLikeBlurContents::Render(), impeller::Canvas::Restore(), impeller::Canvas::SaveLayer(), impeller::ColorSourceContents::SetEffectTransform(), impeller::VerticesSimpleBlendContents::SetEffectTransform(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 439 of file matrix.h.
References HasPerspective(), m, and impeller::ScalarNearlyZero().
Referenced by impeller::testing::TEST().
|
inlineconstexpr |
Definition at line 424 of file matrix.h.
References HasPerspective2D(), m, and impeller::ScalarNearlyZero().
Referenced by flutter::DisplayListMatrixClipState::mapRect(), impeller::testing::TEST(), and flutter::DisplayListMatrixClipState::TransformedRectCoversBounds().
|
inline |
Definition at line 404 of file matrix.h.
References impeller::Vector4::IsFinite(), and vec.
Referenced by flutter::DlImageFilter::inset_device_bounds(), flutter::DlMatrixImageFilter::Make(), flutter::DlImageFilter::map_vectors_affine(), flutter::DlImageFilter::outset_device_bounds(), impeller::testing::TEST(), and flutter::TransformLayer::TransformLayer().
|
inlineconstexpr |
Definition at line 467 of file matrix.h.
References m.
Referenced by flutter::DlMatrixImageFilter::Make(), flutter::DlImageFilter::makeWithLocalMatrix(), flutter::DlMatrixColorSourceBase::matrix_ptr(), flutter::EmbedderLayers::PushPlatformViewLayer(), flutter::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::interop::testing::TEST_P(), and flutter::LayerStateStack::MutatorContext::transform().
|
inline |
Definition at line 321 of file matrix.h.
References GetDeterminant().
Referenced by Decompose(), flutter::DlMatrixImageFilter::get_input_device_bounds(), flutter::DlImageFilter::inset_device_bounds(), flutter::DisplayListMatrixClipState::is_matrix_invertable(), flutter::DlMatrixImageFilter::map_device_bounds(), flutter::DlImageFilter::outset_device_bounds(), flutter::testing::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and flutter::testing::TestBounds().
|
inlineconstexpr |
Returns true if the matrix has no entries other than translation components. Note that an identity matrix meets this criteria.
Definition at line 480 of file matrix.h.
References m.
Referenced by flutter::DlImageFilter::makeWithLocalMatrix(), and flutter::LayerStateStack::MutatorContext::transform().
|
inlineconstexpr |
Returns true if the matrix has a scale-only basis and is non-projective. Note that an identity matrix meets this criteria.
Definition at line 493 of file matrix.h.
References m.
Referenced by flutter::RasterCacheUtil::ComputeIntegralTransCTM(), impeller::TextContents::ComputeVertexData(), flutter::DlImageFilter::makeWithLocalMatrix(), and impeller::TextContents::Render().
|
inlinestaticconstexpr |
Definition at line 69 of file matrix.h.
References Matrix().
Referenced by impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::ToDlMatrix(), flutter::ToDlMatrix(), flutter::DisplayListMatrixClipState::transform2DAffine(), impeller::FirstPassDispatcher::transform2DAffine(), flutter::DisplayListMatrixClipState::transformFullPerspective(), and impeller::FirstPassDispatcher::transformFullPerspective().
|
inlinestatic |
Definition at line 668 of file matrix.h.
References impeller::Vector3::Cross(), impeller::Vector3::Dot(), target, impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Referenced by impeller::testing::TEST().
|
inlinestaticconstexpr |
Definition at line 633 of file matrix.h.
References MakeScale(), and MakeTranslation().
Referenced by ImGui_ImplImpeller_RenderDrawData(), impeller::testing::TEST(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().
|
inlinestatic |
Definition at line 642 of file matrix.h.
References height, impeller::Radians::radians, and width.
Referenced by MakePerspective(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().
|
inlinestaticconstexpr |
Definition at line 660 of file matrix.h.
References MakePerspective().
|
inlinestatic |
Definition at line 136 of file matrix.h.
References Matrix(), impeller::Quaternion::w, impeller::Quaternion::x, impeller::Quaternion::y, and impeller::Quaternion::z.
Referenced by impeller::testing::TEST().
Definition at line 161 of file matrix.h.
References CosSin(), Matrix(), impeller::Vector4::Normalize(), impeller::TPoint< T >::x, impeller::Vector4::x, impeller::TPoint< T >::y, impeller::Vector4::y, and impeller::Vector4::z.
Definition at line 193 of file matrix.h.
References CosSin(), Matrix(), impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by flutter::testing::CanvasCompareTester::RenderWithTransforms(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().
Definition at line 208 of file matrix.h.
References CosSin(), Matrix(), impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by flutter::testing::CanvasCompareTester::RenderWithTransforms(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().
Definition at line 223 of file matrix.h.
References CosSin(), Matrix(), impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by flutter::DisplayListMatrixClipState::rotate(), impeller::FirstPassDispatcher::rotate(), impeller::Canvas::Rotate(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and flutter::testing::TestBounds().
|
inlinestaticconstexpr |
Definition at line 83 of file matrix.h.
References Matrix().
Referenced by impeller::RSTransform::GetMatrix(), flutter::testing::CanvasCompareTester::RenderWithTransforms(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and flutter::testing::TEST_P().
Definition at line 123 of file matrix.h.
References MakeScale(), impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Definition at line 104 of file matrix.h.
References Matrix(), impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Referenced by impeller::GaussianBlurFilterContents::CalculateUVs(), impeller::TextContents::ComputeVertexData(), impeller::TRect< T >::GetNormalizingTransform(), impeller::Snapshot::GetUVTransform(), MakeOrthographic(), MakeScale(), impeller::TextureContents::RenderToSnapshot(), impeller::TiledTextureContents::RenderToSnapshot(), impeller::Canvas::Scale(), impeller::Canvas::Scale(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and flutter::DisplayListBuilder::TransformReset().
Definition at line 127 of file matrix.h.
References Matrix().
Referenced by flutter::DisplayListMatrixClipState::skew(), impeller::FirstPassDispatcher::skew(), impeller::Canvas::Skew(), flutter::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and flutter::testing::TestBounds().
|
inlinestaticconstexpr |
Definition at line 113 of file matrix.h.
References Matrix(), impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Referenced by impeller::Canvas::DrawImageRect(), impeller::Entity::GetShaderTransform(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), and impeller::testing::TEST_P().
|
inlinestaticconstexpr |
Definition at line 95 of file matrix.h.
References Matrix(), impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Referenced by impeller::AdvancedBlend(), impeller::Canvas::ClipGeometry(), flutter::testing::CreateAllAttributesOps(), flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), impeller::DlDispatcherBase::drawShadow(), impeller::FirstPassDispatcher::drawText(), impeller::Canvas::DrawTextFrame(), impeller::TextFrame::GetOffsetTransform(), MakeOrthographic(), impeller::PipelineBlend(), flutter::SceneBuilder::pushOffset(), impeller::SolidRRectLikeBlurContents::Render(), impeller::Contents::RenderToSnapshot(), impeller::TextureContents::RenderToSnapshot(), impeller::TiledTextureContents::RenderToSnapshot(), impeller::Canvas::Restore(), impeller::Canvas::SaveLayer(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::Canvas::Translate(), and flutter::TranslateEntry::update_mutators().
Definition at line 284 of file matrix.h.
Referenced by operator*().
|
inlineconstexpr |
Definition at line 588 of file matrix.h.
References m, impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Definition at line 574 of file matrix.h.
References m, impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Definition at line 567 of file matrix.h.
References m, impeller::Vector4::w, impeller::Vector4::x, impeller::Vector4::y, and impeller::Vector4::z.
Definition at line 559 of file matrix.h.
References Translate().
|
inlineconstexpr |
Definition at line 275 of file matrix.h.
References m, Matrix(), impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Referenced by flutter::DisplayListMatrixClipState::scale(), impeller::FirstPassDispatcher::scale(), flutter::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), and flutter::testing::TestBounds().
|
inlineconstexpr |
Definition at line 623 of file matrix.h.
Referenced by impeller::GaussianBlurFilterContents::CalculateUVs(), and flutter::testing::TestBoundsWithMatrix().
Definition at line 619 of file matrix.h.
References m, impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Definition at line 613 of file matrix.h.
References m, impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Definition at line 607 of file matrix.h.
References m, impeller::Vector4::w, impeller::Vector4::x, impeller::Vector4::y, and impeller::Vector4::z.
Referenced by impeller::BorderMaskBlurFilterContents::GetFilterCoverage(), impeller::DirectionalMorphologyFilterContents::GetFilterCoverage(), impeller::BorderMaskBlurFilterContents::GetFilterSourceCoverage(), and impeller::DirectionalMorphologyFilterContents::GetFilterSourceCoverage().
Definition at line 601 of file matrix.h.
References m, impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by impeller::testing::TEST().
Definition at line 263 of file matrix.h.
References m, Matrix(), impeller::Vector3::x, impeller::Vector3::y, and impeller::Vector3::z.
Referenced by ImGui_ImplImpeller_RenderDrawData(), operator+(), operator-(), flutter::testing::CanvasCompareTester::RenderWithTransforms(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), flutter::DisplayListMatrixClipState::translate(), and impeller::FirstPassDispatcher::translate().
|
inlineconstexpr |
| union { ... } impeller::Matrix |
| Scalar impeller::Matrix::e[4][4] |
Definition at line 40 of file matrix.h.
Referenced by Decompose(), GetDeterminant(), GetMaxBasisLengthXY(), Matrix(), std::operator<<(), impeller::testing::TEST(), impeller::testing::TEST_P(), and flutter::DisplayListBuilder::Transform().
| Scalar impeller::Matrix::m[16] |
Definition at line 39 of file matrix.h.
Referenced by Basis(), flutter::RasterCacheUtil::ComputeIntegralTransCTM(), impeller::TextContents::ComputeVertexData(), flutter::ConvertMutation(), Equals(), FlutterTransformationMake(), flutter::PlatformViewAndroidJNIImpl::FlutterViewOnDisplayPlatformView(), impeller::interop::FromImpellerType(), GetBasisX(), GetBasisY(), GetBasisZ(), GetCATransform3DFromDlMatrix(), FLUTTER_ASSERT_ARC::GetCATransform3DFromDlMatrix(), GetScales2D(), flutter::Canvas::getTransform(), HasPerspective(), HasPerspective2D(), HasTranslation(), Invert(), IsAffine(), IsAligned(), IsAligned2D(), IsIdentity(), IsTranslationOnly(), IsTranslationScaleOnly(), flutter::DlImageFilter::map_vectors_affine(), MatrixNear(), Multiply(), flutter::PlatformViewAndroidJNIImpl::onDisplayPlatformView2(), operator!=(), operator*(), operator*(), operator*(), operator*(), operator+(), operator==(), Scale(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TestBounds(), To3x3(), flutter::ToDlMatrix(), flutter::ToSk(), flutter::ToSkM44(), flutter::ToSkMatrix(), impeller::interop::ToSkMatrix(), flutter::LayerStateStack::MutatorContext::transform(), TransformDirection(), TransformDirection(), TransformDirection(), TransformHomogenous(), Translate(), and Transpose().
| Vector4 impeller::Matrix::vec[4] |
Definition at line 41 of file matrix.h.
Referenced by IsFinite(), operator!=(), operator==(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), and impeller::testing::TEST_P().