/src/skia/src/pathops/SkPathOpsTCurve.h
Line | Count | Source |
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 | | |
11 | | #include "src/pathops/SkPathOpsPoint.h" |
12 | | |
13 | | class SkArenaAlloc; |
14 | | class SkIntersections; |
15 | | struct SkDRect; |
16 | | |
17 | | class SkTCurve { |
18 | | public: |
19 | 238M | 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 |