#include <path_component.h>
Public Types | |
using | PointProc = std::function< void(const Point &point)> |
Public Member Functions | |
CubicPathComponent () | |
CubicPathComponent (const QuadraticPathComponent &q) | |
CubicPathComponent (Point ap1, Point acp1, Point acp2, Point ap2) | |
Point | Solve (Scalar time) const |
Point | SolveDerivative (Scalar time) const |
void | AppendPolylinePoints (Scalar scale, std::vector< Point > &points) const |
std::vector< Point > | Extrema () const |
void | ToLinearPathComponents (Scalar scale, const PointProc &proc) const |
CubicPathComponent | Subsegment (Scalar t0, Scalar t1) const |
bool | operator== (const CubicPathComponent &other) const |
std::optional< Vector2 > | GetStartDirection () const |
std::optional< Vector2 > | GetEndDirection () const |
Public Attributes | |
Point | p1 |
Point | cp1 |
Point | cp2 |
Point | p2 |
Definition at line 99 of file path_component.h.
using impeller::CubicPathComponent::PointProc = std::function<void(const Point& point)> |
Definition at line 133 of file path_component.h.
|
inline |
|
inlineexplicit |
void impeller::CubicPathComponent::AppendPolylinePoints | ( | Scalar | scale, |
std::vector< Point > & | points | ||
) | const |
std::vector< Point > impeller::CubicPathComponent::Extrema | ( | ) | const |
Definition at line 312 of file path_component.cc.
References cp1, cp2, impeller::CubicPathBoundingPopulateValues(), p1, p2, Solve(), impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by impeller::QuadraticPathComponent::Extrema(), and impeller::testing::TEST().
std::optional< Vector2 > impeller::CubicPathComponent::GetEndDirection | ( | ) | const |
Definition at line 343 of file path_component.cc.
References cp1, cp2, p1, and p2.
Referenced by impeller::PathComponentEndDirectionVisitor::operator()().
std::optional< Vector2 > impeller::CubicPathComponent::GetStartDirection | ( | ) | const |
Definition at line 330 of file path_component.cc.
References cp1, cp2, p1, and p2.
Referenced by impeller::PathComponentStartDirectionVisitor::operator()().
|
inline |
Definition at line 182 of file path_component.cc.
References cp1, cp2, impeller::CubicSolve(), p1, p2, impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by Extrema(), and Subsegment().
Definition at line 189 of file path_component.cc.
References cp1, cp2, impeller::CubicSolveDerivative(), p1, p2, impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
CubicPathComponent impeller::CubicPathComponent::Subsegment | ( | Scalar | t0, |
Scalar | t1 | ||
) | const |
Definition at line 208 of file path_component.cc.
References CubicPathComponent(), p1, p2, scale, and Solve().
Referenced by ToLinearPathComponents().
void impeller::CubicPathComponent::ToLinearPathComponents | ( | Scalar | scale, |
const PointProc & | proc | ||
) | const |
Definition at line 218 of file path_component.cc.
References cp1, cp2, impeller::TPoint< T >::Dot(), p1, p2, scale, Subsegment(), and impeller::QuadraticPathComponent::ToLinearPathComponents().
Referenced by AppendPolylinePoints().
Point impeller::CubicPathComponent::cp1 |
Definition at line 103 of file path_component.h.
Referenced by Extrema(), GetEndDirection(), GetStartDirection(), operator==(), Solve(), SolveDerivative(), impeller::testing::TEST(), and ToLinearPathComponents().
Point impeller::CubicPathComponent::cp2 |
Definition at line 105 of file path_component.h.
Referenced by Extrema(), GetEndDirection(), GetStartDirection(), operator==(), Solve(), SolveDerivative(), impeller::testing::TEST(), and ToLinearPathComponents().
Point impeller::CubicPathComponent::p1 |
Definition at line 101 of file path_component.h.
Referenced by Extrema(), GetEndDirection(), GetStartDirection(), operator==(), Solve(), SolveDerivative(), Subsegment(), impeller::testing::TEST(), and ToLinearPathComponents().
Point impeller::CubicPathComponent::p2 |
Definition at line 107 of file path_component.h.
Referenced by Extrema(), GetEndDirection(), GetStartDirection(), operator==(), Solve(), SolveDerivative(), Subsegment(), impeller::testing::TEST(), and ToLinearPathComponents().