Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/Path.h

Issue 2398453002: Rewrap comments to 80 columns in Source/platform/graphics/. (Closed)
Patch Set: Review feedback Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved.
3 * 2006 Rob Buis <buis@kde.org> 3 * 2006 Rob Buis <buis@kde.org>
4 * Copyright (C) 2007-2008 Torch Mobile, Inc. 4 * Copyright (C) 2007-2008 Torch Mobile, Inc.
5 * Copyright (C) 2013 Google Inc. All rights reserved. 5 * Copyright (C) 2013 Google Inc. All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 enum PathElementType { 48 enum PathElementType {
49 PathElementMoveToPoint, // The points member will contain 1 value. 49 PathElementMoveToPoint, // The points member will contain 1 value.
50 PathElementAddLineToPoint, // The points member will contain 1 value. 50 PathElementAddLineToPoint, // The points member will contain 1 value.
51 PathElementAddQuadCurveToPoint, // The points member will contain 2 values. 51 PathElementAddQuadCurveToPoint, // The points member will contain 2 values.
52 PathElementAddCurveToPoint, // The points member will contain 3 values. 52 PathElementAddCurveToPoint, // The points member will contain 3 values.
53 PathElementCloseSubpath // The points member will contain no values. 53 PathElementCloseSubpath // The points member will contain no values.
54 }; 54 };
55 55
56 // The points in the structure are the same as those that would be used with the 56 // The points in the structure are the same as those that would be used with the
57 // add... method. For example, a line returns the endpoint, while a cubic return s 57 // add... method. For example, a line returns the endpoint, while a cubic
58 // two tangent points and the endpoint. 58 // returns two tangent points and the endpoint.
59 struct PathElement { 59 struct PathElement {
60 PathElementType type; 60 PathElementType type;
61 FloatPoint* points; 61 FloatPoint* points;
62 }; 62 };
63 63
64 typedef void (*PathApplierFunction)(void* info, const PathElement*); 64 typedef void (*PathApplierFunction)(void* info, const PathElement*);
65 65
66 class PLATFORM_EXPORT Path { 66 class PLATFORM_EXPORT Path {
67 USING_FAST_MALLOC(Path); 67 USING_FAST_MALLOC(Path);
68 68
(...skipping 16 matching lines...) Expand all
85 Exact, // Tight, slower version. 85 Exact, // Tight, slower version.
86 }; 86 };
87 FloatRect boundingRect(BoundsType = BoundsType::Conservative) const; 87 FloatRect boundingRect(BoundsType = BoundsType::Conservative) const;
88 FloatRect strokeBoundingRect(const StrokeData&, 88 FloatRect strokeBoundingRect(const StrokeData&,
89 BoundsType = BoundsType::Conservative) const; 89 BoundsType = BoundsType::Conservative) const;
90 90
91 float length() const; 91 float length() const;
92 FloatPoint pointAtLength(float length) const; 92 FloatPoint pointAtLength(float length) const;
93 void pointAndNormalAtLength(float length, FloatPoint&, float&) const; 93 void pointAndNormalAtLength(float length, FloatPoint&, float&) const;
94 94
95 // Helper for computing a sequence of positions and normals (normal angles) on a path. 95 // Helper for computing a sequence of positions and normals (normal angles) on
96 // The best possible access pattern will be one where the |length| value is 96 // a path. The best possible access pattern will be one where the |length|
97 // strictly increasing. 97 // value is strictly increasing. For other access patterns, performance will
98 // For other access patterns, performance will vary depending on curvature 98 // vary depending on curvature and number of segments, but should never be
99 // and number of segments, but should never be worse than that of the 99 // worse than that of the state-less method on Path.
100 // state-less method on Path.
101 class PLATFORM_EXPORT PositionCalculator { 100 class PLATFORM_EXPORT PositionCalculator {
102 WTF_MAKE_NONCOPYABLE(PositionCalculator); 101 WTF_MAKE_NONCOPYABLE(PositionCalculator);
103 USING_FAST_MALLOC(PositionCalculator); 102 USING_FAST_MALLOC(PositionCalculator);
104 103
105 public: 104 public:
106 explicit PositionCalculator(const Path&); 105 explicit PositionCalculator(const Path&);
107 106
108 void pointAndNormalAtLength(float length, FloatPoint&, float&); 107 void pointAndNormalAtLength(float length, FloatPoint&, float&);
109 108
110 private: 109 private:
111 SkPath m_path; 110 SkPath m_path;
112 SkPathMeasure m_pathMeasure; 111 SkPathMeasure m_pathMeasure;
113 SkScalar m_accumulatedLength; 112 SkScalar m_accumulatedLength;
114 }; 113 };
115 114
116 void clear(); 115 void clear();
117 bool isEmpty() const; 116 bool isEmpty() const;
118 bool isClosed() const; 117 bool isClosed() const;
119 // Specify whether this path is volatile. Temporary paths that are discarded o r 118
120 // modified after use should be marked as volatile. This is a hint to the devi ce 119 // Specify whether this path is volatile. Temporary paths that are discarded
121 // to not cache this path. 120 // or modified after use should be marked as volatile. This is a hint to the
121 // device to not cache this path.
122 void setIsVolatile(bool); 122 void setIsVolatile(bool);
123 // Gets the current point of the current path, which is conceptually the final point reached by the path so far. 123
124 // Note the Path can be empty (isEmpty() == true) and still have a current poi nt. 124 // Gets the current point of the current path, which is conceptually the final
125 // point reached by the path so far. Note the Path can be empty
126 // (isEmpty() == true) and still have a current point.
125 bool hasCurrentPoint() const; 127 bool hasCurrentPoint() const;
126 FloatPoint currentPoint() const; 128 FloatPoint currentPoint() const;
127 129
128 void setWindRule(const WindRule); 130 void setWindRule(const WindRule);
129 131
130 void moveTo(const FloatPoint&); 132 void moveTo(const FloatPoint&);
131 void addLineTo(const FloatPoint&); 133 void addLineTo(const FloatPoint&);
132 void addQuadCurveTo(const FloatPoint& controlPoint, 134 void addQuadCurveTo(const FloatPoint& controlPoint,
133 const FloatPoint& endPoint); 135 const FloatPoint& endPoint);
134 void addBezierCurveTo(const FloatPoint& controlPoint1, 136 void addBezierCurveTo(const FloatPoint& controlPoint1,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 void transform(const AffineTransform&); 177 void transform(const AffineTransform&);
176 178
177 void addPathForRoundedRect(const FloatRect&, 179 void addPathForRoundedRect(const FloatRect&,
178 const FloatSize& topLeftRadius, 180 const FloatSize& topLeftRadius,
179 const FloatSize& topRightRadius, 181 const FloatSize& topRightRadius,
180 const FloatSize& bottomLeftRadius, 182 const FloatSize& bottomLeftRadius,
181 const FloatSize& bottomRightRadius); 183 const FloatSize& bottomRightRadius);
182 184
183 bool subtractPath(const Path&); 185 bool subtractPath(const Path&);
184 186
185 // Updates the path to the union (inclusive-or) of itself with the given argum ent. 187 // Updates the path to the union (inclusive-or) of itself with the given
188 // argument.
186 bool unionPath(const Path& other); 189 bool unionPath(const Path& other);
190
187 bool intersectPath(const Path& other); 191 bool intersectPath(const Path& other);
188 192
189 private: 193 private:
190 void addEllipse(const FloatPoint&, 194 void addEllipse(const FloatPoint&,
191 float radiusX, 195 float radiusX,
192 float radiusY, 196 float radiusY,
193 float startAngle, 197 float startAngle,
194 float endAngle, 198 float endAngle,
195 bool anticlockwise); 199 bool anticlockwise);
196 SkPath strokePath(const StrokeData&) const; 200 SkPath strokePath(const StrokeData&) const;
197 201
198 SkPath m_path; 202 SkPath m_path;
199 }; 203 };
200 204
201 #if ENABLE(ASSERT) 205 #if ENABLE(ASSERT)
202 PLATFORM_EXPORT bool ellipseIsRenderable(float startAngle, float endAngle); 206 PLATFORM_EXPORT bool ellipseIsRenderable(float startAngle, float endAngle);
203 #endif 207 #endif
204 208
205 } // namespace blink 209 } // namespace blink
206 210
207 #endif 211 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698