skia2/include/core/SkLineClipper.h
reed@android.com 70149060a7 add lineclipper, and test case
git-svn-id: http://skia.googlecode.com/svn/trunk@427 2bbb7eff-a529-9590-31e7-b0007b416f81
2009-11-16 20:39:43 +00:00

30 lines
851 B
C++

#ifndef SkLineClipper_DEFINED
#define SkLineClipper_DEFINED
#include "SkRect.h"
#include "SkPoint.h"
class SkLineClipper {
public:
enum {
kMaxPoints = 4
};
/* Clip the line pts[0]...pts[1] against clip, ignoring segments that
lie completely above or below the clip. For portions to the left or
right, turn those into vertical line segments that are aligned to the
edge of the clip.
Return the number of line segments that result, and store the end-points
of those segments sequentially in lines as follows:
1st segment: lines[0]..lines[1]
2nd segment: lines[1]..lines[2]
3rd segment: lines[2]..lines[3]
*/
static int ClipLine(const SkPoint pts[2], const SkRect& clip,
SkPoint lines[kMaxPoints]);
};
#endif