summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas/curve.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-05-27 16:27:20 +0200
committerRobin Gareus <robin@gareus.org>2014-05-27 16:37:01 +0200
commit99c953514bd13a025066f73e179c160cc5145e1b (patch)
tree79a4f98c39edc126d1ad11fb5178ccae7acecbaf /libs/canvas/canvas/curve.h
parentcadf07e362684fc74e5541181d451600767e928d (diff)
implement Curve in/outside fill
Diffstat (limited to 'libs/canvas/canvas/curve.h')
-rw-r--r--libs/canvas/canvas/curve.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/canvas/canvas/curve.h b/libs/canvas/canvas/curve.h
index 1fe21c3307..e6decf8455 100644
--- a/libs/canvas/canvas/curve.h
+++ b/libs/canvas/canvas/curve.h
@@ -35,6 +35,12 @@ public:
CatmullRomUniform,
CatmullRomCentripetal,
};
+
+ enum CurveFill {
+ None,
+ Inside,
+ Outside,
+ };
void compute_bounding_box () const;
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
@@ -43,12 +49,14 @@ public:
void set_points_per_segment (uint32_t n);
bool covers (Duple const &) const;
+ void set_fill_mode (CurveFill cf) { curve_fill = cf; }
private:
Points samples;
Points::size_type n_samples;
uint32_t points_per_segment;
SplineType curve_type;
+ CurveFill curve_fill;
void interpolate ();