Flutter Engine
The Flutter Engine
SkPathOpsTCurve.h
Go to the documentation of this file.
1/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkPathOpsTCurve_DEFINED
9#define SkPathOpsTCurve_DEFINED
10
12
13class SkArenaAlloc;
14class SkIntersections;
15struct SkDRect;
16
17class SkTCurve {
18public:
19 virtual ~SkTCurve() {}
20 virtual const SkDPoint& operator[](int n) const = 0;
21 virtual SkDPoint& operator[](int n) = 0;
22
23 virtual bool collapsed() const = 0;
24 virtual bool controlsInside() const = 0;
25 virtual void debugInit() = 0;
26#if DEBUG_T_SECT
27 virtual void dumpID(int id) const = 0;
28#endif
29 virtual SkDVector dxdyAtT(double t) const = 0;
30 virtual bool hullIntersects(const SkDQuad& , bool* isLinear) const = 0;
31 virtual bool hullIntersects(const SkDConic& , bool* isLinear) const = 0;
32 virtual bool hullIntersects(const SkDCubic& , bool* isLinear) const = 0;
33 virtual bool hullIntersects(const SkTCurve& , bool* isLinear) const = 0;
34 virtual int intersectRay(SkIntersections* i, const SkDLine& line) const = 0;
35 virtual bool IsConic() const = 0;
36 virtual SkTCurve* make(SkArenaAlloc& ) const = 0;
37 virtual int maxIntersections() const = 0;
38 virtual void otherPts(int oddMan, const SkDPoint* endPt[2]) const = 0;
39 virtual int pointCount() const = 0;
40 virtual int pointLast() const = 0;
41 virtual SkDPoint ptAtT(double t) const = 0;
42 virtual void setBounds(SkDRect* ) const = 0;
43 virtual void subDivide(double t1, double t2, SkTCurve* curve) const = 0;
44#ifdef SK_DEBUG
45 virtual SkOpGlobalState* globalState() const = 0;
46#endif
47};
48
49#endif
virtual void otherPts(int oddMan, const SkDPoint *endPt[2]) const =0
virtual SkDPoint ptAtT(double t) const =0
virtual bool hullIntersects(const SkDCubic &, bool *isLinear) const =0
virtual bool hullIntersects(const SkTCurve &, bool *isLinear) const =0
virtual SkDPoint & operator[](int n)=0
virtual bool collapsed() const =0
virtual const SkDPoint & operator[](int n) const =0
virtual ~SkTCurve()
virtual void debugInit()=0
virtual bool controlsInside() const =0
virtual int intersectRay(SkIntersections *i, const SkDLine &line) const =0
virtual bool hullIntersects(const SkDConic &, bool *isLinear) const =0
virtual int pointCount() const =0
virtual void subDivide(double t1, double t2, SkTCurve *curve) const =0
virtual bool hullIntersects(const SkDQuad &, bool *isLinear) const =0
virtual bool IsConic() const =0
virtual void setBounds(SkDRect *) const =0
virtual int maxIntersections() const =0
virtual SkTCurve * make(SkArenaAlloc &) const =0
virtual SkDVector dxdyAtT(double t) const =0
virtual int pointLast() const =0