OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * Copyright 2015 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 GrQuad_DEFINED | |
9 #define GrQuad_DEFINED | |
10 | |
11 #include "SkPoint.h" | |
12 #include "SkMatrix.h" | |
13 | |
14 /** | |
15 * GrQuad is a collection of 4 points which can be used to represent an arbitrar y quadrilateral | |
16 */ | |
17 class GrQuad { | |
18 public: | |
19 GrQuad(const GrQuad& that) { | |
20 *this = that; | |
21 } | |
22 | |
23 GrQuad(const SkRect& rect) { | |
bsalomon
2015/08/19 15:04:51
explicit
| |
24 this->set(rect); | |
25 } | |
26 | |
27 void set(const SkRect& rect) { | |
28 fPoints->setRectFan(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom); | |
29 } | |
30 | |
31 void map(const SkMatrix& matrix) { | |
32 matrix.mapPoints(fPoints, kNumPoints); | |
33 } | |
34 | |
35 void map(const SkRect& rect, const SkMatrix& matrix) { | |
bsalomon
2015/08/19 15:04:51
The other "map" maps the existing values. This one
| |
36 this->set(rect); | |
37 matrix.mapPoints(fPoints, kNumPoints); | |
38 } | |
39 | |
40 const GrQuad& operator=(const GrQuad& that) { | |
41 memcpy(fPoints, that.fPoints, sizeof(SkPoint) * kNumPoints); | |
42 return *this; | |
43 } | |
44 | |
45 SkPoint* points() { | |
bsalomon
2015/08/19 15:04:51
const version?
| |
46 return fPoints; | |
47 } | |
48 | |
49 private: | |
50 static const int kNumPoints = 4; | |
51 SkPoint fPoints[kNumPoints]; | |
52 }; | |
53 | |
54 #endif | |
OLD | NEW |