Flutter Impeller
impeller::MatrixDecomposition Struct Reference

#include <matrix_decomposition.h>

Public Types

enum class  Component {
  kTranslation = 1 << 0 ,
  kScale = 1 << 1 ,
  kShear = 1 << 2 ,
  kPerspective = 1 << 3 ,
  kRotation = 1 << 4
}
 

Public Member Functions

uint64_t GetComponentsMask () const
 

Public Attributes

Vector3 translation
 
Vector3 scale
 
Shear shear
 
Vector4 perspective
 
Quaternion rotation
 

Detailed Description

Definition at line 15 of file matrix_decomposition.h.

Member Enumeration Documentation

◆ Component

Enumerator
kTranslation 
kScale 
kShear 
kPerspective 
kRotation 

Definition at line 22 of file matrix_decomposition.h.

22  {
23  kTranslation = 1 << 0,
24  kScale = 1 << 1,
25  kShear = 1 << 2,
26  kPerspective = 1 << 3,
27  kRotation = 1 << 4,
28  };

Member Function Documentation

◆ GetComponentsMask()

uint64_t impeller::MatrixDecomposition::GetComponentsMask ( ) const

Definition at line 361 of file matrix.cc.

361  {
362  uint64_t mask = 0;
363 
364  Quaternion noRotation(0.0, 0.0, 0.0, 1.0);
365  if (rotation != noRotation) {
366  mask = mask | static_cast<uint64_t>(Component::kRotation);
367  }
368 
369  Vector4 defaultPerspective(0.0, 0.0, 0.0, 1.0);
370  if (perspective != defaultPerspective) {
371  mask = mask | static_cast<uint64_t>(Component::kPerspective);
372  }
373 
374  Shear noShear(0.0, 0.0, 0.0);
375  if (shear != noShear) {
376  mask = mask | static_cast<uint64_t>(Component::kShear);
377  }
378 
379  Vector3 defaultScale(1.0, 1.0, 1.0);
380  if (scale != defaultScale) {
381  mask = mask | static_cast<uint64_t>(Component::kScale);
382  }
383 
384  Vector3 defaultTranslation(0.0, 0.0, 0.0);
385  if (translation != defaultTranslation) {
386  mask = mask | static_cast<uint64_t>(Component::kTranslation);
387  }
388 
389  return mask;
390 }

References kPerspective, kRotation, kScale, kShear, kTranslation, perspective, rotation, scale, shear, and translation.

Member Data Documentation

◆ perspective

Vector4 impeller::MatrixDecomposition::perspective

◆ rotation

Quaternion impeller::MatrixDecomposition::rotation

◆ scale

Vector3 impeller::MatrixDecomposition::scale

◆ shear

Shear impeller::MatrixDecomposition::shear

◆ translation

Vector3 impeller::MatrixDecomposition::translation

The documentation for this struct was generated from the following files: