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