Flutter Engine
The Flutter Engine
Public Member Functions | Public Attributes | List of all members
SkTQuad Class Reference

#include <SkPathOpsQuad.h>

Inheritance diagram for SkTQuad:
SkTCurve

Public Member Functions

 SkTQuad ()
 
 SkTQuad (const SkDQuad &q)
 
 ~SkTQuad () override
 
const SkDPointoperator[] (int n) const override
 
SkDPointoperator[] (int n) override
 
bool collapsed () const override
 
bool controlsInside () const override
 
void debugInit () override
 
SkDVector dxdyAtT (double t) const override
 
bool hullIntersects (const SkDQuad &quad, bool *isLinear) const override
 
bool hullIntersects (const SkDConic &conic, bool *isLinear) const override
 
bool hullIntersects (const SkDCubic &cubic, bool *isLinear) const override
 
bool hullIntersects (const SkTCurve &curve, bool *isLinear) const override
 
int intersectRay (SkIntersections *i, const SkDLine &line) const override
 
bool IsConic () const override
 
SkTCurvemake (SkArenaAlloc &heap) const override
 
int maxIntersections () const override
 
void otherPts (int oddMan, const SkDPoint *endPt[2]) const override
 
int pointCount () const override
 
int pointLast () const override
 
SkDPoint ptAtT (double t) const override
 
void setBounds (SkDRect *) const override
 
void subDivide (double t1, double t2, SkTCurve *curve) const override
 
- Public Member Functions inherited from SkTCurve
virtual ~SkTCurve ()
 
virtual const SkDPointoperator[] (int n) const =0
 
virtual SkDPointoperator[] (int n)=0
 
virtual bool collapsed () const =0
 
virtual bool controlsInside () const =0
 
virtual void debugInit ()=0
 
virtual SkDVector dxdyAtT (double t) const =0
 
virtual bool hullIntersects (const SkDQuad &, bool *isLinear) const =0
 
virtual bool hullIntersects (const SkDConic &, bool *isLinear) const =0
 
virtual bool hullIntersects (const SkDCubic &, bool *isLinear) const =0
 
virtual bool hullIntersects (const SkTCurve &, bool *isLinear) const =0
 
virtual int intersectRay (SkIntersections *i, const SkDLine &line) const =0
 
virtual bool IsConic () const =0
 
virtual SkTCurvemake (SkArenaAlloc &) const =0
 
virtual int maxIntersections () const =0
 
virtual void otherPts (int oddMan, const SkDPoint *endPt[2]) const =0
 
virtual int pointCount () const =0
 
virtual int pointLast () const =0
 
virtual SkDPoint ptAtT (double t) const =0
 
virtual void setBounds (SkDRect *) const =0
 
virtual void subDivide (double t1, double t2, SkTCurve *curve) const =0
 

Public Attributes

SkDQuad fQuad
 

Detailed Description

Definition at line 139 of file SkPathOpsQuad.h.

Constructor & Destructor Documentation

◆ SkTQuad() [1/2]

SkTQuad::SkTQuad ( )
inline

Definition at line 143 of file SkPathOpsQuad.h.

143{}

◆ SkTQuad() [2/2]

SkTQuad::SkTQuad ( const SkDQuad q)
inline

Definition at line 145 of file SkPathOpsQuad.h.

146 : fQuad(q) {
147 }
SkDQuad fQuad

◆ ~SkTQuad()

SkTQuad::~SkTQuad ( )
inlineoverride

Definition at line 149 of file SkPathOpsQuad.h.

149{}

Member Function Documentation

◆ collapsed()

bool SkTQuad::collapsed ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 154 of file SkPathOpsQuad.h.

154{ return fQuad.collapsed(); }
bool collapsed() const
Definition: SkPathOpsQuad.h:41

◆ controlsInside()

bool SkTQuad::controlsInside ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 155 of file SkPathOpsQuad.h.

155{ return fQuad.controlsInside(); }
bool controlsInside() const
Definition: SkPathOpsQuad.h:45

◆ debugInit()

void SkTQuad::debugInit ( )
inlineoverridevirtual

Implements SkTCurve.

Definition at line 156 of file SkPathOpsQuad.h.

156{ return fQuad.debugInit(); }
void debugInit()
Definition: SkPathOpsQuad.h:52

◆ dxdyAtT()

SkDVector SkTQuad::dxdyAtT ( double  t) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 160 of file SkPathOpsQuad.h.

160{ return fQuad.dxdyAtT(t); }
SkDVector dxdyAtT(double t) const

◆ hullIntersects() [1/4]

bool SkTQuad::hullIntersects ( const SkDConic conic,
bool *  isLinear 
) const
overridevirtual

Implements SkTCurve.

Definition at line 413 of file SkPathOpsQuad.cpp.

413 {
414 return conic.hullIntersects(fQuad, isLinear);
415}
AI float conic(float tolerance, const SkPoint pts[], float w, const VectorXform &vectorXform=VectorXform())
Definition: WangsFormula.h:287

◆ hullIntersects() [2/4]

bool SkTQuad::hullIntersects ( const SkDCubic cubic,
bool *  isLinear 
) const
overridevirtual

Implements SkTCurve.

Definition at line 417 of file SkPathOpsQuad.cpp.

417 {
418 return cubic.hullIntersects(fQuad, isLinear);
419}
AI float cubic(float precision, const SkPoint pts[], const VectorXform &vectorXform=VectorXform())
Definition: WangsFormula.h:195

◆ hullIntersects() [3/4]

bool SkTQuad::hullIntersects ( const SkDQuad quad,
bool *  isLinear 
) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 165 of file SkPathOpsQuad.h.

165 {
166 return quad.hullIntersects(fQuad, isLinear);
167 }
bool hullIntersects(const SkDQuad &, bool *isLinear) const

◆ hullIntersects() [4/4]

bool SkTQuad::hullIntersects ( const SkTCurve curve,
bool *  isLinear 
) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 172 of file SkPathOpsQuad.h.

172 {
173 return curve.hullIntersects(fQuad, isLinear);
174 }
virtual bool hullIntersects(const SkDQuad &, bool *isLinear) const =0

◆ intersectRay()

int SkTQuad::intersectRay ( SkIntersections i,
const SkDLine line 
) const
overridevirtual

Implements SkTCurve.

Definition at line 409 of file SkPathOpsQuad.cpp.

409 {
410 return i->intersectRay(fQuad, line);
411}

◆ IsConic()

bool SkTQuad::IsConic ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 177 of file SkPathOpsQuad.h.

177{ return false; }

◆ make()

SkTCurve * SkTQuad::make ( SkArenaAlloc heap) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 178 of file SkPathOpsQuad.h.

178{ return heap.make<SkTQuad>(); }
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
Definition: SkArenaAlloc.h:120

◆ maxIntersections()

int SkTQuad::maxIntersections ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 180 of file SkPathOpsQuad.h.

static const int kMaxIntersections
Definition: SkPathOpsQuad.h:37

◆ operator[]() [1/2]

const SkDPoint & SkTQuad::operator[] ( int  n) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 151 of file SkPathOpsQuad.h.

151{ return fQuad[n]; }

◆ operator[]() [2/2]

SkDPoint & SkTQuad::operator[] ( int  n)
inlineoverridevirtual

Implements SkTCurve.

Definition at line 152 of file SkPathOpsQuad.h.

152{ return fQuad[n]; }

◆ otherPts()

void SkTQuad::otherPts ( int  oddMan,
const SkDPoint endPt[2] 
) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 182 of file SkPathOpsQuad.h.

182 {
183 fQuad.otherPts(oddMan, endPt);
184 }
void otherPts(int oddMan, const SkDPoint *endPt[2]) const

◆ pointCount()

int SkTQuad::pointCount ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 186 of file SkPathOpsQuad.h.

186{ return SkDQuad::kPointCount; }
static const int kPointCount
Definition: SkPathOpsQuad.h:35

◆ pointLast()

int SkTQuad::pointLast ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 187 of file SkPathOpsQuad.h.

187{ return SkDQuad::kPointLast; }
static const int kPointLast
Definition: SkPathOpsQuad.h:36

◆ ptAtT()

SkDPoint SkTQuad::ptAtT ( double  t) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 188 of file SkPathOpsQuad.h.

188{ return fQuad.ptAtT(t); }
SkDPoint ptAtT(double t) const

◆ setBounds()

void SkTQuad::setBounds ( SkDRect rect) const
overridevirtual

Implements SkTCurve.

Definition at line 421 of file SkPathOpsQuad.cpp.

421 {
422 rect->setBounds(fQuad);
423}
sk_sp< SkBlender > blender SkRect rect
Definition: SkRecords.h:350

◆ subDivide()

void SkTQuad::subDivide ( double  t1,
double  t2,
SkTCurve curve 
) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 191 of file SkPathOpsQuad.h.

191 {
192 ((SkTQuad*) curve)->fQuad = fQuad.subDivide(t1, t2);
193 }
SkDQuad subDivide(double t1, double t2) const

Member Data Documentation

◆ fQuad

SkDQuad SkTQuad::fQuad

Definition at line 141 of file SkPathOpsQuad.h.


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