Anti-Grain Geometry Tutorial
agg_vcgen_dash.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
// Line dash generator
17
//
18
//----------------------------------------------------------------------------
19
#ifndef AGG_VCGEN_DASH_INCLUDED
20
#define AGG_VCGEN_DASH_INCLUDED
21
22
#include "agg_basics.h"
23
#include "agg_vertex_sequence.h"
24
25
namespace
agg
26
{
27
28
//---------------------------------------------------------------vcgen_dash
29
//
30
// See Implementation agg_vcgen_dash.cpp
31
//
32
class
vcgen_dash
33
{
34
enum
max_dashes_e
35
{
36
max_dashes = 32
37
};
38
39
enum
status_e
40
{
41
initial,
42
ready,
43
polyline,
44
stop
45
};
46
47
public
:
48
typedef
vertex_sequence<vertex_dist, 6>
vertex_storage
;
49
50
vcgen_dash
();
51
52
void
remove_all_dashes();
53
void
add_dash(
double
dash_len,
double
gap_len);
54
void
dash_start(
double
ds);
55
56
void
shorten(
double
s) { m_shorten = s; }
57
double
shorten()
const
{
return
m_shorten; }
58
59
// Vertex Generator Interface
60
void
remove_all();
61
void
add_vertex(
double
x,
double
y,
unsigned
cmd);
62
63
// Vertex Source Interface
64
void
rewind(
unsigned
path_id);
65
unsigned
vertex(
double
* x,
double
* y);
66
67
private
:
68
vcgen_dash
(
const
vcgen_dash
&);
69
const
vcgen_dash
& operator = (
const
vcgen_dash
&);
70
71
void
calc_dash_start(
double
ds);
72
73
double
m_dashes[max_dashes];
74
double
m_total_dash_len;
75
unsigned
m_num_dashes;
76
double
m_dash_start;
77
double
m_shorten;
78
double
m_curr_dash_start;
79
unsigned
m_curr_dash;
80
double
m_curr_rest;
81
const
vertex_dist
* m_v1;
82
const
vertex_dist
* m_v2;
83
84
vertex_storage m_src_vertices;
85
unsigned
m_closed;
86
status_e m_status;
87
unsigned
m_src_vertex;
88
};
89
90
91
}
92
93
#endif
agg::vcgen_dash
Definition:
agg_vcgen_dash.h:32
agg::vertex_dist
Definition:
agg_vertex_sequence.h:131
agg::vertex_sequence< vertex_dist, 6 >
agg
Definition:
agg_arc.cpp:24
agg-2.4
include
agg_vcgen_dash.h
Generated by
1.8.13