diff options
Diffstat (limited to 'generic/tkbltGrMisc.h')
-rw-r--r-- | generic/tkbltGrMisc.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/generic/tkbltGrMisc.h b/generic/tkbltGrMisc.h index ba86b75..5c16dce 100644 --- a/generic/tkbltGrMisc.h +++ b/generic/tkbltGrMisc.h @@ -104,6 +104,26 @@ namespace Blt { int offset; } Dashes; + typedef enum { + CLIP_OUTSIDE = 0, + CLIP_INSIDE = 1 << 0, + CLIP_P = 1 << 1, + CLIP_Q = 1 << 2 + } LineRectClipResult; + + inline LineRectClipResult operator|(LineRectClipResult a, LineRectClipResult b) { + return static_cast<LineRectClipResult>(static_cast<int>(a) | static_cast<int>(b)); + } + + inline LineRectClipResult operator&(LineRectClipResult a, LineRectClipResult b) { + return static_cast<LineRectClipResult>(static_cast<int>(a) & static_cast<int>(b)); + } + + inline LineRectClipResult & operator|=(LineRectClipResult & rhs, LineRectClipResult v) { + rhs = rhs | v; + return rhs; + } + extern char* dupstr(const char*); extern Graph* getGraphFromWindowData(Tk_Window tkwin); @@ -111,7 +131,7 @@ namespace Blt { int nScreenPts); extern int polyRectClip(Region2d *extsPtr, Point2d *inputPts, int nInputPts, Point2d *outputPts); - extern int lineRectClip(Region2d *regionPtr, Point2d *p, Point2d *q); + extern LineRectClipResult lineRectClip(Region2d *regionPtr, Point2d *p, Point2d *q); extern Point2d getProjection (int x, int y, Point2d *p, Point2d *q); }; |