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

#include <SkPathOpsCubic.h>

Inheritance diagram for SkTCubic:
SkTCurve

Public Member Functions

 SkTCubic ()
 
 SkTCubic (const SkDCubic &c)
 
 ~SkTCubic () 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

SkDCubic fCubic
 

Detailed Description

Definition at line 196 of file SkPathOpsCubic.h.

Constructor & Destructor Documentation

◆ SkTCubic() [1/2]

SkTCubic::SkTCubic ( )
inline

Definition at line 200 of file SkPathOpsCubic.h.

200{}

◆ SkTCubic() [2/2]

SkTCubic::SkTCubic ( const SkDCubic c)
inline

Definition at line 202 of file SkPathOpsCubic.h.

203 : fCubic(c) {
204 }
SkDCubic fCubic

◆ ~SkTCubic()

SkTCubic::~SkTCubic ( )
inlineoverride

Definition at line 206 of file SkPathOpsCubic.h.

206{}

Member Function Documentation

◆ collapsed()

bool SkTCubic::collapsed ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 211 of file SkPathOpsCubic.h.

211{ return fCubic.collapsed(); }
bool collapsed() const

◆ controlsInside()

bool SkTCubic::controlsInside ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 212 of file SkPathOpsCubic.h.

212{ return fCubic.controlsInside(); }
bool controlsInside() const

◆ debugInit()

void SkTCubic::debugInit ( )
inlineoverridevirtual

Implements SkTCurve.

Definition at line 213 of file SkPathOpsCubic.h.

213{ return fCubic.debugInit(); }
void debugInit()

◆ dxdyAtT()

SkDVector SkTCubic::dxdyAtT ( double  t) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 217 of file SkPathOpsCubic.h.

217{ return fCubic.dxdyAtT(t); }
SkDVector dxdyAtT(double t) const

◆ hullIntersects() [1/4]

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

Implements SkTCurve.

Definition at line 758 of file SkPathOpsCubic.cpp.

758 {
759 return conic.hullIntersects(fCubic, isLinear);
760}
AI float conic(float tolerance, const SkPoint pts[], float w, const VectorXform &vectorXform=VectorXform())
Definition: WangsFormula.h:287

◆ hullIntersects() [2/4]

bool SkTCubic::hullIntersects ( const SkDCubic cubic,
bool *  isLinear 
) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 224 of file SkPathOpsCubic.h.

224 {
225 return cubic.hullIntersects(fCubic, isLinear);
226 }
AI float cubic(float precision, const SkPoint pts[], const VectorXform &vectorXform=VectorXform())
Definition: WangsFormula.h:195

◆ hullIntersects() [3/4]

bool SkTCubic::hullIntersects ( const SkDQuad quad,
bool *  isLinear 
) const
overridevirtual

Implements SkTCurve.

Definition at line 754 of file SkPathOpsCubic.cpp.

754 {
755 return quad.hullIntersects(fCubic, isLinear);
756}
bool hullIntersects(const SkDQuad &, bool *isLinear) const

◆ hullIntersects() [4/4]

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

Implements SkTCurve.

Definition at line 228 of file SkPathOpsCubic.h.

228 {
229 return curve.hullIntersects(fCubic, isLinear);
230 }
virtual bool hullIntersects(const SkDQuad &, bool *isLinear) const =0

◆ intersectRay()

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

Implements SkTCurve.

Definition at line 750 of file SkPathOpsCubic.cpp.

750 {
751 return i->intersectRay(fCubic, line);
752}

◆ IsConic()

bool SkTCubic::IsConic ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 233 of file SkPathOpsCubic.h.

233{ return false; }

◆ make()

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

Implements SkTCurve.

Definition at line 234 of file SkPathOpsCubic.h.

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

◆ maxIntersections()

int SkTCubic::maxIntersections ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 236 of file SkPathOpsCubic.h.

static const int kMaxIntersections

◆ operator[]() [1/2]

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

Implements SkTCurve.

Definition at line 208 of file SkPathOpsCubic.h.

208{ return fCubic[n]; }

◆ operator[]() [2/2]

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

Implements SkTCurve.

Definition at line 209 of file SkPathOpsCubic.h.

209{ return fCubic[n]; }

◆ otherPts()

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

Implements SkTCurve.

Definition at line 238 of file SkPathOpsCubic.h.

238 {
239 fCubic.otherPts(oddMan, endPt);
240 }
void otherPts(int index, const SkDPoint *o1Pts[kPointCount - 1]) const

◆ pointCount()

int SkTCubic::pointCount ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 242 of file SkPathOpsCubic.h.

242{ return SkDCubic::kPointCount; }
static const int kPointCount

◆ pointLast()

int SkTCubic::pointLast ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 243 of file SkPathOpsCubic.h.

243{ return SkDCubic::kPointLast; }
static const int kPointLast

◆ ptAtT()

SkDPoint SkTCubic::ptAtT ( double  t) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 244 of file SkPathOpsCubic.h.

244{ return fCubic.ptAtT(t); }
SkDPoint ptAtT(double t) const

◆ setBounds()

void SkTCubic::setBounds ( SkDRect rect) const
overridevirtual

Implements SkTCurve.

Definition at line 762 of file SkPathOpsCubic.cpp.

762 {
763 rect->setBounds(fCubic);
764}
sk_sp< SkBlender > blender SkRect rect
Definition: SkRecords.h:350

◆ subDivide()

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

Implements SkTCurve.

Definition at line 247 of file SkPathOpsCubic.h.

247 {
248 ((SkTCubic*) curve)->fCubic = fCubic.subDivide(t1, t2);
249 }
SkDCubic subDivide(double t1, double t2) const

Member Data Documentation

◆ fCubic

SkDCubic SkTCubic::fCubic

Definition at line 198 of file SkPathOpsCubic.h.


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