1 2 /* 3 * Copyright 2009 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10 #ifndef SkCubicClipper_DEFINED 11 #define SkCubicClipper_DEFINED 12 13 #include "SkPoint.h" 14 #include "SkRect.h" 15 16 /** This class is initialized with a clip rectangle, and then can be fed cubics, 17 which must already be monotonic in Y. 18 19 In the future, it might return a series of segments, allowing it to clip 20 also in X, to ensure that all segments fit in a finite coordinate system. 21 */ 22 class SkCubicClipper { 23 public: 24 SkCubicClipper(); 25 26 void setClip(const SkIRect& clip); 27 28 bool clipCubic(const SkPoint src[4], SkPoint dst[4]); 29 30 static bool ChopMonoAtY(const SkPoint pts[4], SkScalar y, SkScalar* t); 31 private: 32 SkRect fClip; 33 }; 34 35 #endif // SkCubicClipper_DEFINED 36