Flutter Impeller
path_builder.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_IMPELLER_TOOLKIT_INTEROP_PATH_BUILDER_H_
6 #define FLUTTER_IMPELLER_TOOLKIT_INTEROP_PATH_BUILDER_H_
7 
8 #include "flutter/third_party/skia/include/core/SkPath.h"
11 #include "impeller/geometry/rect.h"
16 
17 namespace impeller::interop {
18 
19 class PathBuilder final
20  : public Object<PathBuilder,
21  IMPELLER_INTERNAL_HANDLE_NAME(ImpellerPathBuilder)> {
22  public:
24 
26 
27  PathBuilder(const PathBuilder&) = delete;
28 
29  PathBuilder& operator=(const PathBuilder&) = delete;
30 
31  void MoveTo(const Point& point);
32 
33  void LineTo(const Point& location);
34 
35  void QuadraticCurveTo(const Point& control_point, const Point& end_point);
36 
37  void CubicCurveTo(const Point& control_point_1,
38  const Point& control_point_2,
39  const Point& end_point);
40 
41  void AddRect(const Rect& rect);
42 
43  void AddArc(const Rect& oval_bounds, Degrees start_angle, Degrees end_angle);
44 
45  void AddOval(const Rect& oval_bounds);
46 
47  void AddRoundedRect(const Rect& rect, const RoundingRadii& radii);
48 
49  void Close();
50 
52 
54 
55  private:
56  SkPath builder_;
57 };
58 
59 } // namespace impeller::interop
60 
61 #endif // FLUTTER_IMPELLER_TOOLKIT_INTEROP_PATH_BUILDER_H_
ScopedObject< Path > CopyPath(FillType fill)
Definition: path_builder.cc:67
void AddArc(const Rect &oval_bounds, Degrees start_angle, Degrees end_angle)
Definition: path_builder.cc:41
void MoveTo(const Point &point)
Definition: path_builder.cc:15
void LineTo(const Point &location)
Definition: path_builder.cc:19
void AddOval(const Rect &oval_bounds)
Definition: path_builder.cc:50
void AddRoundedRect(const Rect &rect, const RoundingRadii &radii)
Definition: path_builder.cc:54
PathBuilder & operator=(const PathBuilder &)=delete
void QuadraticCurveTo(const Point &control_point, const Point &end_point)
Definition: path_builder.cc:23
void CubicCurveTo(const Point &control_point_1, const Point &control_point_2, const Point &end_point)
Definition: path_builder.cc:28
ScopedObject< Path > TakePath(FillType fill)
Definition: path_builder.cc:62
PathBuilder(const PathBuilder &)=delete
void AddRect(const Rect &rect)
Definition: path_builder.cc:37