Anti-Grain Geometry Tutorial
agg_vpgen_clip_polygon.h
1
//----------------------------------------------------------------------------
2
// Anti-Grain Geometry - Version 2.4
3
// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
4
//
5
// Permission to copy, use, modify, sell and distribute this software
6
// is granted provided this copyright notice appears in all copies.
7
// This software is provided "as is" without express or implied
8
// warranty, and with no claim as to its suitability for any purpose.
9
//
10
//----------------------------------------------------------------------------
11
// Contact: mcseem@antigrain.com
12
// mcseemagg@yahoo.com
13
// http://www.antigrain.com
14
//----------------------------------------------------------------------------
15
16
#ifndef AGG_VPGEN_CLIP_POLYGON_INCLUDED
17
#define AGG_VPGEN_CLIP_POLYGON_INCLUDED
18
19
#include "agg_basics.h"
20
21
namespace
agg
22
{
23
24
//======================================================vpgen_clip_polygon
25
//
26
// See Implementation agg_vpgen_clip_polygon.cpp
27
//
28
class
vpgen_clip_polygon
29
{
30
public
:
31
vpgen_clip_polygon
() :
32
m_clip_box(0, 0, 1, 1),
33
m_x1(0),
34
m_y1(0),
35
m_clip_flags(0),
36
m_num_vertices(0),
37
m_vertex(0),
38
m_cmd(path_cmd_move_to)
39
{
40
}
41
42
void
clip_box(
double
x1,
double
y1,
double
x2,
double
y2)
43
{
44
m_clip_box.x1 = x1;
45
m_clip_box.y1 = y1;
46
m_clip_box.x2 = x2;
47
m_clip_box.y2 = y2;
48
m_clip_box.normalize();
49
}
50
51
52
double
x1()
const
{
return
m_clip_box.x1; }
53
double
y1()
const
{
return
m_clip_box.y1; }
54
double
x2()
const
{
return
m_clip_box.x2; }
55
double
y2()
const
{
return
m_clip_box.y2; }
56
57
static
bool
auto_close() {
return
true
; }
58
static
bool
auto_unclose() {
return
false
; }
59
60
void
reset();
61
void
move_to(
double
x,
double
y);
62
void
line_to(
double
x,
double
y);
63
unsigned
vertex(
double
* x,
double
* y);
64
65
private
:
66
unsigned
clipping_flags(
double
x,
double
y);
67
68
private
:
69
rect_d
m_clip_box;
70
double
m_x1;
71
double
m_y1;
72
unsigned
m_clip_flags;
73
double
m_x[4];
74
double
m_y[4];
75
unsigned
m_num_vertices;
76
unsigned
m_vertex;
77
unsigned
m_cmd;
78
};
79
80
}
81
82
83
#endif
agg::rect_base< double >
agg::vpgen_clip_polygon
Definition:
agg_vpgen_clip_polygon.h:28
agg
Definition:
agg_arc.cpp:24
agg-2.4
include
agg_vpgen_clip_polygon.h
Generated by
1.8.13