Gnash
0.8.11dev
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
libcore
LineStyle.h
Go to the documentation of this file.
1
// LineStyle.h Line style types.
2
//
3
// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
4
// Free Software Foundation, Inc
5
//
6
// This program is free software; you can redistribute it and/or modify
7
// it under the terms of the GNU General Public License as published by
8
// the Free Software Foundation; either version 3 of the License, or
9
// (at your option) any later version.
10
//
11
// This program is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
// GNU General Public License for more details.
15
//
16
// You should have received a copy of the GNU General Public License
17
// along with this program; if not, write to the Free Software
18
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
//
20
// Based on public domain work by Thatcher Ulrich <tu@tulrich.com> 2003
21
22
#ifndef GNASH_LINESTYLE_H
23
#define GNASH_LINESTYLE_H
24
25
#include "
RGBA.h
"
26
#include "
SWF.h
"
27
28
namespace
gnash {
29
class
SWFStream;
30
class
movie_definition;
31
class
RunResources;
32
}
33
34
namespace
gnash {
35
36
enum
CapStyle
{
37
CAP_ROUND
= 0,
38
CAP_NONE
= 1,
39
CAP_SQUARE
= 2
40
};
41
42
enum
JoinStyle
{
43
JOIN_ROUND
= 0,
44
JOIN_BEVEL
= 1,
45
JOIN_MITER
= 2
46
};
47
49
class
LineStyle
50
{
51
public
:
52
54
LineStyle
();
55
69
LineStyle
(boost::uint16_t
width
,
const
rgba
&
color
,
70
bool
scaleThicknessVertically
=
true
,
71
bool
scaleThicknessHorizontally
=
true
,
72
bool
pixelHinting=
false
,
73
bool
noClose
=
false
,
74
CapStyle
startCapStyle
=
CAP_ROUND
,
75
CapStyle
endCapStyle
=
CAP_ROUND
,
76
JoinStyle
joinStyle
=
JOIN_ROUND
,
77
float
miterLimitFactor
=1.0
f
78
)
79
:
80
m_width(width),
81
m_color(color),
82
_scaleVertically(
scaleThicknessVertically
),
83
_scaleHorizontally(
scaleThicknessHorizontally
),
84
_pixelHinting(pixelHinting),
85
_noClose(
noClose
),
86
_startCapStyle(
startCapStyle
),
87
_endCapStyle(
endCapStyle
),
88
_joinStyle(
joinStyle
),
89
_miterLimitFactor(
miterLimitFactor
)
90
{
91
}
92
94
//
100
void
read
(
SWFStream
& in,
SWF::TagType
t
,
movie_definition
& md,
101
const
RunResources
&
r
);
102
105
void
read_morph
(
SWFStream
& in,
SWF::TagType
t
,
movie_definition
& md,
106
const
RunResources
&
r
,
LineStyle
*pOther);
107
109
boost::uint16_t
getThickness
()
const
{
110
return
m_width;
111
}
112
114
bool
scaleThicknessVertically
()
const
{
115
return
_scaleVertically;
116
}
117
119
bool
scaleThicknessHorizontally
()
const
{
120
return
_scaleHorizontally;
121
}
122
124
CapStyle
startCapStyle
()
const
{
125
return
_startCapStyle;
126
}
127
129
CapStyle
endCapStyle
()
const
{
130
return
_endCapStyle;
131
}
132
134
JoinStyle
joinStyle
()
const
{
135
return
_joinStyle;
136
}
137
139
float
miterLimitFactor
()
const
{
140
return
_miterLimitFactor;
141
}
142
145
bool
noClose
()
const
{
146
return
_noClose;
147
}
148
150
bool
doPixelHinting
()
const
{
151
return
_pixelHinting;
152
}
153
155
const
rgba
&
get_color
()
const
{
return
m_color; }
156
158
//
164
void
set_lerp
(
const
LineStyle
& ls1,
const
LineStyle
& ls2,
float
ratio);
165
166
private
:
167
169
boost::uint16_t m_width;
170
171
rgba
m_color;
172
173
bool
_scaleVertically;
174
175
bool
_scaleHorizontally;
176
177
bool
_pixelHinting;
178
179
bool
_noClose;
180
181
CapStyle
_startCapStyle;
182
183
CapStyle
_endCapStyle;
184
185
JoinStyle
_joinStyle;
186
187
float
_miterLimitFactor;
188
};
189
190
inline
void
191
setLerp
(
LineStyle
&
s
,
const
LineStyle
& ls1,
const
LineStyle
& ls2,
double
ratio)
192
{
193
s.
set_lerp
(ls1, ls2, ratio);
194
}
195
196
}
// namespace gnash
197
198
#endif
199
200
// Local Variables:
201
// mode: C++
202
// indent-tabs-mode: t
203
// End:
Generated on Mon Aug 26 2013 23:44:15 for Gnash by
1.8.4