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

#include <SkPathOpsConic.h>

Inheritance diagram for SkTConic:
SkTCurve

Public Member Functions

 SkTConic ()
 
 SkTConic (const SkDConic &c)
 
 ~SkTConic () 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

SkDConic fConic
 

Detailed Description

Definition at line 149 of file SkPathOpsConic.h.

Constructor & Destructor Documentation

◆ SkTConic() [1/2]

SkTConic::SkTConic ( )
inline

Definition at line 153 of file SkPathOpsConic.h.

153{}

◆ SkTConic() [2/2]

SkTConic::SkTConic ( const SkDConic c)
inline

Definition at line 155 of file SkPathOpsConic.h.

156 : fConic(c) {
157 }
SkDConic fConic

◆ ~SkTConic()

SkTConic::~SkTConic ( )
inlineoverride

Definition at line 159 of file SkPathOpsConic.h.

159{}

Member Function Documentation

◆ collapsed()

bool SkTConic::collapsed ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 164 of file SkPathOpsConic.h.

164{ return fConic.collapsed(); }
bool collapsed() const

◆ controlsInside()

bool SkTConic::controlsInside ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 165 of file SkPathOpsConic.h.

165{ return fConic.controlsInside(); }
bool controlsInside() const

◆ debugInit()

void SkTConic::debugInit ( )
inlineoverridevirtual

Implements SkTCurve.

Definition at line 166 of file SkPathOpsConic.h.

166{ return fConic.debugInit(); }
void debugInit()

◆ dxdyAtT()

SkDVector SkTConic::dxdyAtT ( double  t) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 170 of file SkPathOpsConic.h.

170{ return fConic.dxdyAtT(t); }
SkDVector dxdyAtT(double t) const

◆ hullIntersects() [1/4]

bool SkTConic::hullIntersects ( const SkDConic conic,
bool *  isLinear 
) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 176 of file SkPathOpsConic.h.

176 {
177 return conic.hullIntersects(fConic, isLinear);
178 }
AI float conic(float tolerance, const SkPoint pts[], float w, const VectorXform &vectorXform=VectorXform())
Definition: WangsFormula.h:287

◆ hullIntersects() [2/4]

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

Implements SkTCurve.

Definition at line 191 of file SkPathOpsConic.cpp.

191 {
192 return cubic.hullIntersects(fConic, isLinear);
193}
AI float cubic(float precision, const SkPoint pts[], const VectorXform &vectorXform=VectorXform())
Definition: WangsFormula.h:195

◆ hullIntersects() [3/4]

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

Implements SkTCurve.

Definition at line 187 of file SkPathOpsConic.cpp.

187 {
188 return quad.hullIntersects(fConic, isLinear);
189}
bool hullIntersects(const SkDQuad &, bool *isLinear) const

◆ hullIntersects() [4/4]

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

Implements SkTCurve.

Definition at line 182 of file SkPathOpsConic.h.

182 {
183 return curve.hullIntersects(fConic, isLinear);
184 }
virtual bool hullIntersects(const SkDQuad &, bool *isLinear) const =0

◆ intersectRay()

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

Implements SkTCurve.

Definition at line 183 of file SkPathOpsConic.cpp.

183 {
184 return i->intersectRay(fConic, line);
185}

◆ IsConic()

bool SkTConic::IsConic ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 187 of file SkPathOpsConic.h.

187{ return true; }

◆ make()

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

Implements SkTCurve.

Definition at line 188 of file SkPathOpsConic.h.

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

◆ maxIntersections()

int SkTConic::maxIntersections ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 190 of file SkPathOpsConic.h.

static const int kMaxIntersections

◆ operator[]() [1/2]

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

Implements SkTCurve.

Definition at line 161 of file SkPathOpsConic.h.

161{ return fConic[n]; }

◆ operator[]() [2/2]

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

Implements SkTCurve.

Definition at line 162 of file SkPathOpsConic.h.

162{ return fConic[n]; }

◆ otherPts()

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

Implements SkTCurve.

Definition at line 192 of file SkPathOpsConic.h.

192 {
193 fConic.otherPts(oddMan, endPt);
194 }
void otherPts(int oddMan, const SkDPoint *endPt[2]) const

◆ pointCount()

int SkTConic::pointCount ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 196 of file SkPathOpsConic.h.

196{ return SkDConic::kPointCount; }
static const int kPointCount

◆ pointLast()

int SkTConic::pointLast ( ) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 197 of file SkPathOpsConic.h.

197{ return SkDConic::kPointLast; }
static const int kPointLast

◆ ptAtT()

SkDPoint SkTConic::ptAtT ( double  t) const
inlineoverridevirtual

Implements SkTCurve.

Definition at line 198 of file SkPathOpsConic.h.

198{ return fConic.ptAtT(t); }
SkDPoint ptAtT(double t) const

◆ setBounds()

void SkTConic::setBounds ( SkDRect rect) const
overridevirtual

Implements SkTCurve.

Definition at line 195 of file SkPathOpsConic.cpp.

195 {
196 rect->setBounds(fConic);
197}
sk_sp< SkBlender > blender SkRect rect
Definition: SkRecords.h:350

◆ subDivide()

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

Implements SkTCurve.

Definition at line 201 of file SkPathOpsConic.h.

201 {
202 ((SkTConic*) curve)->fConic = fConic.subDivide(t1, t2);
203 }
SkDConic subDivide(double t1, double t2) const

Member Data Documentation

◆ fConic

SkDConic SkTConic::fConic

Definition at line 151 of file SkPathOpsConic.h.


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