| Flutter Impeller |

Public Member Functions | Public Attributes | List of all members
impeller::PathTessellator::Quad Struct Reference

`#include <path_tessellator.h>`

## Public Member Functions
Point | Last () const
Point | Solve (Scalar t) const
Scalar | SubdivisionCount (Scalar scale) const
std::optional< Vector2 > | GetStartDirection () const
std::optional< Vector2 > | GetEndDirection () const

## Public Attributes
const Point | p1
const Point | cp
const Point | p2

## Detailed Description

Definition at line 61 of file path_tessellator.h.

## Member Function Documentation

## ◆ GetEndDirection()

std::optional<Vector2> impeller::PathTessellator::Quad::GetEndDirection | ( |  | ) | const
| inline

Definition at line 87 of file path_tessellator.h.

87 {
88 if (p2 != cp) {
89 return (p2 - cp).Normalize();
90 }
91 if (p2 != p1) {
92 return (p2 - p1).Normalize();
93 }
94 return std::nullopt;
95 }
impeller::PathTessellator::Quad::p1
const Point p1
Definition: path_tessellator.h:62
impeller::PathTessellator::Quad::cp
const Point cp
Definition: path_tessellator.h:63
impeller::PathTessellator::Quad::p2
const Point p2
Definition: path_tessellator.h:64

References cp, p1, and p2.

## ◆ GetStartDirection()

std::optional<Vector2> impeller::PathTessellator::Quad::GetStartDirection | ( |  | ) | const
| inline

Definition at line 77 of file path_tessellator.h.

77 {
78 if (p1 != cp) {
79 return (p1 - cp).Normalize();
80 }
81 if (p1 != p2) {
82 return (p1 - p2).Normalize();
83 }
84 return std::nullopt;
85 }

References cp, p1, and p2.

## ◆ Last()

Point impeller::PathTessellator::Quad::Last | ( |  | ) | const
| inline

Definition at line 66 of file path_tessellator.h.

66 { return p2; }

References p2.

## ◆ Solve()

Point impeller::PathTessellator::Quad::Solve | ( | Scalar | t | ) | const
| inline

Definition at line 68 of file path_tessellator.h.

68 {
69 Scalar u = 1.0f - t;
70 return p1 * u * u + 2 * cp * u * t + p2 * t * t;
71 }
impeller::Scalar
float Scalar
Definition: scalar.h:19

References cp, p1, and p2.

## ◆ SubdivisionCount()

Scalar impeller::PathTessellator::Quad::SubdivisionCount | ( | Scalar | scale | ) | const
| inline

Definition at line 73 of file path_tessellator.h.

73 {
74 return ComputeQuadradicSubdivisions(scale, p1, cp, p2);
75 }
impeller::ComputeQuadradicSubdivisions
Scalar ComputeQuadradicSubdivisions(Scalar scale_factor, Point p0, Point p1, Point p2)
Definition: wangs_formula.cc:31

References impeller::ComputeQuadradicSubdivisions(), cp, p1, and p2.

## Member Data Documentation

## ◆ cp

const Point impeller::PathTessellator::Quad::cp

Definition at line 63 of file path_tessellator.h.

Referenced by GetEndDirection(), GetStartDirection(), Solve(), and SubdivisionCount().

## ◆ p1

const Point impeller::PathTessellator::Quad::p1

Definition at line 62 of file path_tessellator.h.

Referenced by GetEndDirection(), GetStartDirection(), Solve(), and SubdivisionCount().

## ◆ p2

const Point impeller::PathTessellator::Quad::p2

Definition at line 64 of file path_tessellator.h.

Referenced by GetEndDirection(), GetStartDirection(), Last(), Solve(), and SubdivisionCount().

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

- impeller/tessellator/path_tessellator.h