#include <SkPathOpsConic.h>
|
bool | collapsed () const |
|
bool | controlsInside () const |
|
void | debugInit () |
|
void | debugSet (const SkDPoint *pts, SkScalar weight) |
|
SkDConic | flip () const |
|
const SkDConic & | set (const SkPoint pts[kPointCount], SkScalar weight SkDEBUGPARAMS(SkOpGlobalState *state=nullptr)) |
|
const SkDPoint & | operator[] (int n) const |
|
SkDPoint & | operator[] (int n) |
|
void | align (int endIndex, SkDPoint *dstPt) const |
|
SkDVector | dxdyAtT (double t) const |
|
bool | hullIntersects (const SkDQuad &quad, bool *isLinear) const |
|
bool | hullIntersects (const SkDConic &conic, bool *isLinear) const |
|
bool | hullIntersects (const SkDCubic &cubic, bool *isLinear) const |
|
bool | isLinear (int startIndex, int endIndex) const |
|
bool | monotonicInX () const |
|
bool | monotonicInY () const |
|
void | otherPts (int oddMan, const SkDPoint *endPt[2]) const |
|
SkDPoint | ptAtT (double t) const |
|
SkDConic | subDivide (double t1, double t2) const |
|
void | subDivide (double t1, double t2, SkDConic *c) const |
|
SkDPoint | subDivide (const SkDPoint &a, const SkDPoint &c, double t1, double t2, SkScalar *weight) const |
|
void | dump () const |
|
void | dumpID (int id) const |
|
void | dumpInner () const |
|
|
static bool | IsConic () |
|
static int | AddValidTs (double s[], int realRoots, double *t) |
|
static int | FindExtrema (const double src[], SkScalar weight, double tValue[1]) |
|
static int | maxIntersections () |
|
static int | pointCount () |
|
static int | pointLast () |
|
static int | RootsReal (double A, double B, double C, double t[2]) |
|
static int | RootsValidT (const double A, const double B, const double C, double s[2]) |
|
static SkDConic | SubDivide (const SkPoint a[kPointCount], SkScalar weight, double t1, double t2) |
|
static SkDPoint | SubDivide (const SkPoint pts[kPointCount], SkScalar weight, const SkDPoint &a, const SkDPoint &c, double t1, double t2, SkScalar *newWeight) |
|
Definition at line 26 of file SkPathOpsConic.h.
◆ AddValidTs()
static int SkDConic::AddValidTs |
( |
double |
s[], |
|
|
int |
realRoots, |
|
|
double * |
t |
|
) |
| |
|
inlinestatic |
Definition at line 71 of file SkPathOpsConic.h.
71 {
73 }
static int AddValidTs(double s[], int realRoots, double *t)
◆ align()
void SkDConic::align |
( |
int |
endIndex, |
|
|
SkDPoint * |
dstPt |
|
) |
| const |
|
inline |
Definition at line 75 of file SkPathOpsConic.h.
75 {
77 }
void align(int endIndex, SkDPoint *dstPt) const
◆ collapsed()
bool SkDConic::collapsed |
( |
| ) |
const |
|
inline |
◆ controlsInside()
bool SkDConic::controlsInside |
( |
| ) |
const |
|
inline |
◆ debugInit()
void SkDConic::debugInit |
( |
| ) |
|
|
inline |
◆ debugSet()
◆ dump()
void SkDConic::dump |
( |
| ) |
const |
Definition at line 88 of file PathOpsDebug.cpp.
88 {
91}
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
◆ dumpID()
void SkDConic::dumpID |
( |
int |
id | ) |
const |
◆ dumpInner()
void SkDConic::dumpInner |
( |
| ) |
const |
◆ dxdyAtT()
SkDVector SkDConic::dxdyAtT |
( |
double |
t | ) |
const |
Definition at line 57 of file SkPathOpsConic.cpp.
57 {
61 };
65 } else {
66
68 }
69 }
71}
static double conic_eval_tan(const double coord[], SkScalar w, double t)
bool zero_or_one(double x)
◆ FindExtrema()
int SkDConic::FindExtrema |
( |
const double |
src[], |
|
|
SkScalar |
weight, |
|
|
double |
tValue[1] |
|
) |
| |
|
static |
Definition at line 39 of file SkPathOpsConic.cpp.
39 {
40 double coeff[3];
42
43 double tValues[2];
45
46
47
48
49
51 t[0] = tValues[0];
52 return 1;
53 }
54 return 0;
55}
static void conic_deriv_coeff(const double src[], SkScalar w, double coeff[3])
static int RootsValidT(const double A, const double B, const double C, double s[2])
◆ flip()
◆ hullIntersects() [1/3]
bool SkDConic::hullIntersects |
( |
const SkDConic & |
conic, |
|
|
bool * |
isLinear |
|
) |
| const |
|
inline |
Definition at line 86 of file SkPathOpsConic.h.
86 {
88 }
bool isLinear(int startIndex, int endIndex) const
bool hullIntersects(const SkDQuad &, bool *isLinear) const
◆ hullIntersects() [2/3]
bool SkDConic::hullIntersects |
( |
const SkDCubic & |
cubic, |
|
|
bool * |
isLinear |
|
) |
| const |
◆ hullIntersects() [3/3]
bool SkDConic::hullIntersects |
( |
const SkDQuad & |
quad, |
|
|
bool * |
isLinear |
|
) |
| const |
|
inline |
◆ IsConic()
static bool SkDConic::IsConic |
( |
| ) |
|
|
inlinestatic |
◆ isLinear()
bool SkDConic::isLinear |
( |
int |
startIndex, |
|
|
int |
endIndex |
|
) |
| const |
|
inline |
Definition at line 92 of file SkPathOpsConic.h.
92 {
94 }
bool isLinear(int startIndex, int endIndex) const
◆ maxIntersections()
static int SkDConic::maxIntersections |
( |
| ) |
|
|
inlinestatic |
◆ monotonicInX()
bool SkDConic::monotonicInX |
( |
| ) |
const |
|
inline |
◆ monotonicInY()
bool SkDConic::monotonicInY |
( |
| ) |
const |
|
inline |
◆ operator[]() [1/2]
◆ operator[]() [2/2]
◆ otherPts()
void SkDConic::otherPts |
( |
int |
oddMan, |
|
|
const SkDPoint * |
endPt[2] |
|
) |
| const |
|
inline |
Definition at line 106 of file SkPathOpsConic.h.
106 {
108 }
void otherPts(int oddMan, const SkDPoint *endPt[2]) const
◆ pointCount()
static int SkDConic::pointCount |
( |
| ) |
|
|
inlinestatic |
◆ pointLast()
static int SkDConic::pointLast |
( |
| ) |
|
|
inlinestatic |
◆ ptAtT()
SkDPoint SkDConic::ptAtT |
( |
double |
t | ) |
const |
Definition at line 95 of file SkPathOpsConic.cpp.
95 {
96 if (t == 0) {
98 }
99 if (t == 1) {
101 }
106 };
108}
static constexpr double sk_ieee_double_divide(double numer, double denom)
static double conic_eval_numerator(const double src[], SkScalar w, double t)
static double conic_eval_denominator(SkScalar w, double t)
◆ RootsReal()
static int SkDConic::RootsReal |
( |
double |
A, |
|
|
double |
B, |
|
|
double |
C, |
|
|
double |
t[2] |
|
) |
| |
|
inlinestatic |
Definition at line 114 of file SkPathOpsConic.h.
114 {
116 }
static int RootsReal(double A, double B, double C, double t[2])
◆ RootsValidT()
static int SkDConic::RootsValidT |
( |
const double |
A, |
|
|
const double |
B, |
|
|
const double |
C, |
|
|
double |
s[2] |
|
) |
| |
|
inlinestatic |
◆ set()
const SkDConic & SkDConic::set |
( |
const SkPoint |
pts[kPointCount], |
|
|
SkScalar weight |
SkDEBUGPARAMSSkOpGlobalState *state=nullptr |
|
) |
| |
|
inline |
Definition at line 61 of file SkPathOpsConic.h.
62 {
65 return *this;
66 }
const SkDQuad & set(const SkPoint pts[kPointCount] SkDEBUGPARAMS(SkOpGlobalState *state=nullptr))
◆ subDivide() [1/3]
Definition at line 176 of file SkPathOpsConic.cpp.
177 {
180 return chopped[1];
181}
SkDConic subDivide(double t1, double t2) const
◆ SubDivide() [1/2]
◆ SubDivide() [2/2]
◆ subDivide() [2/3]
SkDConic SkDConic::subDivide |
( |
double |
t1, |
|
|
double |
t2 |
|
) |
| const |
Definition at line 131 of file SkPathOpsConic.cpp.
131 {
133 if (t1 == 0) {
136 az = 1;
137 } else if (t1 != 1) {
141 } else {
144 az = 1;
145 }
146 double midT = (t1 + t2) / 2;
150 double cx, cy, cz;
151 if (t2 == 1) {
154 cz = 1;
155 } else if (t2 != 0) {
159 } else {
162 cz = 1;
163 }
164 double bx = 2 *
dx - (
ax + cx) / 2;
165 double by = 2 * dy - (ay + cy) / 2;
166 double bz = 2 * dz - (az + cz) / 2;
167 if (!bz) {
168 bz = 1;
169 }
170 SkDConic dst = {{{{
ax / az, ay / az}, {bx / bz, by / bz}, {cx / cz, cy / cz}}
174}
#define SkDoubleToScalar(x)
skia_private::AutoTArray< sk_sp< SkImageFilter > > filters TypedMatrix matrix TypedMatrix matrix SkScalar dx
SIN Vec< N, float > sqrt(const Vec< N, float > &x)
◆ subDivide() [3/3]
void SkDConic::subDivide |
( |
double |
t1, |
|
|
double |
t2, |
|
|
SkDConic * |
c |
|
) |
| const |
|
inline |
◆ fPts
◆ fWeight
◆ kMaxIntersections
const int SkDConic::kMaxIntersections = 4 |
|
static |
◆ kPointCount
const int SkDConic::kPointCount = 3 |
|
static |
◆ kPointLast
The documentation for this struct was generated from the following files: