11
11
</h1>Interface for drawing.
12
12
<a href="#_details">More...</a>
14
Inherited by IpeBBoxPainter.
14
Inherited by <a class="el" href="class_ipe_b_box_painter.html">IpeBBoxPainter</a>, IpePdfPainter, and IpePsPainter.
16
16
<a href="class_ipe_painter-members.html">List of all members.</a><h2>Public Member Functions</h2>
18
<li><a class="el" href="class_ipe_painter.html#a0">IpePainter</a> (const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> *style)
18
<li><a class="el" href="class_ipe_painter.html#a0">IpePainter</a> (const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> *style)
19
19
<li>virtual <a class="el" href="class_ipe_painter.html#a1">~IpePainter</a> ()
20
<li>virtual void <a class="el" href="class_ipe_painter.html#a2">Transform</a> (const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> &m)
21
<li>virtual void <a class="el" href="class_ipe_painter.html#a3">Untransform</a> (bool diret)
22
<li>virtual void <a class="el" href="class_ipe_painter.html#a4">Translate</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
23
<li>virtual void <a class="el" href="class_ipe_painter.html#a5">BeginPath</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
24
<li>virtual void <a class="el" href="class_ipe_painter.html#a6">BeginClosedPath</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
25
<li>virtual void <a class="el" href="class_ipe_painter.html#a7">LineTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
26
<li>virtual void <a class="el" href="class_ipe_painter.html#a8">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)
27
<li>void <a class="el" href="class_ipe_painter.html#a9">CurveTo</a> (const <a class="el" href="class_ipe_bezier.html">IpeBezier</a> &bezier)
28
<li>virtual void <a class="el" href="class_ipe_painter.html#a10">Rect</a> (const <a class="el" href="class_ipe_rect.html">IpeRect</a> &re)
29
<li>virtual void <a class="el" href="class_ipe_painter.html#a11">EndPath</a> ()
30
<li>virtual void <a class="el" href="class_ipe_painter.html#a12">EndClosedPath</a> ()
31
<li>virtual void <a class="el" href="class_ipe_painter.html#a13">Push</a> ()
32
<li>virtual void <a class="el" href="class_ipe_painter.html#a14">Pop</a> ()
33
<li>virtual void <a class="el" href="class_ipe_painter.html#a15">DrawPath</a> ()
34
<li>virtual void <a class="el" href="class_ipe_painter.html#a16">DrawBitmap</a> (<a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> bitmap)
35
<li>virtual void <a class="el" href="class_ipe_painter.html#a17">DrawText</a> (const <a class="el" href="class_ipe_text.html">IpeText</a> *text)
36
<li>void <a class="el" href="class_ipe_painter.html#a18">DrawEllipse</a> ()
37
<li>void <a class="el" href="class_ipe_painter.html#a19">DrawArc</a> (double alpha)
38
<li>void <a class="el" href="class_ipe_painter.html#a20">SetStroke</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> color)
39
<li>void <a class="el" href="class_ipe_painter.html#a21">SetFill</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> color)
40
<li>void <a class="el" href="class_ipe_painter.html#a22">SetLineWidth</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> wid)
41
<li>void <a class="el" href="class_ipe_painter.html#a23">SetDashStyle</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> dash)
42
<li>void <a class="el" href="class_ipe_painter.html#a24">SetLineCap</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> cap)
43
<li>void <a class="el" href="class_ipe_painter.html#a25">SetLineJoin</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> join)
44
<li>void <a class="el" href="class_ipe_painter.html#a26">SetWindRule</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> rule)
45
<li>void <a class="el" href="class_ipe_painter.html#a27">SetTextSize</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> size)
46
<li>void <a class="el" href="class_ipe_painter.html#a28">SetMarkSize</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> size)
47
<li>void <a class="el" href="class_ipe_painter.html#a29">SetMarkShape</a> (int shape)
48
<li>const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * <a class="el" href="class_ipe_painter.html#a30">StyleSheet</a> () const
49
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a31">Stroke</a> () const
50
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a32">Fill</a> () const
51
<li>const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> & <a class="el" href="class_ipe_painter.html#a33">Matrix</a> () const
52
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a34">LineWidth</a> () const
53
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a35">DashStyle</a> () const
54
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a36">LineCap</a> () const
55
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a37">LineJoin</a> () const
56
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a38">WindRule</a> () const
57
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a39">TextSize</a> () const
58
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a40">MarkSize</a> () const
59
<li>int <a class="el" href="class_ipe_painter.html#a41">MarkShape</a> () const
60
<li>const <a class="el" href="class_ipe_repository.html">IpeRepository</a> * <a class="el" href="class_ipe_painter.html#a42">Repository</a> () const
20
<li>void <a class="el" href="class_ipe_painter.html#a2">Transform</a> (const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> &m)
21
<li>void <a class="el" href="class_ipe_painter.html#a3">Untransform</a> (bool direct)
22
<li>void <a class="el" href="class_ipe_painter.html#a4">Translate</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
23
<li>void <a class="el" href="class_ipe_painter.html#a5">Push</a> ()
24
<li>void <a class="el" href="class_ipe_painter.html#a6">Pop</a> ()
25
<li>void <a class="el" href="class_ipe_painter.html#a7">NewPath</a> ()
26
<li>void <a class="el" href="class_ipe_painter.html#a8">MoveTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
27
<li>void <a class="el" href="class_ipe_painter.html#a9">LineTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
28
<li>void <a class="el" href="class_ipe_painter.html#a10">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)
29
<li>void <a class="el" href="class_ipe_painter.html#a11">CurveTo</a> (const <a class="el" href="class_ipe_bezier.html">IpeBezier</a> &bezier)
30
<li>virtual void <a class="el" href="class_ipe_painter.html#a12">Rect</a> (const <a class="el" href="class_ipe_rect.html">IpeRect</a> &re)
31
<li>void <a class="el" href="class_ipe_painter.html#a13">DrawEllipse</a> ()
32
<li>void <a class="el" href="class_ipe_painter.html#a14">DrawArc</a> (double alpha)
33
<li>void <a class="el" href="class_ipe_painter.html#a15">ClosePath</a> ()
34
<li>void <a class="el" href="class_ipe_painter.html#a16">DrawPath</a> ()
35
<li>void <a class="el" href="class_ipe_painter.html#a17">DrawBitmap</a> (<a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> bitmap)
36
<li>void <a class="el" href="class_ipe_painter.html#a18">DrawText</a> (const <a class="el" href="class_ipe_text.html">IpeText</a> *text)
37
<li>void <a class="el" href="class_ipe_painter.html#a19">SetStroke</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> color)
38
<li>void <a class="el" href="class_ipe_painter.html#a20">SetFill</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> color)
39
<li>void <a class="el" href="class_ipe_painter.html#a21">SetLineWidth</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> wid)
40
<li>void <a class="el" href="class_ipe_painter.html#a22">SetDashStyle</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> dash)
41
<li>void <a class="el" href="class_ipe_painter.html#a23">SetLineCap</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> cap)
42
<li>void <a class="el" href="class_ipe_painter.html#a24">SetLineJoin</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> join)
43
<li>void <a class="el" href="class_ipe_painter.html#a25">SetWindRule</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> rule)
44
<li>void <a class="el" href="class_ipe_painter.html#a26">SetTextSize</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> size)
45
<li>void <a class="el" href="class_ipe_painter.html#a27">SetMarkSize</a> (<a class="el" href="class_ipe_attribute.html">IpeAttribute</a> size)
46
<li>void <a class="el" href="class_ipe_painter.html#a28">SetMarkShape</a> (int shape)
47
<li>const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * <a class="el" href="class_ipe_painter.html#a29">StyleSheet</a> () const
48
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a30">Stroke</a> () const
49
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a31">Fill</a> () const
50
<li>const <a class="el" href="class_ipe_matrix.html">IpeMatrix</a> & <a class="el" href="class_ipe_painter.html#a32">Matrix</a> () const
51
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a33">LineWidth</a> () const
52
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a34">DashStyle</a> () const
53
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a35">LineCap</a> () const
54
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a36">LineJoin</a> () const
55
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a37">WindRule</a> () const
56
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a38">TextSize</a> () const
57
<li><a class="el" href="class_ipe_attribute.html">IpeAttribute</a> <a class="el" href="class_ipe_painter.html#a39">MarkSize</a> () const
58
<li>int <a class="el" href="class_ipe_painter.html#a40">MarkShape</a> () const
59
<li>const <a class="el" href="class_ipe_repository.html">IpeRepository</a> * <a class="el" href="class_ipe_painter.html#a41">Repository</a> () const
62
61
<h2>Protected Types</h2>
64
63
<li><a class="anchor" name="x0" doxytag="IpePainter::StateSeq" ></a>
65
64
typedef std::list< State > <b>StateSeq</b>
66
<h2>Protected Member Functions</h2>
68
<li>virtual void <a class="el" href="class_ipe_painter.html#b0">DoPush</a> ()
69
<li>virtual void <a class="el" href="class_ipe_painter.html#b1">DoPop</a> ()
70
<li>virtual void <a class="el" href="class_ipe_painter.html#b2">DoNewPath</a> ()
71
<li>virtual void <a class="el" href="class_ipe_painter.html#b3">DoMoveTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
72
<li>virtual void <a class="el" href="class_ipe_painter.html#b4">DoLineTo</a> (const <a class="el" href="class_ipe_vector.html">IpeVector</a> &v)
73
<li>virtual void <a class="el" href="class_ipe_painter.html#b5">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)
74
<li>virtual void <a class="el" href="class_ipe_painter.html#b6">DoClosePath</a> ()
75
<li>virtual void <a class="el" href="class_ipe_painter.html#b7">DoDrawPath</a> ()
76
<li>virtual void <a class="el" href="class_ipe_painter.html#b8">DoDrawBitmap</a> (<a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> bitmap)
77
<li>virtual void <a class="el" href="class_ipe_painter.html#b9">DoDrawText</a> (const <a class="el" href="class_ipe_text.html">IpeText</a> *text)
67
79
<h2>Protected Attributes</h2>
69
81
<li><a class="anchor" name="p0" doxytag="IpePainter::iState" ></a>
70
82
StateSeq <b>iState</b>
71
83
<li><a class="anchor" name="p1" doxytag="IpePainter::iStyleSheet" ></a>
72
const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * <b>iStyleSheet</b>
84
const <a class="el" href="class_ipe_style_sheet.html">IpeStyleSheet</a> * <b>iStyleSheet</b>
85
<li><a class="anchor" name="p2" doxytag="IpePainter::iInPath" ></a>
74
88
<hr><a name="_details"></a><h2>Detailed Description</h2>
75
89
Interface for drawing.
77
IpePainter-derived classes are used for drawing to the screen and for generating PDF output.<p>
91
IpePainter-derived classes are used for drawing to the screen and for generating PDF and Postscript output.<p>
78
92
The IpePainter 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 IpePainter class takes care of maintaining this stack, and setting of the attributes in the current graphics state.<p>
79
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 IpePainter, so calling the <a class="el" href="class_ipe_painter.html#a31">Stroke()</a> or <a class="el" href="class_ipe_painter.html#a32">Fill()</a> methods of IpePainter will return the current absolute color.<p>
93
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 IpePainter, so calling the <a class="el" href="class_ipe_painter.html#a30">Stroke()</a> or <a class="el" href="class_ipe_painter.html#a31">Fill()</a> methods of IpePainter will return the current absolute color.<p>
80
94
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>
81
Attributes must not be changed after a path has been started. (Although this does not seem to be stated explicitely in the PDF Reference, Acrobat Reader 4 complains if the dash style is set after a path has been defined.)<p>
82
Derived classes need to implement the functions for drawing paths, images, and texts.<p>
83
95
A null color is drawn as if it was void. Ipe objects exploit this: only group objects ever need to explicitly contain a 'void' color.<p>
84
96
A null dash style is drawn as solid.<p>
85
A null line width is drawn as whatever is the standard of the drawing medium.
97
A null line width is drawn as whatever is the standard of the drawing medium.<p>
98
The painter is either in "general" or in "path construction" mode. The <a class="el" href="class_ipe_painter.html#a7">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>
99
Derived classes need to implement the DoXXX functions for drawing paths, images, and texts.
87
101
<hr><h2>Constructor & Destructor Documentation</h2>
88
102
<a class="anchor" name="a0" doxytag="IpePainter::IpePainter" ></a><p>
243
<a class="anchor" name="a5" doxytag="IpePainter::BeginPath" ></a><p>
244
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
247
<table cellpadding="0" cellspacing="0" border="0">
249
<td class="md" nowrap valign="top"> void IpePainter::BeginPath </td>
250
<td class="md" valign="top">( </td>
251
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
252
<td class="mdname1" valign="top" nowrap> <em>v</em> </td>
253
<td class="md" valign="top"> ) </td>
254
<td class="md" nowrap><code> [virtual]</code></td>
261
<table cellspacing=5 cellpadding=0 border=0>
269
Start a new open path.
274
<a class="anchor" name="a6" doxytag="IpePainter::BeginClosedPath" ></a><p>
275
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
278
<table cellpadding="0" cellspacing="0" border="0">
280
<td class="md" nowrap valign="top"> void IpePainter::BeginClosedPath </td>
281
<td class="md" valign="top">( </td>
282
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
283
<td class="mdname1" valign="top" nowrap> <em>v</em> </td>
284
<td class="md" valign="top"> ) </td>
285
<td class="md" nowrap><code> [virtual]</code></td>
292
<table cellspacing=5 cellpadding=0 border=0>
300
Start a new closed path.
305
<a class="anchor" name="a7" doxytag="IpePainter::LineTo" ></a><p>
257
<a class="anchor" name="a5" doxytag="IpePainter::Push" ></a><p>
258
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
261
<table cellpadding="0" cellspacing="0" border="0">
263
<td class="md" nowrap valign="top"> void IpePainter::Push </td>
264
<td class="md" valign="top">( </td>
265
<td class="mdname1" valign="top" nowrap> </td>
266
<td class="md" valign="top"> ) </td>
267
<td class="md" nowrap></td>
274
<table cellspacing=5 cellpadding=0 border=0>
282
Save current graphics state.
287
<a class="anchor" name="a6" doxytag="IpePainter::Pop" ></a><p>
288
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
291
<table cellpadding="0" cellspacing="0" border="0">
293
<td class="md" nowrap valign="top"> void IpePainter::Pop </td>
294
<td class="md" valign="top">( </td>
295
<td class="mdname1" valign="top" nowrap> </td>
296
<td class="md" valign="top"> ) </td>
297
<td class="md" nowrap></td>
304
<table cellspacing=5 cellpadding=0 border=0>
312
Restore previous graphics state.
317
<a class="anchor" name="a7" doxytag="IpePainter::NewPath" ></a><p>
318
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
321
<table cellpadding="0" cellspacing="0" border="0">
323
<td class="md" nowrap valign="top"> void IpePainter::NewPath </td>
324
<td class="md" valign="top">( </td>
325
<td class="mdname1" valign="top" nowrap> </td>
326
<td class="md" valign="top"> ) </td>
327
<td class="md" nowrap></td>
334
<table cellspacing=5 cellpadding=0 border=0>
342
Enter path construction mode.
347
<a class="anchor" name="a8" doxytag="IpePainter::MoveTo" ></a><p>
348
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
351
<table cellpadding="0" cellspacing="0" border="0">
353
<td class="md" nowrap valign="top"> void IpePainter::MoveTo </td>
354
<td class="md" valign="top">( </td>
355
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
356
<td class="mdname1" valign="top" nowrap> <em>v</em> </td>
357
<td class="md" valign="top"> ) </td>
358
<td class="md" nowrap></td>
365
<table cellspacing=5 cellpadding=0 border=0>
378
<a class="anchor" name="a9" doxytag="IpePainter::LineTo" ></a><p>
306
379
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
308
381
<td class="mdRow">
439
Add a rectangle to the path.
441
Has a default implementation in terms of LineTo, but derived classes can reimplement for efficiency. </td>
444
<a class="anchor" name="a11" doxytag="IpePainter::EndPath" ></a><p>
445
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
448
<table cellpadding="0" cellspacing="0" border="0">
450
<td class="md" nowrap valign="top"> void IpePainter::EndPath </td>
451
<td class="md" valign="top">( </td>
452
<td class="mdname1" valign="top" nowrap> </td>
453
<td class="md" valign="top"> ) </td>
454
<td class="md" nowrap><code> [virtual]</code></td>
461
<table cellspacing=5 cellpadding=0 border=0>
474
<a class="anchor" name="a12" doxytag="IpePainter::EndClosedPath" ></a><p>
475
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
478
<table cellpadding="0" cellspacing="0" border="0">
480
<td class="md" nowrap valign="top"> void IpePainter::EndClosedPath </td>
481
<td class="md" valign="top">( </td>
482
<td class="mdname1" valign="top" nowrap> </td>
483
<td class="md" valign="top"> ) </td>
484
<td class="md" nowrap><code> [virtual]</code></td>
491
<table cellspacing=5 cellpadding=0 border=0>
504
<a class="anchor" name="a13" doxytag="IpePainter::Push" ></a><p>
505
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
508
<table cellpadding="0" cellspacing="0" border="0">
510
<td class="md" nowrap valign="top"> void IpePainter::Push </td>
511
<td class="md" valign="top">( </td>
512
<td class="mdname1" valign="top" nowrap> </td>
513
<td class="md" valign="top"> ) </td>
514
<td class="md" nowrap><code> [virtual]</code></td>
521
<table cellspacing=5 cellpadding=0 border=0>
529
Save current graphics state.
534
<a class="anchor" name="a14" doxytag="IpePainter::Pop" ></a><p>
535
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
538
<table cellpadding="0" cellspacing="0" border="0">
540
<td class="md" nowrap valign="top"> void IpePainter::Pop </td>
541
<td class="md" valign="top">( </td>
542
<td class="mdname1" valign="top" nowrap> </td>
543
<td class="md" valign="top"> ) </td>
544
<td class="md" nowrap><code> [virtual]</code></td>
551
<table cellspacing=5 cellpadding=0 border=0>
559
Restore previous graphics state.
564
<a class="anchor" name="a15" doxytag="IpePainter::DrawPath" ></a><p>
565
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
568
<table cellpadding="0" cellspacing="0" border="0">
570
<td class="md" nowrap valign="top"> void IpePainter::DrawPath </td>
571
<td class="md" valign="top">( </td>
572
<td class="mdname1" valign="top" nowrap> </td>
573
<td class="md" valign="top"> ) </td>
574
<td class="md" nowrap><code> [virtual]</code></td>
581
<table cellspacing=5 cellpadding=0 border=0>
589
Fill and/or stroke a path (depending on color).
591
As in PDF, an "path" can consist of several components that are defined by sequences of <a class="el" href="class_ipe_painter.html#a6">BeginClosedPath()</a> and <a class="el" href="class_ipe_painter.html#a12">EndClosedPath()</a>. </td>
594
<a class="anchor" name="a16" doxytag="IpePainter::DrawBitmap" ></a><p>
595
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
598
<table cellpadding="0" cellspacing="0" border="0">
600
<td class="md" nowrap valign="top"> void IpePainter::DrawBitmap </td>
601
<td class="md" valign="top">( </td>
602
<td class="md" nowrap valign="top"><a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> </td>
603
<td class="mdname1" valign="top" nowrap> <em>bitmap</em> </td>
604
<td class="md" valign="top"> ) </td>
605
<td class="md" nowrap><code> [virtual]</code></td>
612
<table cellspacing=5 cellpadding=0 border=0>
622
Assumes the transformation matrix has been set up to map the unit square to the image area on the paper. </td>
625
<a class="anchor" name="a17" doxytag="IpePainter::DrawText" ></a><p>
626
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
629
<table cellpadding="0" cellspacing="0" border="0">
631
<td class="md" nowrap valign="top"> void IpePainter::DrawText </td>
632
<td class="md" valign="top">( </td>
633
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_text.html">IpeText</a> * </td>
634
<td class="mdname1" valign="top" nowrap> <em>text</em> </td>
635
<td class="md" valign="top"> ) </td>
636
<td class="md" nowrap><code> [virtual]</code></td>
643
<table cellspacing=5 cellpadding=0 border=0>
651
Render a text object.
653
Stroke color is already set, and the origin is the lower-left corner of the text box. </td>
656
<a class="anchor" name="a18" doxytag="IpePainter::DrawEllipse" ></a><p>
512
Add a rectangle subpath to the path.
514
Has a default implementation in terms of MoveTo and LineTo, but derived classes can reimplement for efficiency. </td>
517
<a class="anchor" name="a13" doxytag="IpePainter::DrawEllipse" ></a><p>
657
518
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
659
520
<td class="mdRow">
719
580
This function may modify the transformation matrix. </td>
722
<a class="anchor" name="a20" doxytag="IpePainter::SetStroke" ></a><p>
583
<a class="anchor" name="a15" doxytag="IpePainter::ClosePath" ></a><p>
584
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
587
<table cellpadding="0" cellspacing="0" border="0">
589
<td class="md" nowrap valign="top"> void IpePainter::ClosePath </td>
590
<td class="md" valign="top">( </td>
591
<td class="mdname1" valign="top" nowrap> </td>
592
<td class="md" valign="top"> ) </td>
593
<td class="md" nowrap></td>
600
<table cellspacing=5 cellpadding=0 border=0>
608
Close the current subpath.
613
<a class="anchor" name="a16" doxytag="IpePainter::DrawPath" ></a><p>
614
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
617
<table cellpadding="0" cellspacing="0" border="0">
619
<td class="md" nowrap valign="top"> void IpePainter::DrawPath </td>
620
<td class="md" valign="top">( </td>
621
<td class="mdname1" valign="top" nowrap> </td>
622
<td class="md" valign="top"> ) </td>
623
<td class="md" nowrap></td>
630
<table cellspacing=5 cellpadding=0 border=0>
638
Fill and/or stroke a path (depending on color).
640
As in PDF, an "path" can consist of several subpaths. </td>
643
<a class="anchor" name="a17" doxytag="IpePainter::DrawBitmap" ></a><p>
644
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
647
<table cellpadding="0" cellspacing="0" border="0">
649
<td class="md" nowrap valign="top"> void IpePainter::DrawBitmap </td>
650
<td class="md" valign="top">( </td>
651
<td class="md" nowrap valign="top"><a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> </td>
652
<td class="mdname1" valign="top" nowrap> <em>bitmap</em> </td>
653
<td class="md" valign="top"> ) </td>
654
<td class="md" nowrap></td>
661
<table cellspacing=5 cellpadding=0 border=0>
671
Assumes the transformation matrix has been set up to map the unit square to the image area on the paper. </td>
674
<a class="anchor" name="a18" doxytag="IpePainter::DrawText" ></a><p>
675
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
678
<table cellpadding="0" cellspacing="0" border="0">
680
<td class="md" nowrap valign="top"> void IpePainter::DrawText </td>
681
<td class="md" valign="top">( </td>
682
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_text.html">IpeText</a> * </td>
683
<td class="mdname1" valign="top" nowrap> <em>text</em> </td>
684
<td class="md" valign="top"> ) </td>
685
<td class="md" nowrap></td>
692
<table cellspacing=5 cellpadding=0 border=0>
700
Render a text object.
702
Stroke color is already set, and the origin is the lower-left corner of the text box. </td>
705
<a class="anchor" name="a19" doxytag="IpePainter::SetStroke" ></a><p>
723
706
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
725
708
<td class="mdRow">
1405
<a class="anchor" name="b0" doxytag="IpePainter::DoPush" ></a><p>
1406
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1409
<table cellpadding="0" cellspacing="0" border="0">
1411
<td class="md" nowrap valign="top"> void IpePainter::DoPush </td>
1412
<td class="md" valign="top">( </td>
1413
<td class="mdname1" valign="top" nowrap> </td>
1414
<td class="md" valign="top"> ) </td>
1415
<td class="md" nowrap><code> [protected, virtual]</code></td>
1422
<table cellspacing=5 cellpadding=0 border=0>
1430
Perform push on output medium (if necessary).
1432
This is not called when client uses Push during path construction! </td>
1435
<a class="anchor" name="b1" doxytag="IpePainter::DoPop" ></a><p>
1436
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1439
<table cellpadding="0" cellspacing="0" border="0">
1441
<td class="md" nowrap valign="top"> void IpePainter::DoPop </td>
1442
<td class="md" valign="top">( </td>
1443
<td class="mdname1" valign="top" nowrap> </td>
1444
<td class="md" valign="top"> ) </td>
1445
<td class="md" nowrap><code> [protected, virtual]</code></td>
1452
<table cellspacing=5 cellpadding=0 border=0>
1460
Perform pop on output medium (if necessary).
1462
This is not called when client uses Pop during path construction! </td>
1465
<a class="anchor" name="b2" doxytag="IpePainter::DoNewPath" ></a><p>
1466
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1469
<table cellpadding="0" cellspacing="0" border="0">
1471
<td class="md" nowrap valign="top"> void IpePainter::DoNewPath </td>
1472
<td class="md" valign="top">( </td>
1473
<td class="mdname1" valign="top" nowrap> </td>
1474
<td class="md" valign="top"> ) </td>
1475
<td class="md" nowrap><code> [protected, virtual]</code></td>
1482
<table cellspacing=5 cellpadding=0 border=0>
1490
Perform new path operator.
1495
<a class="anchor" name="b3" doxytag="IpePainter::DoMoveTo" ></a><p>
1496
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1499
<table cellpadding="0" cellspacing="0" border="0">
1501
<td class="md" nowrap valign="top"> void IpePainter::DoMoveTo </td>
1502
<td class="md" valign="top">( </td>
1503
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1504
<td class="mdname1" valign="top" nowrap> <em>v</em> </td>
1505
<td class="md" valign="top"> ) </td>
1506
<td class="md" nowrap><code> [protected, virtual]</code></td>
1513
<table cellspacing=5 cellpadding=0 border=0>
1521
Perform moveto operator.
1525
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#b0">IpeBBoxPainter</a>. </td>
1528
<a class="anchor" name="b4" doxytag="IpePainter::DoLineTo" ></a><p>
1529
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1532
<table cellpadding="0" cellspacing="0" border="0">
1534
<td class="md" nowrap valign="top"> void IpePainter::DoLineTo </td>
1535
<td class="md" valign="top">( </td>
1536
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1537
<td class="mdname1" valign="top" nowrap> <em>v</em> </td>
1538
<td class="md" valign="top"> ) </td>
1539
<td class="md" nowrap><code> [protected, virtual]</code></td>
1546
<table cellspacing=5 cellpadding=0 border=0>
1554
Perform lineto operator.
1558
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#b1">IpeBBoxPainter</a>. </td>
1561
<a class="anchor" name="b5" doxytag="IpePainter::DoCurveTo" ></a><p>
1562
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1565
<table cellpadding="0" cellspacing="0" border="0">
1567
<td class="md" nowrap valign="top"> void IpePainter::DoCurveTo </td>
1568
<td class="md" valign="top">( </td>
1569
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1570
<td class="mdname" nowrap> <em>v1</em>, </td>
1573
<td class="md" nowrap align="right"></td>
1575
<td class="md" nowrap>const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1576
<td class="mdname" nowrap> <em>v2</em>, </td>
1579
<td class="md" nowrap align="right"></td>
1581
<td class="md" nowrap>const <a class="el" href="class_ipe_vector.html">IpeVector</a> & </td>
1582
<td class="mdname" nowrap> <em>v3</em></td>
1586
<td class="md">) </td>
1587
<td class="md" colspan="2"><code> [protected, virtual]</code></td>
1594
<table cellspacing=5 cellpadding=0 border=0>
1602
Perform curveto operator.
1606
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#b2">IpeBBoxPainter</a>. </td>
1609
<a class="anchor" name="b6" doxytag="IpePainter::DoClosePath" ></a><p>
1610
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1613
<table cellpadding="0" cellspacing="0" border="0">
1615
<td class="md" nowrap valign="top"> void IpePainter::DoClosePath </td>
1616
<td class="md" valign="top">( </td>
1617
<td class="mdname1" valign="top" nowrap> </td>
1618
<td class="md" valign="top"> ) </td>
1619
<td class="md" nowrap><code> [protected, virtual]</code></td>
1626
<table cellspacing=5 cellpadding=0 border=0>
1634
Perform closepath operator.
1639
<a class="anchor" name="b7" doxytag="IpePainter::DoDrawPath" ></a><p>
1640
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1643
<table cellpadding="0" cellspacing="0" border="0">
1645
<td class="md" nowrap valign="top"> void IpePainter::DoDrawPath </td>
1646
<td class="md" valign="top">( </td>
1647
<td class="mdname1" valign="top" nowrap> </td>
1648
<td class="md" valign="top"> ) </td>
1649
<td class="md" nowrap><code> [protected, virtual]</code></td>
1656
<table cellspacing=5 cellpadding=0 border=0>
1664
Actually draw the path.
1669
<a class="anchor" name="b8" doxytag="IpePainter::DoDrawBitmap" ></a><p>
1670
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1673
<table cellpadding="0" cellspacing="0" border="0">
1675
<td class="md" nowrap valign="top"> void IpePainter::DoDrawBitmap </td>
1676
<td class="md" valign="top">( </td>
1677
<td class="md" nowrap valign="top"><a class="el" href="class_ipe_bitmap.html">IpeBitmap</a> </td>
1678
<td class="mdname1" valign="top" nowrap> <em>bitmap</em> </td>
1679
<td class="md" valign="top"> ) </td>
1680
<td class="md" nowrap><code> [protected, virtual]</code></td>
1687
<table cellspacing=5 cellpadding=0 border=0>
1699
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#b3">IpeBBoxPainter</a>. </td>
1702
<a class="anchor" name="b9" doxytag="IpePainter::DoDrawText" ></a><p>
1703
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1706
<table cellpadding="0" cellspacing="0" border="0">
1708
<td class="md" nowrap valign="top"> void IpePainter::DoDrawText </td>
1709
<td class="md" valign="top">( </td>
1710
<td class="md" nowrap valign="top">const <a class="el" href="class_ipe_text.html">IpeText</a> * </td>
1711
<td class="mdname1" valign="top" nowrap> <em>text</em> </td>
1712
<td class="md" valign="top"> ) </td>
1713
<td class="md" nowrap><code> [protected, virtual]</code></td>
1720
<table cellspacing=5 cellpadding=0 border=0>
1732
Reimplemented in <a class="el" href="class_ipe_b_box_painter.html#b4">IpeBBoxPainter</a>. </td>
1422
1735
<hr>The documentation for this class was generated from the following files:<ul>
1423
1736
<li>ipepainter.h<li>ipepainter.cpp</ul>