1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>Ipelib: IpePainter Class Reference</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.1 -->
10
<li><a href="index.html"><span>Main Page</span></a></li>
11
<li><a href="modules.html"><span>Modules</span></a></li>
12
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
16
<li><a href="annotated.html"><span>Class List</span></a></li>
17
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
18
<li><a href="functions.html"><span>Class Members</span></a></li>
20
<h1>IpePainter Class Reference<br>
22
[<a class="el" href="group__base.html">Ipe Base</a>]</small>
23
</h1><!-- doxytag: class="IpePainter" -->Interface for drawing.
24
<a href="#_details">More...</a>
26
Inherited by <a class="el" href="class_ipe_b_box_painter.html">IpeBBoxPainter</a>, and IpePdfPainter.
28
<a href="class_ipe_painter-members.html">List of all members.</a><h2>Public Member Functions</h2>
30
<li><a class="el" href="class_ipe_painter.html#54f550c1d1435858f213dbb3b9a78ac9">IpePainter</a> (const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> *style)
31
<li>virtual <a class="el" href="class_ipe_painter.html#f9d6507a42a6680b3beb71633a89fdbd">~IpePainter</a> ()
32
<li>void <a class="el" href="class_ipe_painter.html#542b1a9a0451743db9e96ffb924c525b">Transform</a> (const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> &m)
33
<li>void <a class="el" href="class_ipe_painter.html#0e7dac3e218d57ad4a3fe80db1b24141">Untransform</a> (bool direct)
34
<li>void <a class="el" href="class_ipe_painter.html#79d76e93e35b6850859f14cc9208d57d">Translate</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
35
<li>void <a class="el" href="class_ipe_painter.html#275d5459e92a76ad8c9380a623cb5eef">Push</a> ()
36
<li>void <a class="el" href="class_ipe_painter.html#4fde81483d7fe886793085de6d20238b">Pop</a> ()
37
<li>void <a class="el" href="class_ipe_painter.html#c473e683ac238caac0706d06998e8dbf">NewPath</a> ()
38
<li>void <a class="el" href="class_ipe_painter.html#f2159ba549b4fbf3e2f2c23859705291">MoveTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
39
<li>void <a class="el" href="class_ipe_painter.html#adac7e62f1d8067e071f56cb76f95c63">LineTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
40
<li>void <a class="el" href="class_ipe_painter.html#a6742c550500bd93b2fb2380f6ad6823">CurveTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v1, const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v2, const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v3)
41
<li>void <a class="el" href="class_ipe_painter.html#2c546d317c62ee0cd11d8623749b5330">CurveTo</a> (const <a class="el" href="class_ipe_bezier.html">IpeBezier</a> &bezier)
42
<li>virtual void <a class="el" href="class_ipe_painter.html#07bb41e84cf2c9c7640bd226006e8fcf">Rect</a> (const <a class="el" href="class_ipe_rect.html">IpeRect</a> &re)
43
<li>void <a class="el" href="class_ipe_painter.html#58d5d760d6266564925eb2841285f303">DrawEllipse</a> ()
44
<li>void <a class="el" href="class_ipe_painter.html#b40c24fa97b144e7dc9547d96257b5bc">DrawArc</a> (double alpha)
45
<li>void <a class="el" href="class_ipe_painter.html#f45e5265277c48de7417867149d76061">ClosePath</a> ()
46
<li>void <a class="el" href="class_ipe_painter.html#638f3a2323e90ac10f7761924261dc4b">DrawPath</a> ()
47
<li>void <a class="el" href="class_ipe_painter.html#06a322ba34130549246aff02fb622a4b">DrawBitmap</a> (<a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> bitmap)
48
<li>void <a class="el" href="class_ipe_painter.html#ca512ad294b85aba99ca70af9638a261">DrawText</a> (const <a class="el" href="class_ipe_text.html">IpeText</a> *text)
49
<li>void <a class="el" href="class_ipe_painter.html#f3ad8afadb535b238cd20f643024b66a">SetStroke</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> color)
50
<li>void <a class="el" href="class_ipe_painter.html#28f0745abcfc4a583c1b3d3bcfb3b8ea">SetFill</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> color)
51
<li>void <a class="el" href="class_ipe_painter.html#183308172e3a68e9a1c9929e960b34bf">SetLineWidth</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> wid)
52
<li>void <a class="el" href="class_ipe_painter.html#a99bd83cc0a0b267d804169fbb4bd443">SetDashStyle</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> dash)
53
<li>void <a class="el" href="class_ipe_painter.html#433e3be9d83e3e00b1bc6e7a7fd4875b">SetLineCap</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> cap)
54
<li>void <a class="el" href="class_ipe_painter.html#df2c9ec9c55168e4b90f52a403f0320d">SetLineJoin</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> join)
55
<li>void <a class="el" href="class_ipe_painter.html#6d2a72b70c2280ee32b3a6db711de92b">SetWindRule</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> rule)
56
<li>void <a class="el" href="class_ipe_painter.html#7ea3a5bac137d88d688f94340de70927">SetTextSize</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> size)
57
<li>void <a class="el" href="class_ipe_painter.html#c2053520ba1984426664e663f22ace55">SetMarkSize</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> size)
58
<li>void <a class="el" href="class_ipe_painter.html#42689f00801344b78ea00a261e912a57">SetMarkShape</a> (int shape)
59
<li>const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * <a class="el" href="class_ipe_painter.html#f9dbf422454749ec7fbc342e3b62899d">StyleSheet</a> () const
60
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a16a77ab52b1da7345b02814142719e2">Stroke</a> () const
61
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#7723d2c28be7dd411d11c546bd9ff633">Fill</a> () const
62
<li>const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> & <a class="el" href="class_ipe_painter.html#49e2d418104a13fd286a8cad677b1df4">Matrix</a> () const
63
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#8a902a965fdb44294b8639537c7665c2">LineWidth</a> () const
64
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#57066a1eb63160e3a9ba3c6bc62fbee5">DashStyle</a> () const
65
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#285b1937cd1a5829e71da880a590b119">LineCap</a> () const
66
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#127e5aa89c738770abd8d7bb839d1318">LineJoin</a> () const
67
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#8bf880fd876a0bb4490567436b849c08">WindRule</a> () const
68
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a1da6ae8aba94dbdac52db0cbd903968">TextSize</a> () const
69
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#ad0546bb83e1fba388758af9c9c37d47">MarkSize</a> () const
70
<li>int <a class="el" href="class_ipe_painter.html#27b0be585067c6c4a57888359103ba3e">MarkShape</a> () const
71
<li>const <a class="el" href="class_ipe_repository.html">IpeRepository</a> * <a class="el" href="class_ipe_painter.html#cbd734491f135ef73aed5ee619425abd">Repository</a> () const
73
<h2>Protected Types</h2>
75
<li><a class="anchor" name="c4fc8f3a2887cb4ae681cf66b6fb67ec"></a><!-- doxytag: member="IpePainter::StateSeq" ref="c4fc8f3a2887cb4ae681cf66b6fb67ec" args="" -->
76
typedef std::list< State > <b>StateSeq</b>
78
<h2>Protected Member Functions</h2>
80
<li>virtual void <a class="el" href="class_ipe_painter.html#0bf81a36d0b1bc422bcab11859472fc5">DoPush</a> ()
81
<li>virtual void <a class="el" href="class_ipe_painter.html#896d7e9906077587cf57ae909a805727">DoPop</a> ()
82
<li>virtual void <a class="el" href="class_ipe_painter.html#5d234ec0edab0ab40dab027cd73d7715">DoNewPath</a> ()
83
<li>virtual void <a class="el" href="class_ipe_painter.html#9dd7cfe4535a9432629c4f9e6b55b32c">DoMoveTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
84
<li>virtual void <a class="el" href="class_ipe_painter.html#e98da435504a0af7b2d43b11f5f833a0">DoLineTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
85
<li>virtual void <a class="el" href="class_ipe_painter.html#236305daf03a444c17b8afc357f96038">DoCurveTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v1, const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v2, const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v3)
86
<li>virtual void <a class="el" href="class_ipe_painter.html#35f44448303aaf635b1b64bd756c0374">DoClosePath</a> ()
87
<li>virtual void <a class="el" href="class_ipe_painter.html#6f1e38d86a1fb3f9b44694f24ea876c3">DoDrawPath</a> ()
88
<li>virtual void <a class="el" href="class_ipe_painter.html#925ff79289ebceb6c640f8fecb3d75bf">DoDrawBitmap</a> (<a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> bitmap)
89
<li>virtual void <a class="el" href="class_ipe_painter.html#16cc51ba8861d3ee94b5c61564b0e0d7">DoDrawText</a> (const <a class="el" href="class_ipe_text.html">IpeText</a> *text)
91
<h2>Protected Attributes</h2>
93
<li><a class="anchor" name="741ad039cd82857b3f0e8b8d25a2cf29"></a><!-- doxytag: member="IpePainter::iState" ref="741ad039cd82857b3f0e8b8d25a2cf29" args="" -->
94
StateSeq <b>iState</b>
95
<li><a class="anchor" name="29413fb1a45eaa6c6c6480db3b9adf04"></a><!-- doxytag: member="IpePainter::iStyleSheet" ref="29413fb1a45eaa6c6c6480db3b9adf04" args="" -->
96
const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * <b>iStyleSheet</b>
97
<li><a class="anchor" name="f24379c8b60e06fffefbe9cc7d9c46e9"></a><!-- doxytag: member="IpePainter::iInPath" ref="f24379c8b60e06fffefbe9cc7d9c46e9" args="" -->
100
<hr><a name="_details"></a><h2>Detailed Description</h2>
101
Interface for drawing.
103
IpePainter-derived classes are used for drawing to the screen and for generating PDF and Postscript output.<p>
104
The <a class="el" href="class_ipe_painter.html">IpePainter</a> maintains a stack of graphics states, which includes stroke and fill color, line width, dash style, miter limit, line cap and line join, and the current transformation matrix. The <a class="el" href="class_ipe_painter.html">IpePainter</a> class takes care of maintaining this stack, and setting of the attributes in the current graphics state.<p>
105
Setting an attribute with a symbolic value is resolved immediately using the <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> attached to the <a class="el" href="class_ipe_painter.html">IpePainter</a>, so calling the <a class="el" href="class_ipe_painter.html#a16a77ab52b1da7345b02814142719e2">Stroke()</a> or <a class="el" href="class_ipe_painter.html#7723d2c28be7dd411d11c546bd9ff633">Fill()</a> methods of <a class="el" href="class_ipe_painter.html">IpePainter</a> will return the current absolute color.<p>
106
It's okay to set symbolic attributes that the stylesheet does not define - they are set to a default absolute value (normal, black, solid, etc.).<p>
107
A null fill color is drawn as if it was void. Ipe objects exploit this: only group objects ever need to explicitly contain a 'void' fill color.<p>
108
A null stroke color means not to draw any outline on paths. This is only meant to support old Ipe files (before 6.0 pre 25).<p>
109
The correct way to draw filled objects without boundary is to set the line style to 'void'.<p>
110
A null dash style is drawn as solid.<p>
111
A null line width is drawn as whatever is the standard of the drawing medium (that is, as line width 0).<p>
112
The painter is either in "general" or in "path construction" mode. The <a class="el" href="class_ipe_painter.html#c473e683ac238caac0706d06998e8dbf">NewPath()</a> member starts path construction mode. In this mode, only the path construction operators (MoveTo, LineTo, CurveTo, Rect, DrawArc, DrawEllipse, ClosePath), the transformation operators (Transform, Untransform, Translate), and the stack operators (Push, Pop) are admissible. (Pushs and pops must balance inside path construction. Note that pushs and pops inside path construction only affect the current (painter-internal) tranformation matrix, they do not generate Postscript gsave/grestore operators.) The path is drawn using DrawPath, this ends path construction mode. Path construction operators cannot be used in general mode.<p>
113
Derived classes need to implement the DoXXX functions for drawing paths, images, and texts.
115
<hr><h2>Constructor & Destructor Documentation</h2>
116
<a class="anchor" name="54f550c1d1435858f213dbb3b9a78ac9"></a><!-- doxytag: member="IpePainter::IpePainter" ref="54f550c1d1435858f213dbb3b9a78ac9" args="(const IpeStyleSheet *style)" -->
117
<div class="memitem">
118
<div class="memproto">
119
<table class="memname">
121
<td class="memname">IpePainter::IpePainter </td>
123
<td class="paramtype">const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * </td>
124
<td class="paramname"> <em>style</em> </td>
125
<td> ) </td>
126
<td width="100%"></td>
133
Constructor takes a (cascaded) style sheet, which is not owned.
135
The initial graphics state contains all null attributes.
138
<a class="anchor" name="f9d6507a42a6680b3beb71633a89fdbd"></a><!-- doxytag: member="IpePainter::~IpePainter" ref="f9d6507a42a6680b3beb71633a89fdbd" args="()" -->
139
<div class="memitem">
140
<div class="memproto">
141
<table class="memname">
143
<td class="memname">IpePainter::~IpePainter </td>
145
<td class="paramname"> </td>
146
<td> ) </td>
147
<td width="100%"><code> [virtual]</code></td>
159
<hr><h2>Member Function Documentation</h2>
160
<a class="anchor" name="542b1a9a0451743db9e96ffb924c525b"></a><!-- doxytag: member="IpePainter::Transform" ref="542b1a9a0451743db9e96ffb924c525b" args="(const IpeMatrix &m)" -->
161
<div class="memitem">
162
<div class="memproto">
163
<table class="memname">
165
<td class="memname">void IpePainter::Transform </td>
167
<td class="paramtype">const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> & </td>
168
<td class="paramname"> <em>m</em> </td>
169
<td> ) </td>
170
<td width="100%"></td>
177
Concatenate a matrix to current transformation matrix.
182
<a class="anchor" name="0e7dac3e218d57ad4a3fe80db1b24141"></a><!-- doxytag: member="IpePainter::Untransform" ref="0e7dac3e218d57ad4a3fe80db1b24141" args="(bool direct)" -->
183
<div class="memitem">
184
<div class="memproto">
185
<table class="memname">
187
<td class="memname">void IpePainter::Untransform </td>
189
<td class="paramtype">bool </td>
190
<td class="paramname"> <em>direct</em> </td>
191
<td> ) </td>
192
<td width="100%"></td>
199
Reset transformation to original one, but with different origin/direction.
201
This changes the current transformation matrix to the one set before the first Push operation, but maintaining the current origin. If <em>direct</em> is <code>true</code>, then the x-direction is also kept.
204
<a class="anchor" name="79d76e93e35b6850859f14cc9208d57d"></a><!-- doxytag: member="IpePainter::Translate" ref="79d76e93e35b6850859f14cc9208d57d" args="(const IpeVector &v)" -->
205
<div class="memitem">
206
<div class="memproto">
207
<table class="memname">
209
<td class="memname">void IpePainter::Translate </td>
211
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
212
<td class="paramname"> <em>v</em> </td>
213
<td> ) </td>
214
<td width="100%"></td>
221
Concatenate a translation to current transformation matrix.
226
<a class="anchor" name="275d5459e92a76ad8c9380a623cb5eef"></a><!-- doxytag: member="IpePainter::Push" ref="275d5459e92a76ad8c9380a623cb5eef" args="()" -->
227
<div class="memitem">
228
<div class="memproto">
229
<table class="memname">
231
<td class="memname">void IpePainter::Push </td>
233
<td class="paramname"> </td>
234
<td> ) </td>
235
<td width="100%"></td>
242
Save current graphics state.
247
<a class="anchor" name="4fde81483d7fe886793085de6d20238b"></a><!-- doxytag: member="IpePainter::Pop" ref="4fde81483d7fe886793085de6d20238b" args="()" -->
248
<div class="memitem">
249
<div class="memproto">
250
<table class="memname">
252
<td class="memname">void IpePainter::Pop </td>
254
<td class="paramname"> </td>
255
<td> ) </td>
256
<td width="100%"></td>
263
Restore previous graphics state.
268
<a class="anchor" name="c473e683ac238caac0706d06998e8dbf"></a><!-- doxytag: member="IpePainter::NewPath" ref="c473e683ac238caac0706d06998e8dbf" args="()" -->
269
<div class="memitem">
270
<div class="memproto">
271
<table class="memname">
273
<td class="memname">void IpePainter::NewPath </td>
275
<td class="paramname"> </td>
276
<td> ) </td>
277
<td width="100%"></td>
284
Enter path construction mode.
289
<a class="anchor" name="f2159ba549b4fbf3e2f2c23859705291"></a><!-- doxytag: member="IpePainter::MoveTo" ref="f2159ba549b4fbf3e2f2c23859705291" args="(const IpeVector &v)" -->
290
<div class="memitem">
291
<div class="memproto">
292
<table class="memname">
294
<td class="memname">void IpePainter::MoveTo </td>
296
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
297
<td class="paramname"> <em>v</em> </td>
298
<td> ) </td>
299
<td width="100%"></td>
311
<a class="anchor" name="adac7e62f1d8067e071f56cb76f95c63"></a><!-- doxytag: member="IpePainter::LineTo" ref="adac7e62f1d8067e071f56cb76f95c63" args="(const IpeVector &v)" -->
312
<div class="memitem">
313
<div class="memproto">
314
<table class="memname">
316
<td class="memname">void IpePainter::LineTo </td>
318
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
319
<td class="paramname"> <em>v</em> </td>
320
<td> ) </td>
321
<td width="100%"></td>
328
Add line segment to current subpath.
333
<a class="anchor" name="a6742c550500bd93b2fb2380f6ad6823"></a><!-- doxytag: member="IpePainter::CurveTo" ref="a6742c550500bd93b2fb2380f6ad6823" args="(const IpeVector &v1, const IpeVector &v2, const IpeVector &v3)" -->
334
<div class="memitem">
335
<div class="memproto">
336
<table class="memname">
338
<td class="memname">void IpePainter::CurveTo </td>
340
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
341
<td class="paramname"> <em>v1</em>, </td>
344
<td class="paramkey"></td>
346
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
347
<td class="paramname"> <em>v2</em>, </td>
350
<td class="paramkey"></td>
352
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
353
<td class="paramname"> <em>v3</em></td><td> </td>
358
<td></td><td></td><td width="100%"></td>
365
Add a Bezier segment to current subpath.
370
<a class="anchor" name="2c546d317c62ee0cd11d8623749b5330"></a><!-- doxytag: member="IpePainter::CurveTo" ref="2c546d317c62ee0cd11d8623749b5330" args="(const IpeBezier &bezier)" -->
371
<div class="memitem">
372
<div class="memproto">
373
<table class="memname">
375
<td class="memname">void IpePainter::CurveTo </td>
377
<td class="paramtype">const <a class="el" href="class_ipe_bezier.html">IpeBezier</a> & </td>
378
<td class="paramname"> <em>bezier</em> </td>
379
<td> ) </td>
380
<td width="100%"><code> [inline]</code></td>
389
Assumes current position is <code>bezier.iV</code>[0]
392
<a class="anchor" name="07bb41e84cf2c9c7640bd226006e8fcf"></a><!-- doxytag: member="IpePainter::Rect" ref="07bb41e84cf2c9c7640bd226006e8fcf" args="(const IpeRect &re)" -->
393
<div class="memitem">
394
<div class="memproto">
395
<table class="memname">
397
<td class="memname">void IpePainter::Rect </td>
399
<td class="paramtype">const <a class="el" href="class_ipe_rect.html">IpeRect</a> & </td>
400
<td class="paramname"> <em>re</em> </td>
401
<td> ) </td>
402
<td width="100%"><code> [virtual]</code></td>
409
Add a rectangle subpath to the path.
411
Has a default implementation in terms of MoveTo and LineTo, but derived classes can reimplement for efficiency.
414
<a class="anchor" name="58d5d760d6266564925eb2841285f303"></a><!-- doxytag: member="IpePainter::DrawEllipse" ref="58d5d760d6266564925eb2841285f303" args="()" -->
415
<div class="memitem">
416
<div class="memproto">
417
<table class="memname">
419
<td class="memname">void IpePainter::DrawEllipse </td>
421
<td class="paramname"> </td>
422
<td> ) </td>
423
<td width="100%"></td>
430
Draw the unit circle.
432
PDF does not have an "arc" or "circle" primitive, so to draw an arc, circle, or ellipse, Ipe has to translate it into a sequence of Bezier curves.<p>
433
The approximation is based on the following: The unit circle arc from (1,0) to (cos a, sin a) be approximated by a Bezier spline with control points (1, 0), (1, beta) and their mirror images along the line with slope a/2, where beta = 4.0 * (1.0 - cos(a/2)) / (3 * sin(a/2))<p>
434
Ipe draws circles by drawing four Bezier curves for the quadrants, and arcs by patching together quarter circle approximations with a piece computed from the formula above.<p>
435
This does not modify the transformation matrix. The path is generated as a sequence MoveTo .. CurveTo .. ClosePath operators, but is not actually drawn (DrawPath is not called).
438
<a class="anchor" name="b40c24fa97b144e7dc9547d96257b5bc"></a><!-- doxytag: member="IpePainter::DrawArc" ref="b40c24fa97b144e7dc9547d96257b5bc" args="(double alpha)" -->
439
<div class="memitem">
440
<div class="memproto">
441
<table class="memname">
443
<td class="memname">void IpePainter::DrawArc </td>
445
<td class="paramtype">double </td>
446
<td class="paramname"> <em>alpha</em> </td>
447
<td> ) </td>
448
<td width="100%"></td>
455
Draw an arc of the unit circle of length <em>alpha</em>.
457
<em>alpha</em> is normalized to [0, 2 pi], and applied starting from the point (1,0).<p>
458
The function works by generating a sequence of Bezier splines (see DrawEllipse for details of the transformation). It only generates calls to CurveTo. It is assumed that the caller has already executed a MoveTo to the beginning of the arc at (1,0).<p>
459
This function may modify the transformation matrix.
462
<a class="anchor" name="f45e5265277c48de7417867149d76061"></a><!-- doxytag: member="IpePainter::ClosePath" ref="f45e5265277c48de7417867149d76061" args="()" -->
463
<div class="memitem">
464
<div class="memproto">
465
<table class="memname">
467
<td class="memname">void IpePainter::ClosePath </td>
469
<td class="paramname"> </td>
470
<td> ) </td>
471
<td width="100%"></td>
478
Close the current subpath.
483
<a class="anchor" name="638f3a2323e90ac10f7761924261dc4b"></a><!-- doxytag: member="IpePainter::DrawPath" ref="638f3a2323e90ac10f7761924261dc4b" args="()" -->
484
<div class="memitem">
485
<div class="memproto">
486
<table class="memname">
488
<td class="memname">void IpePainter::DrawPath </td>
490
<td class="paramname"> </td>
491
<td> ) </td>
492
<td width="100%"></td>
499
Fill and/or stroke a path (depending on color).
501
As in PDF, an "path" can consist of several subpaths.
504
<a class="anchor" name="06a322ba34130549246aff02fb622a4b"></a><!-- doxytag: member="IpePainter::DrawBitmap" ref="06a322ba34130549246aff02fb622a4b" args="(IpeBitmap bitmap)" -->
505
<div class="memitem">
506
<div class="memproto">
507
<table class="memname">
509
<td class="memname">void IpePainter::DrawBitmap </td>
511
<td class="paramtype"><a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> </td>
512
<td class="paramname"> <em>bitmap</em> </td>
513
<td> ) </td>
514
<td width="100%"></td>
523
Assumes the transformation matrix has been set up to map the unit square to the image area on the paper.
526
<a class="anchor" name="ca512ad294b85aba99ca70af9638a261"></a><!-- doxytag: member="IpePainter::DrawText" ref="ca512ad294b85aba99ca70af9638a261" args="(const IpeText *text)" -->
527
<div class="memitem">
528
<div class="memproto">
529
<table class="memname">
531
<td class="memname">void IpePainter::DrawText </td>
533
<td class="paramtype">const <a class="el" href="class_ipe_text.html">IpeText</a> * </td>
534
<td class="paramname"> <em>text</em> </td>
535
<td> ) </td>
536
<td width="100%"></td>
543
Render a text object.
545
Stroke color is already set, and the origin is the lower-left corner of the text box.
548
<a class="anchor" name="f3ad8afadb535b238cd20f643024b66a"></a><!-- doxytag: member="IpePainter::SetStroke" ref="f3ad8afadb535b238cd20f643024b66a" args="(IpeAttribute color)" -->
549
<div class="memitem">
550
<div class="memproto">
551
<table class="memname">
553
<td class="memname">void IpePainter::SetStroke </td>
555
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
556
<td class="paramname"> <em>color</em> </td>
557
<td> ) </td>
558
<td width="100%"></td>
565
Set stroke color, resolving symbolic color.
570
<a class="anchor" name="28f0745abcfc4a583c1b3d3bcfb3b8ea"></a><!-- doxytag: member="IpePainter::SetFill" ref="28f0745abcfc4a583c1b3d3bcfb3b8ea" args="(IpeAttribute color)" -->
571
<div class="memitem">
572
<div class="memproto">
573
<table class="memname">
575
<td class="memname">void IpePainter::SetFill </td>
577
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
578
<td class="paramname"> <em>color</em> </td>
579
<td> ) </td>
580
<td width="100%"></td>
587
Set fill color, resolving symbolic color.
589
A null fill color will ultimately be rendered as void.
592
<a class="anchor" name="183308172e3a68e9a1c9929e960b34bf"></a><!-- doxytag: member="IpePainter::SetLineWidth" ref="183308172e3a68e9a1c9929e960b34bf" args="(IpeAttribute wid)" -->
593
<div class="memitem">
594
<div class="memproto">
595
<table class="memname">
597
<td class="memname">void IpePainter::SetLineWidth </td>
599
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
600
<td class="paramname"> <em>wid</em> </td>
601
<td> ) </td>
602
<td width="100%"></td>
609
Set line width, resolving symbolic value.
614
<a class="anchor" name="a99bd83cc0a0b267d804169fbb4bd443"></a><!-- doxytag: member="IpePainter::SetDashStyle" ref="a99bd83cc0a0b267d804169fbb4bd443" args="(IpeAttribute dash)" -->
615
<div class="memitem">
616
<div class="memproto">
617
<table class="memname">
619
<td class="memname">void IpePainter::SetDashStyle </td>
621
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
622
<td class="paramname"> <em>dash</em> </td>
623
<td> ) </td>
624
<td width="100%"></td>
631
Set dash style, resolving symbolic value.
636
<a class="anchor" name="433e3be9d83e3e00b1bc6e7a7fd4875b"></a><!-- doxytag: member="IpePainter::SetLineCap" ref="433e3be9d83e3e00b1bc6e7a7fd4875b" args="(IpeAttribute cap)" -->
637
<div class="memitem">
638
<div class="memproto">
639
<table class="memname">
641
<td class="memname">void IpePainter::SetLineCap </td>
643
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
644
<td class="paramname"> <em>cap</em> </td>
645
<td> ) </td>
646
<td width="100%"></td>
658
<a class="anchor" name="df2c9ec9c55168e4b90f52a403f0320d"></a><!-- doxytag: member="IpePainter::SetLineJoin" ref="df2c9ec9c55168e4b90f52a403f0320d" args="(IpeAttribute join)" -->
659
<div class="memitem">
660
<div class="memproto">
661
<table class="memname">
663
<td class="memname">void IpePainter::SetLineJoin </td>
665
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
666
<td class="paramname"> <em>join</em> </td>
667
<td> ) </td>
668
<td width="100%"></td>
680
<a class="anchor" name="6d2a72b70c2280ee32b3a6db711de92b"></a><!-- doxytag: member="IpePainter::SetWindRule" ref="6d2a72b70c2280ee32b3a6db711de92b" args="(IpeAttribute rule)" -->
681
<div class="memitem">
682
<div class="memproto">
683
<table class="memname">
685
<td class="memname">void IpePainter::SetWindRule </td>
687
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
688
<td class="paramname"> <em>rule</em> </td>
689
<td> ) </td>
690
<td width="100%"></td>
697
Set wind rule (wind or even-odd).
702
<a class="anchor" name="7ea3a5bac137d88d688f94340de70927"></a><!-- doxytag: member="IpePainter::SetTextSize" ref="7ea3a5bac137d88d688f94340de70927" args="(IpeAttribute size)" -->
703
<div class="memitem">
704
<div class="memproto">
705
<table class="memname">
707
<td class="memname">void IpePainter::SetTextSize </td>
709
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
710
<td class="paramname"> <em>size</em> </td>
711
<td> ) </td>
712
<td width="100%"></td>
719
Set font size of text objects.
721
Paradoxically, this isn't actually used to render text, but for saving Ipegroup objects! Text goes through the <a class="el" href="class_ipe_latex.html">IpeLatex</a> interface, and the visitor that scans for text objects and writes them to the Latex source file finds the text size information itself.
724
<a class="anchor" name="c2053520ba1984426664e663f22ace55"></a><!-- doxytag: member="IpePainter::SetMarkSize" ref="c2053520ba1984426664e663f22ace55" args="(IpeAttribute size)" -->
725
<div class="memitem">
726
<div class="memproto">
727
<table class="memname">
729
<td class="memname">void IpePainter::SetMarkSize </td>
731
<td class="paramtype"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> </td>
732
<td class="paramname"> <em>size</em> </td>
733
<td> ) </td>
734
<td width="100%"></td>
741
Set size of mark objects.
746
<a class="anchor" name="42689f00801344b78ea00a261e912a57"></a><!-- doxytag: member="IpePainter::SetMarkShape" ref="42689f00801344b78ea00a261e912a57" args="(int shape)" -->
747
<div class="memitem">
748
<div class="memproto">
749
<table class="memname">
751
<td class="memname">void IpePainter::SetMarkShape </td>
753
<td class="paramtype">int </td>
754
<td class="paramname"> <em>shape</em> </td>
755
<td> ) </td>
756
<td width="100%"></td>
763
Set shape of mark objects.
768
<a class="anchor" name="f9dbf422454749ec7fbc342e3b62899d"></a><!-- doxytag: member="IpePainter::StyleSheet" ref="f9dbf422454749ec7fbc342e3b62899d" args="() const" -->
769
<div class="memitem">
770
<div class="memproto">
771
<table class="memname">
773
<td class="memname">const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a>* IpePainter::StyleSheet </td>
775
<td class="paramname"> </td>
776
<td> ) </td>
777
<td width="100%"> const<code> [inline]</code></td>
789
<a class="anchor" name="a16a77ab52b1da7345b02814142719e2"></a><!-- doxytag: member="IpePainter::Stroke" ref="a16a77ab52b1da7345b02814142719e2" args="() const" -->
790
<div class="memitem">
791
<div class="memproto">
792
<table class="memname">
794
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::Stroke </td>
796
<td class="paramname"> </td>
797
<td> ) </td>
798
<td width="100%"> const<code> [inline]</code></td>
805
Return current stroke color (always absolute).
810
<a class="anchor" name="7723d2c28be7dd411d11c546bd9ff633"></a><!-- doxytag: member="IpePainter::Fill" ref="7723d2c28be7dd411d11c546bd9ff633" args="() const" -->
811
<div class="memitem">
812
<div class="memproto">
813
<table class="memname">
815
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::Fill </td>
817
<td class="paramname"> </td>
818
<td> ) </td>
819
<td width="100%"> const<code> [inline]</code></td>
826
Return current fill color (always absolute).
831
<a class="anchor" name="49e2d418104a13fd286a8cad677b1df4"></a><!-- doxytag: member="IpePainter::Matrix" ref="49e2d418104a13fd286a8cad677b1df4" args="() const" -->
832
<div class="memitem">
833
<div class="memproto">
834
<table class="memname">
836
<td class="memname">const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a>& IpePainter::Matrix </td>
838
<td class="paramname"> </td>
839
<td> ) </td>
840
<td width="100%"> const<code> [inline]</code></td>
847
Return current transformation matrix.
852
<a class="anchor" name="8a902a965fdb44294b8639537c7665c2"></a><!-- doxytag: member="IpePainter::LineWidth" ref="8a902a965fdb44294b8639537c7665c2" args="() const" -->
853
<div class="memitem">
854
<div class="memproto">
855
<table class="memname">
857
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::LineWidth </td>
859
<td class="paramname"> </td>
860
<td> ) </td>
861
<td width="100%"> const<code> [inline]</code></td>
868
Return current line width (always absolute).
873
<a class="anchor" name="57066a1eb63160e3a9ba3c6bc62fbee5"></a><!-- doxytag: member="IpePainter::DashStyle" ref="57066a1eb63160e3a9ba3c6bc62fbee5" args="() const" -->
874
<div class="memitem">
875
<div class="memproto">
876
<table class="memname">
878
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::DashStyle </td>
880
<td class="paramname"> </td>
881
<td> ) </td>
882
<td width="100%"> const<code> [inline]</code></td>
889
Return current dash style (always absolute).
894
<a class="anchor" name="285b1937cd1a5829e71da880a590b119"></a><!-- doxytag: member="IpePainter::LineCap" ref="285b1937cd1a5829e71da880a590b119" args="() const" -->
895
<div class="memitem">
896
<div class="memproto">
897
<table class="memname">
899
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::LineCap </td>
901
<td class="paramname"> </td>
902
<td> ) </td>
903
<td width="100%"> const<code> [inline]</code></td>
910
Return current line cap.
915
<a class="anchor" name="127e5aa89c738770abd8d7bb839d1318"></a><!-- doxytag: member="IpePainter::LineJoin" ref="127e5aa89c738770abd8d7bb839d1318" args="() const" -->
916
<div class="memitem">
917
<div class="memproto">
918
<table class="memname">
920
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::LineJoin </td>
922
<td class="paramname"> </td>
923
<td> ) </td>
924
<td width="100%"> const<code> [inline]</code></td>
931
Return current line join.
936
<a class="anchor" name="8bf880fd876a0bb4490567436b849c08"></a><!-- doxytag: member="IpePainter::WindRule" ref="8bf880fd876a0bb4490567436b849c08" args="() const" -->
937
<div class="memitem">
938
<div class="memproto">
939
<table class="memname">
941
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::WindRule </td>
943
<td class="paramname"> </td>
944
<td> ) </td>
945
<td width="100%"> const<code> [inline]</code></td>
952
Return current wind rule.
957
<a class="anchor" name="a1da6ae8aba94dbdac52db0cbd903968"></a><!-- doxytag: member="IpePainter::TextSize" ref="a1da6ae8aba94dbdac52db0cbd903968" args="() const" -->
958
<div class="memitem">
959
<div class="memproto">
960
<table class="memname">
962
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::TextSize </td>
964
<td class="paramname"> </td>
965
<td> ) </td>
966
<td width="100%"> const<code> [inline]</code></td>
973
Return current text font size.
978
<a class="anchor" name="ad0546bb83e1fba388758af9c9c37d47"></a><!-- doxytag: member="IpePainter::MarkSize" ref="ad0546bb83e1fba388758af9c9c37d47" args="() const" -->
979
<div class="memitem">
980
<div class="memproto">
981
<table class="memname">
983
<td class="memname"><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> IpePainter::MarkSize </td>
985
<td class="paramname"> </td>
986
<td> ) </td>
987
<td width="100%"> const<code> [inline]</code></td>
994
Return current mark size.
999
<a class="anchor" name="27b0be585067c6c4a57888359103ba3e"></a><!-- doxytag: member="IpePainter::MarkShape" ref="27b0be585067c6c4a57888359103ba3e" args="() const" -->
1000
<div class="memitem">
1001
<div class="memproto">
1002
<table class="memname">
1004
<td class="memname">int IpePainter::MarkShape </td>
1006
<td class="paramname"> </td>
1007
<td> ) </td>
1008
<td width="100%"> const<code> [inline]</code></td>
1012
<div class="memdoc">
1015
Return current mark shape.
1020
<a class="anchor" name="cbd734491f135ef73aed5ee619425abd"></a><!-- doxytag: member="IpePainter::Repository" ref="cbd734491f135ef73aed5ee619425abd" args="() const" -->
1021
<div class="memitem">
1022
<div class="memproto">
1023
<table class="memname">
1025
<td class="memname">const <a class="el" href="class_ipe_repository.html">IpeRepository</a>* IpePainter::Repository </td>
1027
<td class="paramname"> </td>
1028
<td> ) </td>
1029
<td width="100%"> const<code> [inline]</code></td>
1033
<div class="memdoc">
1041
<a class="anchor" name="0bf81a36d0b1bc422bcab11859472fc5"></a><!-- doxytag: member="IpePainter::DoPush" ref="0bf81a36d0b1bc422bcab11859472fc5" args="()" -->
1042
<div class="memitem">
1043
<div class="memproto">
1044
<table class="memname">
1046
<td class="memname">void IpePainter::DoPush </td>
1048
<td class="paramname"> </td>
1049
<td> ) </td>
1050
<td width="100%"><code> [protected, virtual]</code></td>
1054
<div class="memdoc">
1057
Perform push on output medium (if necessary).
1059
This is not called when client uses Push during path construction!
1062
<a class="anchor" name="896d7e9906077587cf57ae909a805727"></a><!-- doxytag: member="IpePainter::DoPop" ref="896d7e9906077587cf57ae909a805727" args="()" -->
1063
<div class="memitem">
1064
<div class="memproto">
1065
<table class="memname">
1067
<td class="memname">void IpePainter::DoPop </td>
1069
<td class="paramname"> </td>
1070
<td> ) </td>
1071
<td width="100%"><code> [protected, virtual]</code></td>
1075
<div class="memdoc">
1078
Perform pop on output medium (if necessary).
1080
This is not called when client uses Pop during path construction!
1083
<a class="anchor" name="5d234ec0edab0ab40dab027cd73d7715"></a><!-- doxytag: member="IpePainter::DoNewPath" ref="5d234ec0edab0ab40dab027cd73d7715" args="()" -->
1084
<div class="memitem">
1085
<div class="memproto">
1086
<table class="memname">
1088
<td class="memname">void IpePainter::DoNewPath </td>
1090
<td class="paramname"> </td>
1091
<td> ) </td>
1092
<td width="100%"><code> [protected, virtual]</code></td>
1096
<div class="memdoc">
1099
Perform new path operator.
1104
<a class="anchor" name="9dd7cfe4535a9432629c4f9e6b55b32c"></a><!-- doxytag: member="IpePainter::DoMoveTo" ref="9dd7cfe4535a9432629c4f9e6b55b32c" args="(const IpeVector &v)" -->
1105
<div class="memitem">
1106
<div class="memproto">
1107
<table class="memname">
1109
<td class="memname">void IpePainter::DoMoveTo </td>
1111
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1112
<td class="paramname"> <em>v</em> </td>
1113
<td> ) </td>
1114
<td width="100%"><code> [protected, virtual]</code></td>
1118
<div class="memdoc">
1121
Perform moveto operator.
1125
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#a1ea798c33335ad1ed3de2c8c64848b3">IpeBBoxPainter</a>.
1128
<a class="anchor" name="e98da435504a0af7b2d43b11f5f833a0"></a><!-- doxytag: member="IpePainter::DoLineTo" ref="e98da435504a0af7b2d43b11f5f833a0" args="(const IpeVector &v)" -->
1129
<div class="memitem">
1130
<div class="memproto">
1131
<table class="memname">
1133
<td class="memname">void IpePainter::DoLineTo </td>
1135
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1136
<td class="paramname"> <em>v</em> </td>
1137
<td> ) </td>
1138
<td width="100%"><code> [protected, virtual]</code></td>
1142
<div class="memdoc">
1145
Perform lineto operator.
1149
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#4298e92a68e13e6ffd76e5f0e9da8fdc">IpeBBoxPainter</a>.
1152
<a class="anchor" name="236305daf03a444c17b8afc357f96038"></a><!-- doxytag: member="IpePainter::DoCurveTo" ref="236305daf03a444c17b8afc357f96038" args="(const IpeVector &v1, const IpeVector &v2, const IpeVector &v3)" -->
1153
<div class="memitem">
1154
<div class="memproto">
1155
<table class="memname">
1157
<td class="memname">void IpePainter::DoCurveTo </td>
1159
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1160
<td class="paramname"> <em>v1</em>, </td>
1163
<td class="paramkey"></td>
1165
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1166
<td class="paramname"> <em>v2</em>, </td>
1169
<td class="paramkey"></td>
1171
<td class="paramtype">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1172
<td class="paramname"> <em>v3</em></td><td> </td>
1177
<td></td><td></td><td width="100%"><code> [protected, virtual]</code></td>
1181
<div class="memdoc">
1184
Perform curveto operator.
1188
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#35ac16247bbccf32ab113892bda5393e">IpeBBoxPainter</a>.
1191
<a class="anchor" name="35f44448303aaf635b1b64bd756c0374"></a><!-- doxytag: member="IpePainter::DoClosePath" ref="35f44448303aaf635b1b64bd756c0374" args="()" -->
1192
<div class="memitem">
1193
<div class="memproto">
1194
<table class="memname">
1196
<td class="memname">void IpePainter::DoClosePath </td>
1198
<td class="paramname"> </td>
1199
<td> ) </td>
1200
<td width="100%"><code> [protected, virtual]</code></td>
1204
<div class="memdoc">
1207
Perform closepath operator.
1212
<a class="anchor" name="6f1e38d86a1fb3f9b44694f24ea876c3"></a><!-- doxytag: member="IpePainter::DoDrawPath" ref="6f1e38d86a1fb3f9b44694f24ea876c3" args="()" -->
1213
<div class="memitem">
1214
<div class="memproto">
1215
<table class="memname">
1217
<td class="memname">void IpePainter::DoDrawPath </td>
1219
<td class="paramname"> </td>
1220
<td> ) </td>
1221
<td width="100%"><code> [protected, virtual]</code></td>
1225
<div class="memdoc">
1228
Actually draw the path.
1233
<a class="anchor" name="925ff79289ebceb6c640f8fecb3d75bf"></a><!-- doxytag: member="IpePainter::DoDrawBitmap" ref="925ff79289ebceb6c640f8fecb3d75bf" args="(IpeBitmap bitmap)" -->
1234
<div class="memitem">
1235
<div class="memproto">
1236
<table class="memname">
1238
<td class="memname">void IpePainter::DoDrawBitmap </td>
1240
<td class="paramtype"><a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> </td>
1241
<td class="paramname"> <em>bitmap</em> </td>
1242
<td> ) </td>
1243
<td width="100%"><code> [protected, virtual]</code></td>
1247
<div class="memdoc">
1254
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#0f7d3db31efda6941a4e4ed012f6f488">IpeBBoxPainter</a>.
1257
<a class="anchor" name="16cc51ba8861d3ee94b5c61564b0e0d7"></a><!-- doxytag: member="IpePainter::DoDrawText" ref="16cc51ba8861d3ee94b5c61564b0e0d7" args="(const IpeText *text)" -->
1258
<div class="memitem">
1259
<div class="memproto">
1260
<table class="memname">
1262
<td class="memname">void IpePainter::DoDrawText </td>
1264
<td class="paramtype">const <a class="el" href="class_ipe_text.html">IpeText</a> * </td>
1265
<td class="paramname"> <em>text</em> </td>
1266
<td> ) </td>
1267
<td width="100%"><code> [protected, virtual]</code></td>
1271
<div class="memdoc">
1278
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#7fe3137f2d079b0061da0358fc55ea1e">IpeBBoxPainter</a>.
1281
<hr>The documentation for this class was generated from the following files:<ul>
1282
<li>ipepainter.h<li>ipepainter.cpp</ul>