#include "src/pathops/SkPathOpsConic.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkFloatingPoint.h"
#include "src/pathops/SkIntersections.h"
#include "src/pathops/SkPathOpsCubic.h"
#include "src/pathops/SkPathOpsQuad.h"
#include "src/pathops/SkPathOpsRect.h"
#include "src/pathops/SkPathOpsTypes.h"
#include <cmath>
struct SkDLine;
static void conic_deriv_coeff(const double src[],
SkScalar w,
double coeff[3]) { … }
static double conic_eval_tan(const double coord[], SkScalar w, double t) { … }
int SkDConic::FindExtrema(const double src[], SkScalar w, double t[1]) { … }
SkDVector SkDConic::dxdyAtT(double t) const { … }
static double conic_eval_numerator(const double src[], SkScalar w, double t) { … }
static double conic_eval_denominator(SkScalar w, double t) { … }
bool SkDConic::hullIntersects(const SkDCubic& cubic, bool* isLinear) const { … }
SkDPoint SkDConic::ptAtT(double t) const { … }
SkDConic SkDConic::subDivide(double t1, double t2) const { … }
SkDPoint SkDConic::subDivide(const SkDPoint& a, const SkDPoint& c, double t1, double t2,
SkScalar* weight) const { … }
int SkTConic::intersectRay(SkIntersections* i, const SkDLine& line) const { … }
bool SkTConic::hullIntersects(const SkDQuad& quad, bool* isLinear) const { … }
bool SkTConic::hullIntersects(const SkDCubic& cubic, bool* isLinear) const { … }
void SkTConic::setBounds(SkDRect* rect) const { … }