1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>Ipelib: ipe::Painter Class Reference</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.6.1 -->
11
<div class="navigation" id="top">
14
<li><a href="index.html"><span>Main Page</span></a></li>
15
<li><a href="modules.html"><span>Modules</span></a></li>
16
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
17
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
22
<li><a href="annotated.html"><span>Class List</span></a></li>
23
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
24
<li><a href="functions.html"><span>Class Members</span></a></li>
27
<div class="navpath"><a class="el" href="namespaceipe.html">ipe</a>::<a class="el" href="classipe_1_1_painter.html">Painter</a>
30
<div class="contents">
31
<h1>ipe::Painter Class Reference<br/>
33
[<a class="el" href="group__base.html">Ipe Base</a>]</small>
34
</h1><!-- doxytag: class="ipe::Painter" -->
35
<p>Interface for drawing.
36
<a href="#_details">More...</a></p>
38
<p><code>#include <ipepainter.h></code></p>
40
<p>Inherited by <a class="el" href="classipe_1_1_b_box_painter.html">ipe::BBoxPainter</a>, <a class="el" href="classipe_1_1_cairo_painter.html">ipe::CairoPainter</a>, <a class="el" href="classipe_1_1_pdf_painter.html">ipe::PdfPainter</a>, and IpeQtPainter.</p>
42
<p><a href="classipe_1_1_painter-members.html">List of all members.</a></p>
45
<li>struct <a class="el" href="structipe_1_1_painter_1_1_state.html">State</a>
47
<h2>Public Member Functions</h2>
49
<li><a class="el" href="classipe_1_1_painter.html#acf4e8448838e3a1b0344f6cf91374676">Painter</a> (const <a class="el" href="classipe_1_1_cascade.html">Cascade</a> *style)
50
<li>virtual <a class="el" href="classipe_1_1_painter.html#a6db88212368910da3385fa9e5fa97174">~Painter</a> ()
51
<li>void <a class="el" href="classipe_1_1_painter.html#afd5cf380a2a2e333f3522ddba0beee24">transform</a> (const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> &m)
52
<li>void <a class="el" href="classipe_1_1_painter.html#acbcf87b919ec5141dd68f96a1b40ebf1">untransform</a> (<a class="el" href="group__attr.html#ga5a80a01d23ba5b6e4f258faead3364c5">TTransformations</a> trans)
53
<li>void <a class="el" href="classipe_1_1_painter.html#a3e8aef7a2d0ef820f2e000d3ad748a33">translate</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v)
54
<li>void <a class="el" href="classipe_1_1_painter.html#a40e380c58116af0493bd4134ec7b4f93">push</a> ()
55
<li>void <a class="el" href="classipe_1_1_painter.html#ac7ebe896d097ab699cdb9d31ba000ef6">pop</a> ()
56
<li>void <a class="el" href="classipe_1_1_painter.html#a8e24a6c7587bf54c2e1ed3b77840200b">pushMatrix</a> ()
57
<li>void <a class="el" href="classipe_1_1_painter.html#af25e95850260024efe0e9ae562446e5e">popMatrix</a> ()
58
<li>void <a class="el" href="classipe_1_1_painter.html#a580edf6422147229766c369a120f1db7">newPath</a> ()
59
<li>void <a class="el" href="classipe_1_1_painter.html#a0b998b4615288943fa4e300d1677dab7">moveTo</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v)
60
<li>void <a class="el" href="classipe_1_1_painter.html#a465e1be33666708f17c63567a51b25cd">lineTo</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v)
61
<li>void <a class="el" href="classipe_1_1_painter.html#a1ee1b1de8e7f010bebea9881c99a68ca">curveTo</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v1, const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v2, const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v3)
62
<li>void <a class="el" href="classipe_1_1_painter.html#a2d63228d71d1653bffb038c0bbef629d">curveTo</a> (const <a class="el" href="classipe_1_1_bezier.html">Bezier</a> &bezier)
63
<li>void <a class="el" href="classipe_1_1_painter.html#ae5d17523775c6bc268e9408252c42288">rect</a> (const <a class="el" href="classipe_1_1_rect.html">Rect</a> &re)
64
<li>void <a class="el" href="classipe_1_1_painter.html#a5883713b8c127bea0df52dc41cd1ef84">drawEllipse</a> ()
65
<li>void <a class="el" href="classipe_1_1_painter.html#aefac23955e5e92866c7e5510fa6cdf6f">drawArc</a> (const <a class="el" href="classipe_1_1_arc.html">Arc</a> &arc)
66
<li>void <a class="el" href="classipe_1_1_painter.html#ad683c8ce88d8e04661d20d5ede3edcfe">closePath</a> ()
67
<li>void <a class="el" href="classipe_1_1_painter.html#a8175239f735df2d07f3dac1318a8d339">drawPath</a> (<a class="el" href="group__attr.html#ga40b15a8cc8f66dc518621289ed4f1cd6">TPathMode</a> mode)
68
<li>void <a class="el" href="classipe_1_1_painter.html#a503d2c8872094101d0cd25297dfee1ab">drawBitmap</a> (<a class="el" href="classipe_1_1_bitmap.html">Bitmap</a> bitmap)
69
<li>void <a class="el" href="classipe_1_1_painter.html#aa04deec0603c5b17a84c53e57a776e90">drawText</a> (const <a class="el" href="classipe_1_1_text.html">Text</a> *text)
70
<li>void <a class="el" href="classipe_1_1_painter.html#a38f91a96ddc2cc703c3392ef71b22dfe">drawSymbol</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> symbol)
71
<li>void <a class="el" href="classipe_1_1_painter.html#a30d8809ffdfa7688968cbee3f552dbc4">addClipPath</a> ()
72
<li>void <a class="el" href="classipe_1_1_painter.html#ac12fc48d78849bca8265499b395a3ab2">setStroke</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> color)
73
<li>void <a class="el" href="classipe_1_1_painter.html#a780cbf6f5a943593837c89376fe303f5">setFill</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> color)
74
<li>void <a class="el" href="classipe_1_1_painter.html#a183d7f460e3e3a2e61f0b4b81198c59b">setPen</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> pen)
75
<li>void <a class="el" href="classipe_1_1_painter.html#ae1321c22c27ee6517bc5ef2bfb2b2ef3">setDashStyle</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> dash)
76
<li>void <a class="el" href="classipe_1_1_painter.html#a4a92b9ecc1513ba5ae68b26a6814f024">setLineCap</a> (<a class="el" href="group__attr.html#ga2a173ffa6945f9033fffd786ada441b5">TLineCap</a> cap)
77
<li>void <a class="el" href="classipe_1_1_painter.html#a331dc3c7577876949050550479bc3b71">setLineJoin</a> (<a class="el" href="group__attr.html#gae5ab4b7143ab5ed05efcdbe4bbb9dd93">TLineJoin</a> join)
78
<li>void <a class="el" href="classipe_1_1_painter.html#ad1dc1e450c92c21103f2e8094ee7892e">setFillRule</a> (<a class="el" href="group__attr.html#ga4defbee452ac9648e94eee7878214647">TFillRule</a> rule)
79
<li>void <a class="el" href="classipe_1_1_painter.html#a8ff9748be89a023503acd8faefd9ebce">setSymStroke</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> color)
80
<li>void <a class="el" href="classipe_1_1_painter.html#acb0be58ff2ff2e2948dd9b59b2eee390">setSymFill</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> color)
81
<li>void <a class="el" href="classipe_1_1_painter.html#a96900658f52d13067833e1a8855a6e7a">setSymPen</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> wid)
82
<li>void <a class="el" href="classipe_1_1_painter.html#a9f4953e06498d3e797f0edc5bf1d6968">setOpacity</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> opaq)
83
<li>void <a class="el" href="classipe_1_1_painter.html#a843e97880b5415978f495a869aee37e9">setTiling</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> til)
84
<li>void <a class="el" href="classipe_1_1_painter.html#aa776aecdd0002262cd40785990268869">setGradient</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> grad)
85
<li>const <a class="el" href="classipe_1_1_cascade.html">Cascade</a> * <a class="el" href="classipe_1_1_painter.html#a3ef5fe8d7bdc3185e9dddbe5c4cea74f">cascade</a> () const
86
<li><a class="el" href="classipe_1_1_color.html">Color</a> <a class="el" href="classipe_1_1_painter.html#a4aa37b34a58998f659afea439b46d1ae">stroke</a> () const
87
<li><a class="el" href="classipe_1_1_color.html">Color</a> <a class="el" href="classipe_1_1_painter.html#af322ad5dc2602815fee306d978ef298d">fill</a> () const
88
<li>const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> & <a class="el" href="classipe_1_1_painter.html#aac05c8a50022769e5630e974189379fd">matrix</a> () const
89
<li><a class="el" href="classipe_1_1_fixed.html">Fixed</a> <a class="el" href="classipe_1_1_painter.html#a8b9e269462d7312a9ae7d876fbd1366c">pen</a> () const
90
<li><a class="el" href="classipe_1_1_string.html">String</a> <a class="el" href="classipe_1_1_painter.html#ae5305de6c71a07b739a26a8afc427876">dashStyle</a> () const
91
<li>void <a class="el" href="classipe_1_1_painter.html#a7839f109a748eaf86951552d1ec9b67f">dashStyle</a> (std::vector< double > &dashes, double &offset) const
92
<li><a class="el" href="group__attr.html#ga2a173ffa6945f9033fffd786ada441b5">TLineCap</a> <a class="el" href="classipe_1_1_painter.html#ac66369b03a649f571ba0833d45981d11">lineCap</a> () const
93
<li><a class="el" href="group__attr.html#gae5ab4b7143ab5ed05efcdbe4bbb9dd93">TLineJoin</a> <a class="el" href="classipe_1_1_painter.html#a9034006c9b7a691b473702ad525e5348">lineJoin</a> () const
94
<li><a class="el" href="group__attr.html#ga4defbee452ac9648e94eee7878214647">TFillRule</a> <a class="el" href="classipe_1_1_painter.html#a0aa40e3821c0d574259a816edf28375f">fillRule</a> () const
95
<li><a class="el" href="classipe_1_1_color.html">Color</a> <a class="el" href="classipe_1_1_painter.html#a7674d82d8cffad596ac579d696a4045b">symStroke</a> () const
96
<li><a class="el" href="classipe_1_1_color.html">Color</a> <a class="el" href="classipe_1_1_painter.html#a9255f33e36400d30ac75350b111f1164">symFill</a> () const
97
<li><a class="el" href="classipe_1_1_fixed.html">Fixed</a> <a class="el" href="classipe_1_1_painter.html#a42faacf48986d7cc99dfcdd2dfa78f99">symPen</a> () const
98
<li><a class="el" href="classipe_1_1_fixed.html">Fixed</a> <a class="el" href="classipe_1_1_painter.html#a1a990d4d631f873b2127a9073933c53a">opacity</a> () const
99
<li><a class="el" href="classipe_1_1_attribute.html">Attribute</a> <a class="el" href="classipe_1_1_painter.html#a1342e1ccca4119bb1a3a448c31957f7a">tiling</a> () const
100
<li><a class="el" href="classipe_1_1_attribute.html">Attribute</a> <a class="el" href="classipe_1_1_painter.html#a9f2015549a35d2b007110799cd652c11">gradient</a> () const
102
<h2>Protected Member Functions</h2>
104
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a733fcdcd45f0a43563f6dcfdc704ab38">doPush</a> ()
105
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a7e6ac2f1e3b910ae41531cdd93b8d1f5">doPop</a> ()
106
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a08f264012fc5f179a38b35a245949821">doNewPath</a> ()
107
<li>virtual void <a class="el" href="classipe_1_1_painter.html#ad28786fd490d3a84eae3477c17cbf165">doMoveTo</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v)
108
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a7300d6f182e24b04add5b9db641de93f">doLineTo</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v)
109
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a8258010696bd694a5991bbcbd0c948f9">doCurveTo</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v1, const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v2, const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v3)
110
<li>virtual void <a class="el" href="classipe_1_1_painter.html#ac523ac54eb6bf53370261f4a8292a0e9">doDrawArc</a> (const <a class="el" href="classipe_1_1_arc.html">Arc</a> &arc)
111
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a3d4d0d5434fb56cb6b3f32764c187bcd">doClosePath</a> ()
112
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a7589058a01e11feba9649c718c9bdbcd">doDrawPath</a> (<a class="el" href="group__attr.html#ga40b15a8cc8f66dc518621289ed4f1cd6">TPathMode</a> mode)
113
<li>virtual void <a class="el" href="classipe_1_1_painter.html#ab1b9188f0440f8ce60a4e56caa418dfb">doDrawBitmap</a> (<a class="el" href="classipe_1_1_bitmap.html">Bitmap</a> bitmap)
114
<li>virtual void <a class="el" href="classipe_1_1_painter.html#aa5a6be53e530b10b5fb0b61b6a989011">doDrawText</a> (const <a class="el" href="classipe_1_1_text.html">Text</a> *text)
115
<li>virtual void <a class="el" href="classipe_1_1_painter.html#a109971fa7fece8cd4758c6acc08a9c42">doDrawSymbol</a> (<a class="el" href="classipe_1_1_attribute.html">Attribute</a> symbol)
116
<li>virtual void <a class="el" href="classipe_1_1_painter.html#ab459e36cdfac1fb5ffe9be9a42021e8c">doAddClipPath</a> ()
117
<li>void <a class="el" href="classipe_1_1_painter.html#a0f5ad54e3a28e816dcf968b1eb084441">drawArcAsBezier</a> (double alpha)
119
<h2>Protected Attributes</h2>
121
<li>std::list< <a class="el" href="structipe_1_1_painter_1_1_state.html">State</a> > <a class="el" href="classipe_1_1_painter.html#abe42f64cdacf796b4c8ca18730b19049">iState</a>
122
<li>std::list< <a class="el" href="classipe_1_1_matrix.html">Matrix</a> > <a class="el" href="classipe_1_1_painter.html#afce5aae8b3f3e869d8a64d6b3a62da52">iMatrix</a>
123
<li>const <a class="el" href="classipe_1_1_cascade.html">Cascade</a> * <a class="el" href="classipe_1_1_painter.html#a4a93819851e0039d8667af22ba92637b">iCascade</a>
124
<li>int <a class="el" href="classipe_1_1_painter.html#ab7ebba6490ae40111eb98bc075f463b8">iInPath</a>
126
<hr/><a name="_details"></a><h2>Detailed Description</h2>
127
<p>Interface for drawing. </p>
128
<p>Painter-derived classes are used for drawing to the screen and for generating PDF and Postscript output.</p>
129
<p>The <a class="el" href="classipe_1_1_painter.html" title="Interface for drawing.">Painter</a> maintains a stack of graphics states, which includes stroke and fill color, line width, dash style, miter limit, line cap and line join. It also maintains a separate stack of transformation matrices. The <a class="el" href="classipe_1_1_painter.html" title="Interface for drawing.">Painter</a> class takes care of maintaining the stacks, and setting of the attributes in the current graphics state.</p>
130
<p>Setting an attribute with a symbolic value is resolved immediately using the stylesheet <a class="el" href="classipe_1_1_cascade.html" title="A cascade of style sheets.">Cascade</a> attached to the <a class="el" href="classipe_1_1_painter.html" title="Interface for drawing.">Painter</a>, so calling the <a class="el" href="classipe_1_1_painter.html#a4aa37b34a58998f659afea439b46d1ae" title="Return current stroke color.">stroke()</a> or <a class="el" href="classipe_1_1_painter.html#af322ad5dc2602815fee306d978ef298d" title="Return current fill color.">fill()</a> methods of <a class="el" href="classipe_1_1_painter.html" title="Interface for drawing.">Painter</a> will return the current absolute color.</p>
131
<p>It's okay to set symbolic attributes that the stylesheet does not define - they are set to a default absolute value (black, solid, etc.).</p>
132
<p>The painter is either in "general" or in "path construction" mode. The <a class="el" href="classipe_1_1_painter.html#a580edf6422147229766c369a120f1db7" title="Enter path construction mode.">newPath()</a> member starts path construction mode. In this mode, only the path construction operators (moveTo, lineTo, curveTo, rect, drawArc, closePath), the transformation operators (transform, untransform, translate), and the matrix stack operators (pushMatrix, popMatrix) are admissible. The path is drawn using drawPath, this ends path construction mode. <a class="el" href="classipe_1_1_path.html" title="The path object (polylines, polygons, and generalizations).">Path</a> construction operators cannot be used in general mode.</p>
133
<p>The graphics state for a path must be set before starting path construction mode, that is, before calling <a class="el" href="classipe_1_1_painter.html#a580edf6422147229766c369a120f1db7" title="Enter path construction mode.">newPath()</a>.</p>
134
<p>Derived classes need to implement the doXXX functions for drawing paths, images, and texts. The transformation matrix has already been applied to the coordinates passed to the doXXX functions. </p>
135
<hr/><h2>Constructor & Destructor Documentation</h2>
136
<a class="anchor" id="acf4e8448838e3a1b0344f6cf91374676"></a><!-- doxytag: member="ipe::Painter::Painter" ref="acf4e8448838e3a1b0344f6cf91374676" args="(const Cascade *style)" -->
137
<div class="memitem">
138
<div class="memproto">
139
<table class="memname">
141
<td class="memname">Painter::Painter </td>
143
<td class="paramtype">const <a class="el" href="classipe_1_1_cascade.html">Cascade</a> * </td>
144
<td class="paramname"> <em>style</em></td>
145
<td> ) </td>
152
<p>Constructor takes a (cascaded) style sheet, which is not owned. </p>
153
<p>The initial graphics state contains all default attributes. </p>
157
<a class="anchor" id="a6db88212368910da3385fa9e5fa97174"></a><!-- doxytag: member="ipe::Painter::~Painter" ref="a6db88212368910da3385fa9e5fa97174" args="()" -->
158
<div class="memitem">
159
<div class="memproto">
160
<table class="memname">
162
<td class="memname">Painter::~Painter </td>
164
<td class="paramname"></td>
165
<td> ) </td>
166
<td><code> [virtual]</code></td>
172
<p>Virtual destructor. </p>
176
<hr/><h2>Member Function Documentation</h2>
177
<a class="anchor" id="afd5cf380a2a2e333f3522ddba0beee24"></a><!-- doxytag: member="ipe::Painter::transform" ref="afd5cf380a2a2e333f3522ddba0beee24" args="(const Matrix &m)" -->
178
<div class="memitem">
179
<div class="memproto">
180
<table class="memname">
182
<td class="memname">void Painter::transform </td>
184
<td class="paramtype">const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> & </td>
185
<td class="paramname"> <em>m</em></td>
186
<td> ) </td>
193
<p>Concatenate a matrix to current transformation matrix. </p>
197
<a class="anchor" id="acbcf87b919ec5141dd68f96a1b40ebf1"></a><!-- doxytag: member="ipe::Painter::untransform" ref="acbcf87b919ec5141dd68f96a1b40ebf1" args="(TTransformations trans)" -->
198
<div class="memitem">
199
<div class="memproto">
200
<table class="memname">
202
<td class="memname">void Painter::untransform </td>
204
<td class="paramtype"><a class="el" href="group__attr.html#ga5a80a01d23ba5b6e4f258faead3364c5">TTransformations</a> </td>
205
<td class="paramname"> <em>trans</em></td>
206
<td> ) </td>
213
<p>Reset transformation to original one, but with different origin/direction. </p>
214
<p>This changes the current transformation matrix to the one set before the first push operation, but maintaining the current origin. Only the operations allowed in <em>allowed</em> are applied. </p>
218
<a class="anchor" id="a3e8aef7a2d0ef820f2e000d3ad748a33"></a><!-- doxytag: member="ipe::Painter::translate" ref="a3e8aef7a2d0ef820f2e000d3ad748a33" args="(const Vector &v)" -->
219
<div class="memitem">
220
<div class="memproto">
221
<table class="memname">
223
<td class="memname">void Painter::translate </td>
225
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
226
<td class="paramname"> <em>v</em></td>
227
<td> ) </td>
234
<p>Concatenate a translation to current transformation matrix. </p>
238
<a class="anchor" id="a40e380c58116af0493bd4134ec7b4f93"></a><!-- doxytag: member="ipe::Painter::push" ref="a40e380c58116af0493bd4134ec7b4f93" args="()" -->
239
<div class="memitem">
240
<div class="memproto">
241
<table class="memname">
243
<td class="memname">void Painter::push </td>
245
<td class="paramname"></td>
246
<td> ) </td>
253
<p>Save current graphics state. </p>
254
<p>Cannot be called in path construction mode. </p>
258
<a class="anchor" id="ac7ebe896d097ab699cdb9d31ba000ef6"></a><!-- doxytag: member="ipe::Painter::pop" ref="ac7ebe896d097ab699cdb9d31ba000ef6" args="()" -->
259
<div class="memitem">
260
<div class="memproto">
261
<table class="memname">
263
<td class="memname">void Painter::pop </td>
265
<td class="paramname"></td>
266
<td> ) </td>
273
<p>Restore previous graphics state. </p>
274
<p>Cannot be called in path construction mode. </p>
278
<a class="anchor" id="a8e24a6c7587bf54c2e1ed3b77840200b"></a><!-- doxytag: member="ipe::Painter::pushMatrix" ref="a8e24a6c7587bf54c2e1ed3b77840200b" args="()" -->
279
<div class="memitem">
280
<div class="memproto">
281
<table class="memname">
283
<td class="memname">void Painter::pushMatrix </td>
285
<td class="paramname"></td>
286
<td> ) </td>
293
<p>Save current transformation matrix. </p>
297
<a class="anchor" id="af25e95850260024efe0e9ae562446e5e"></a><!-- doxytag: member="ipe::Painter::popMatrix" ref="af25e95850260024efe0e9ae562446e5e" args="()" -->
298
<div class="memitem">
299
<div class="memproto">
300
<table class="memname">
302
<td class="memname">void Painter::popMatrix </td>
304
<td class="paramname"></td>
305
<td> ) </td>
312
<p>Restore previous transformation matrix. </p>
316
<a class="anchor" id="a580edf6422147229766c369a120f1db7"></a><!-- doxytag: member="ipe::Painter::newPath" ref="a580edf6422147229766c369a120f1db7" args="()" -->
317
<div class="memitem">
318
<div class="memproto">
319
<table class="memname">
321
<td class="memname">void Painter::newPath </td>
323
<td class="paramname"></td>
324
<td> ) </td>
331
<p>Enter path construction mode. </p>
335
<a class="anchor" id="a0b998b4615288943fa4e300d1677dab7"></a><!-- doxytag: member="ipe::Painter::moveTo" ref="a0b998b4615288943fa4e300d1677dab7" args="(const Vector &v)" -->
336
<div class="memitem">
337
<div class="memproto">
338
<table class="memname">
340
<td class="memname">void Painter::moveTo </td>
342
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
343
<td class="paramname"> <em>v</em></td>
344
<td> ) </td>
351
<p>Start a new subpath. </p>
355
<a class="anchor" id="a465e1be33666708f17c63567a51b25cd"></a><!-- doxytag: member="ipe::Painter::lineTo" ref="a465e1be33666708f17c63567a51b25cd" args="(const Vector &v)" -->
356
<div class="memitem">
357
<div class="memproto">
358
<table class="memname">
360
<td class="memname">void Painter::lineTo </td>
362
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
363
<td class="paramname"> <em>v</em></td>
364
<td> ) </td>
371
<p>Add line segment to current subpath. </p>
375
<a class="anchor" id="a1ee1b1de8e7f010bebea9881c99a68ca"></a><!-- doxytag: member="ipe::Painter::curveTo" ref="a1ee1b1de8e7f010bebea9881c99a68ca" args="(const Vector &v1, const Vector &v2, const Vector &v3)" -->
376
<div class="memitem">
377
<div class="memproto">
378
<table class="memname">
380
<td class="memname">void Painter::curveTo </td>
382
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
383
<td class="paramname"> <em>v1</em>, </td>
386
<td class="paramkey"></td>
388
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
389
<td class="paramname"> <em>v2</em>, </td>
392
<td class="paramkey"></td>
394
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
395
<td class="paramname"> <em>v3</em></td><td> </td>
400
<td></td><td></td><td></td>
406
<p>Add a <a class="el" href="classipe_1_1_bezier.html" title="A cubic Bezier spline.">Bezier</a> segment to current subpath. </p>
410
<a class="anchor" id="a2d63228d71d1653bffb038c0bbef629d"></a><!-- doxytag: member="ipe::Painter::curveTo" ref="a2d63228d71d1653bffb038c0bbef629d" args="(const Bezier &bezier)" -->
411
<div class="memitem">
412
<div class="memproto">
413
<table class="memname">
415
<td class="memname">void ipe::Painter::curveTo </td>
417
<td class="paramtype">const <a class="el" href="classipe_1_1_bezier.html">Bezier</a> & </td>
418
<td class="paramname"> <em>bezier</em></td>
419
<td> ) </td>
420
<td><code> [inline]</code></td>
426
<p>Overloaded function. </p>
427
<p>Assumes current position is <code>bezier.iV</code>[0] </p>
431
<a class="anchor" id="ae5d17523775c6bc268e9408252c42288"></a><!-- doxytag: member="ipe::Painter::rect" ref="ae5d17523775c6bc268e9408252c42288" args="(const Rect &re)" -->
432
<div class="memitem">
433
<div class="memproto">
434
<table class="memname">
436
<td class="memname">void Painter::rect </td>
438
<td class="paramtype">const <a class="el" href="classipe_1_1_rect.html">Rect</a> & </td>
439
<td class="paramname"> <em>re</em></td>
440
<td> ) </td>
447
<p>Add a rectangle subpath to the path. </p>
448
<p>This is implemented in terms of <a class="el" href="classipe_1_1_painter.html#a0b998b4615288943fa4e300d1677dab7" title="Start a new subpath.">moveTo()</a> and <a class="el" href="classipe_1_1_painter.html#a465e1be33666708f17c63567a51b25cd" title="Add line segment to current subpath.">lineTo()</a>. </p>
452
<a class="anchor" id="a5883713b8c127bea0df52dc41cd1ef84"></a><!-- doxytag: member="ipe::Painter::drawEllipse" ref="a5883713b8c127bea0df52dc41cd1ef84" args="()" -->
453
<div class="memitem">
454
<div class="memproto">
455
<table class="memname">
457
<td class="memname">void ipe::Painter::drawEllipse </td>
459
<td class="paramname"></td>
460
<td> ) </td>
469
<a class="anchor" id="aefac23955e5e92866c7e5510fa6cdf6f"></a><!-- doxytag: member="ipe::Painter::drawArc" ref="aefac23955e5e92866c7e5510fa6cdf6f" args="(const Arc &arc)" -->
470
<div class="memitem">
471
<div class="memproto">
472
<table class="memname">
474
<td class="memname">void Painter::drawArc </td>
476
<td class="paramtype">const <a class="el" href="classipe_1_1_arc.html">Arc</a> & </td>
477
<td class="paramname"> <em>arc</em></td>
478
<td> ) </td>
485
<p>Add an elliptic arc to current path. </p>
486
<p>Assumes the current point is <em>arc.beginp()</em>. </p>
490
<a class="anchor" id="ad683c8ce88d8e04661d20d5ede3edcfe"></a><!-- doxytag: member="ipe::Painter::closePath" ref="ad683c8ce88d8e04661d20d5ede3edcfe" args="()" -->
491
<div class="memitem">
492
<div class="memproto">
493
<table class="memname">
495
<td class="memname">void Painter::closePath </td>
497
<td class="paramname"></td>
498
<td> ) </td>
505
<p>Close the current subpath. </p>
509
<a class="anchor" id="a8175239f735df2d07f3dac1318a8d339"></a><!-- doxytag: member="ipe::Painter::drawPath" ref="a8175239f735df2d07f3dac1318a8d339" args="(TPathMode mode)" -->
510
<div class="memitem">
511
<div class="memproto">
512
<table class="memname">
514
<td class="memname">void Painter::drawPath </td>
516
<td class="paramtype"><a class="el" href="group__attr.html#ga40b15a8cc8f66dc518621289ed4f1cd6">TPathMode</a> </td>
517
<td class="paramname"> <em>mode</em></td>
518
<td> ) </td>
525
<p>Fill and/or stroke a path. </p>
526
<p>As in PDF, a "path" can consist of several subpaths. Whether it is filled or stroked depends on <em>mode</em>. </p>
530
<a class="anchor" id="a503d2c8872094101d0cd25297dfee1ab"></a><!-- doxytag: member="ipe::Painter::drawBitmap" ref="a503d2c8872094101d0cd25297dfee1ab" args="(Bitmap bitmap)" -->
531
<div class="memitem">
532
<div class="memproto">
533
<table class="memname">
535
<td class="memname">void Painter::drawBitmap </td>
537
<td class="paramtype"><a class="el" href="classipe_1_1_bitmap.html">Bitmap</a> </td>
538
<td class="paramname"> <em>bitmap</em></td>
539
<td> ) </td>
546
<p>Render a bitmap. </p>
547
<p>Assumes the transformation matrix has been set up to map the unit square to the image area on the paper. </p>
551
<a class="anchor" id="aa04deec0603c5b17a84c53e57a776e90"></a><!-- doxytag: member="ipe::Painter::drawText" ref="aa04deec0603c5b17a84c53e57a776e90" args="(const Text *text)" -->
552
<div class="memitem">
553
<div class="memproto">
554
<table class="memname">
556
<td class="memname">void Painter::drawText </td>
558
<td class="paramtype">const <a class="el" href="classipe_1_1_text.html">Text</a> * </td>
559
<td class="paramname"> <em>text</em></td>
560
<td> ) </td>
567
<p>Render a text object. </p>
568
<p>Stroke color is already set, and the origin is the lower-left corner of the text box (not the reference point!). </p>
572
<a class="anchor" id="a38f91a96ddc2cc703c3392ef71b22dfe"></a><!-- doxytag: member="ipe::Painter::drawSymbol" ref="a38f91a96ddc2cc703c3392ef71b22dfe" args="(Attribute symbol)" -->
573
<div class="memitem">
574
<div class="memproto">
575
<table class="memname">
577
<td class="memname">void Painter::drawSymbol </td>
579
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
580
<td class="paramname"> <em>symbol</em></td>
581
<td> ) </td>
588
<p>Render a symbol. </p>
589
<p>The current coordinate system is already the symbol coordinate system. If the symbol is parameterized, then sym-stroke, sym-fill, and sym-pen are already set. </p>
593
<a class="anchor" id="a30d8809ffdfa7688968cbee3f552dbc4"></a><!-- doxytag: member="ipe::Painter::addClipPath" ref="a30d8809ffdfa7688968cbee3f552dbc4" args="()" -->
594
<div class="memitem">
595
<div class="memproto">
596
<table class="memname">
598
<td class="memname">void Painter::addClipPath </td>
600
<td class="paramname"></td>
601
<td> ) </td>
608
<p>Add current path as clip path. </p>
612
<a class="anchor" id="ac12fc48d78849bca8265499b395a3ab2"></a><!-- doxytag: member="ipe::Painter::setStroke" ref="ac12fc48d78849bca8265499b395a3ab2" args="(Attribute color)" -->
613
<div class="memitem">
614
<div class="memproto">
615
<table class="memname">
617
<td class="memname">void Painter::setStroke </td>
619
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
620
<td class="paramname"> <em>color</em></td>
621
<td> ) </td>
628
<p>Set stroke color, resolving symbolic color and "sym-x" colors. </p>
632
<a class="anchor" id="a780cbf6f5a943593837c89376fe303f5"></a><!-- doxytag: member="ipe::Painter::setFill" ref="a780cbf6f5a943593837c89376fe303f5" args="(Attribute color)" -->
633
<div class="memitem">
634
<div class="memproto">
635
<table class="memname">
637
<td class="memname">void Painter::setFill </td>
639
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
640
<td class="paramname"> <em>color</em></td>
641
<td> ) </td>
648
<p>Set fill color, resolving symbolic color. </p>
652
<a class="anchor" id="a183d7f460e3e3a2e61f0b4b81198c59b"></a><!-- doxytag: member="ipe::Painter::setPen" ref="a183d7f460e3e3a2e61f0b4b81198c59b" args="(Attribute pen)" -->
653
<div class="memitem">
654
<div class="memproto">
655
<table class="memname">
657
<td class="memname">void Painter::setPen </td>
659
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
660
<td class="paramname"> <em>pen</em></td>
661
<td> ) </td>
668
<p>Set pen, resolving symbolic value. </p>
672
<a class="anchor" id="ae1321c22c27ee6517bc5ef2bfb2b2ef3"></a><!-- doxytag: member="ipe::Painter::setDashStyle" ref="ae1321c22c27ee6517bc5ef2bfb2b2ef3" args="(Attribute dash)" -->
673
<div class="memitem">
674
<div class="memproto">
675
<table class="memname">
677
<td class="memname">void Painter::setDashStyle </td>
679
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
680
<td class="paramname"> <em>dash</em></td>
681
<td> ) </td>
688
<p>Set dash style, resolving symbolic value. </p>
692
<a class="anchor" id="a4a92b9ecc1513ba5ae68b26a6814f024"></a><!-- doxytag: member="ipe::Painter::setLineCap" ref="a4a92b9ecc1513ba5ae68b26a6814f024" args="(TLineCap cap)" -->
693
<div class="memitem">
694
<div class="memproto">
695
<table class="memname">
697
<td class="memname">void Painter::setLineCap </td>
699
<td class="paramtype"><a class="el" href="group__attr.html#ga2a173ffa6945f9033fffd786ada441b5">TLineCap</a> </td>
700
<td class="paramname"> <em>cap</em></td>
701
<td> ) </td>
708
<p>Set line cap. </p>
709
<p>If <em>cap</em> is EDefaultCap, the current setting remains unchanged. </p>
713
<a class="anchor" id="a331dc3c7577876949050550479bc3b71"></a><!-- doxytag: member="ipe::Painter::setLineJoin" ref="a331dc3c7577876949050550479bc3b71" args="(TLineJoin join)" -->
714
<div class="memitem">
715
<div class="memproto">
716
<table class="memname">
718
<td class="memname">void Painter::setLineJoin </td>
720
<td class="paramtype"><a class="el" href="group__attr.html#gae5ab4b7143ab5ed05efcdbe4bbb9dd93">TLineJoin</a> </td>
721
<td class="paramname"> <em>join</em></td>
722
<td> ) </td>
729
<p>Set line join. </p>
730
<p>If <em>join</em> is EDefaultJoin, the current setting remains unchanged. </p>
734
<a class="anchor" id="ad1dc1e450c92c21103f2e8094ee7892e"></a><!-- doxytag: member="ipe::Painter::setFillRule" ref="ad1dc1e450c92c21103f2e8094ee7892e" args="(TFillRule rule)" -->
735
<div class="memitem">
736
<div class="memproto">
737
<table class="memname">
739
<td class="memname">void Painter::setFillRule </td>
741
<td class="paramtype"><a class="el" href="group__attr.html#ga4defbee452ac9648e94eee7878214647">TFillRule</a> </td>
742
<td class="paramname"> <em>rule</em></td>
743
<td> ) </td>
750
<p>Set fill rule (wind or even-odd). </p>
751
<p>If the rule is EDefaultRule, the current setting remains unchanged. </p>
755
<a class="anchor" id="a8ff9748be89a023503acd8faefd9ebce"></a><!-- doxytag: member="ipe::Painter::setSymStroke" ref="a8ff9748be89a023503acd8faefd9ebce" args="(Attribute color)" -->
756
<div class="memitem">
757
<div class="memproto">
758
<table class="memname">
760
<td class="memname">void Painter::setSymStroke </td>
762
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
763
<td class="paramname"> <em>color</em></td>
764
<td> ) </td>
771
<p>Set symbol stroke color, resolving symbolic color. </p>
775
<a class="anchor" id="acb0be58ff2ff2e2948dd9b59b2eee390"></a><!-- doxytag: member="ipe::Painter::setSymFill" ref="acb0be58ff2ff2e2948dd9b59b2eee390" args="(Attribute color)" -->
776
<div class="memitem">
777
<div class="memproto">
778
<table class="memname">
780
<td class="memname">void Painter::setSymFill </td>
782
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
783
<td class="paramname"> <em>color</em></td>
784
<td> ) </td>
791
<p>Set symbol fill color, resolving symbolic color. </p>
795
<a class="anchor" id="a96900658f52d13067833e1a8855a6e7a"></a><!-- doxytag: member="ipe::Painter::setSymPen" ref="a96900658f52d13067833e1a8855a6e7a" args="(Attribute wid)" -->
796
<div class="memitem">
797
<div class="memproto">
798
<table class="memname">
800
<td class="memname">void Painter::setSymPen </td>
802
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
803
<td class="paramname"> <em>wid</em></td>
804
<td> ) </td>
811
<p>Set symbol pen, resolving symbolic pen. </p>
815
<a class="anchor" id="a9f4953e06498d3e797f0edc5bf1d6968"></a><!-- doxytag: member="ipe::Painter::setOpacity" ref="a9f4953e06498d3e797f0edc5bf1d6968" args="(Attribute opaq)" -->
816
<div class="memitem">
817
<div class="memproto">
818
<table class="memname">
820
<td class="memname">void Painter::setOpacity </td>
822
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
823
<td class="paramname"> <em>opaq</em></td>
824
<td> ) </td>
835
<a class="anchor" id="a843e97880b5415978f495a869aee37e9"></a><!-- doxytag: member="ipe::Painter::setTiling" ref="a843e97880b5415978f495a869aee37e9" args="(Attribute til)" -->
836
<div class="memitem">
837
<div class="memproto">
838
<table class="memname">
840
<td class="memname">void Painter::setTiling </td>
842
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
843
<td class="paramname"> <em>tiling</em></td>
844
<td> ) </td>
851
<p>Set tiling pattern. </p>
852
<p>If <em>tiling</em> is not <code>normal</code>, resets the gradient pattern. </p>
856
<a class="anchor" id="aa776aecdd0002262cd40785990268869"></a><!-- doxytag: member="ipe::Painter::setGradient" ref="aa776aecdd0002262cd40785990268869" args="(Attribute grad)" -->
857
<div class="memitem">
858
<div class="memproto">
859
<table class="memname">
861
<td class="memname">void Painter::setGradient </td>
863
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
864
<td class="paramname"> <em>grad</em></td>
865
<td> ) </td>
872
<p>Set gradient fill. </p>
873
<p>If <em>grad</em> is not <code>normal</code>, resets the tiling pattern. </p>
877
<a class="anchor" id="a3ef5fe8d7bdc3185e9dddbe5c4cea74f"></a><!-- doxytag: member="ipe::Painter::cascade" ref="a3ef5fe8d7bdc3185e9dddbe5c4cea74f" args="() const " -->
878
<div class="memitem">
879
<div class="memproto">
880
<table class="memname">
882
<td class="memname">const <a class="el" href="classipe_1_1_cascade.html">Cascade</a>* ipe::Painter::cascade </td>
884
<td class="paramname"></td>
885
<td> ) </td>
886
<td> const<code> [inline]</code></td>
892
<p>Return style sheet cascade. </p>
896
<a class="anchor" id="a4aa37b34a58998f659afea439b46d1ae"></a><!-- doxytag: member="ipe::Painter::stroke" ref="a4aa37b34a58998f659afea439b46d1ae" args="() const " -->
897
<div class="memitem">
898
<div class="memproto">
899
<table class="memname">
901
<td class="memname"><a class="el" href="classipe_1_1_color.html">Color</a> ipe::Painter::stroke </td>
903
<td class="paramname"></td>
904
<td> ) </td>
905
<td> const<code> [inline]</code></td>
911
<p>Return current stroke color. </p>
915
<a class="anchor" id="af322ad5dc2602815fee306d978ef298d"></a><!-- doxytag: member="ipe::Painter::fill" ref="af322ad5dc2602815fee306d978ef298d" args="() const " -->
916
<div class="memitem">
917
<div class="memproto">
918
<table class="memname">
920
<td class="memname"><a class="el" href="classipe_1_1_color.html">Color</a> ipe::Painter::fill </td>
922
<td class="paramname"></td>
923
<td> ) </td>
924
<td> const<code> [inline]</code></td>
930
<p>Return current fill color. </p>
934
<a class="anchor" id="aac05c8a50022769e5630e974189379fd"></a><!-- doxytag: member="ipe::Painter::matrix" ref="aac05c8a50022769e5630e974189379fd" args="() const " -->
935
<div class="memitem">
936
<div class="memproto">
937
<table class="memname">
939
<td class="memname">const <a class="el" href="classipe_1_1_matrix.html">Matrix</a>& ipe::Painter::matrix </td>
941
<td class="paramname"></td>
942
<td> ) </td>
943
<td> const<code> [inline]</code></td>
949
<p>Return current transformation matrix. </p>
953
<a class="anchor" id="a8b9e269462d7312a9ae7d876fbd1366c"></a><!-- doxytag: member="ipe::Painter::pen" ref="a8b9e269462d7312a9ae7d876fbd1366c" args="() const " -->
954
<div class="memitem">
955
<div class="memproto">
956
<table class="memname">
958
<td class="memname"><a class="el" href="classipe_1_1_fixed.html">Fixed</a> ipe::Painter::pen </td>
960
<td class="paramname"></td>
961
<td> ) </td>
962
<td> const<code> [inline]</code></td>
968
<p>Return current pen. </p>
972
<a class="anchor" id="ae5305de6c71a07b739a26a8afc427876"></a><!-- doxytag: member="ipe::Painter::dashStyle" ref="ae5305de6c71a07b739a26a8afc427876" args="() const " -->
973
<div class="memitem">
974
<div class="memproto">
975
<table class="memname">
977
<td class="memname"><a class="el" href="classipe_1_1_string.html">String</a> ipe::Painter::dashStyle </td>
979
<td class="paramname"></td>
980
<td> ) </td>
981
<td> const<code> [inline]</code></td>
987
<p>Return current dash style (always absolute attribute). </p>
991
<a class="anchor" id="a7839f109a748eaf86951552d1ec9b67f"></a><!-- doxytag: member="ipe::Painter::dashStyle" ref="a7839f109a748eaf86951552d1ec9b67f" args="(std::vector< double > &dashes, double &offset) const " -->
992
<div class="memitem">
993
<div class="memproto">
994
<table class="memname">
996
<td class="memname">void Painter::dashStyle </td>
998
<td class="paramtype">std::vector< double > & </td>
999
<td class="paramname"> <em>dashes</em>, </td>
1002
<td class="paramkey"></td>
1004
<td class="paramtype">double & </td>
1005
<td class="paramname"> <em>offset</em></td><td> </td>
1010
<td></td><td></td><td> const</td>
1014
<div class="memdoc">
1016
<p>Return dashstyle as a double sequence. </p>
1020
<a class="anchor" id="ac66369b03a649f571ba0833d45981d11"></a><!-- doxytag: member="ipe::Painter::lineCap" ref="ac66369b03a649f571ba0833d45981d11" args="() const " -->
1021
<div class="memitem">
1022
<div class="memproto">
1023
<table class="memname">
1025
<td class="memname"><a class="el" href="group__attr.html#ga2a173ffa6945f9033fffd786ada441b5">TLineCap</a> ipe::Painter::lineCap </td>
1027
<td class="paramname"></td>
1028
<td> ) </td>
1029
<td> const<code> [inline]</code></td>
1033
<div class="memdoc">
1035
<p>Return current line cap. </p>
1039
<a class="anchor" id="a9034006c9b7a691b473702ad525e5348"></a><!-- doxytag: member="ipe::Painter::lineJoin" ref="a9034006c9b7a691b473702ad525e5348" args="() const " -->
1040
<div class="memitem">
1041
<div class="memproto">
1042
<table class="memname">
1044
<td class="memname"><a class="el" href="group__attr.html#gae5ab4b7143ab5ed05efcdbe4bbb9dd93">TLineJoin</a> ipe::Painter::lineJoin </td>
1046
<td class="paramname"></td>
1047
<td> ) </td>
1048
<td> const<code> [inline]</code></td>
1052
<div class="memdoc">
1054
<p>Return current line join. </p>
1058
<a class="anchor" id="a0aa40e3821c0d574259a816edf28375f"></a><!-- doxytag: member="ipe::Painter::fillRule" ref="a0aa40e3821c0d574259a816edf28375f" args="() const " -->
1059
<div class="memitem">
1060
<div class="memproto">
1061
<table class="memname">
1063
<td class="memname"><a class="el" href="group__attr.html#ga4defbee452ac9648e94eee7878214647">TFillRule</a> ipe::Painter::fillRule </td>
1065
<td class="paramname"></td>
1066
<td> ) </td>
1067
<td> const<code> [inline]</code></td>
1071
<div class="memdoc">
1073
<p>Return current fill rule. </p>
1077
<a class="anchor" id="a7674d82d8cffad596ac579d696a4045b"></a><!-- doxytag: member="ipe::Painter::symStroke" ref="a7674d82d8cffad596ac579d696a4045b" args="() const " -->
1078
<div class="memitem">
1079
<div class="memproto">
1080
<table class="memname">
1082
<td class="memname"><a class="el" href="classipe_1_1_color.html">Color</a> ipe::Painter::symStroke </td>
1084
<td class="paramname"></td>
1085
<td> ) </td>
1086
<td> const<code> [inline]</code></td>
1090
<div class="memdoc">
1092
<p>Return current symbol stroke color. </p>
1096
<a class="anchor" id="a9255f33e36400d30ac75350b111f1164"></a><!-- doxytag: member="ipe::Painter::symFill" ref="a9255f33e36400d30ac75350b111f1164" args="() const " -->
1097
<div class="memitem">
1098
<div class="memproto">
1099
<table class="memname">
1101
<td class="memname"><a class="el" href="classipe_1_1_color.html">Color</a> ipe::Painter::symFill </td>
1103
<td class="paramname"></td>
1104
<td> ) </td>
1105
<td> const<code> [inline]</code></td>
1109
<div class="memdoc">
1111
<p>Return current symbol fill color. </p>
1115
<a class="anchor" id="a42faacf48986d7cc99dfcdd2dfa78f99"></a><!-- doxytag: member="ipe::Painter::symPen" ref="a42faacf48986d7cc99dfcdd2dfa78f99" args="() const " -->
1116
<div class="memitem">
1117
<div class="memproto">
1118
<table class="memname">
1120
<td class="memname"><a class="el" href="classipe_1_1_fixed.html">Fixed</a> ipe::Painter::symPen </td>
1122
<td class="paramname"></td>
1123
<td> ) </td>
1124
<td> const<code> [inline]</code></td>
1128
<div class="memdoc">
1130
<p>Return current symbol pen. </p>
1134
<a class="anchor" id="a1a990d4d631f873b2127a9073933c53a"></a><!-- doxytag: member="ipe::Painter::opacity" ref="a1a990d4d631f873b2127a9073933c53a" args="() const " -->
1135
<div class="memitem">
1136
<div class="memproto">
1137
<table class="memname">
1139
<td class="memname"><a class="el" href="classipe_1_1_fixed.html">Fixed</a> ipe::Painter::opacity </td>
1141
<td class="paramname"></td>
1142
<td> ) </td>
1143
<td> const<code> [inline]</code></td>
1147
<div class="memdoc">
1149
<p>Return current opacity. </p>
1153
<a class="anchor" id="a1342e1ccca4119bb1a3a448c31957f7a"></a><!-- doxytag: member="ipe::Painter::tiling" ref="a1342e1ccca4119bb1a3a448c31957f7a" args="() const " -->
1154
<div class="memitem">
1155
<div class="memproto">
1156
<table class="memname">
1158
<td class="memname"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> ipe::Painter::tiling </td>
1160
<td class="paramname"></td>
1161
<td> ) </td>
1162
<td> const<code> [inline]</code></td>
1166
<div class="memdoc">
1168
<p>Return current tiling. </p>
1172
<a class="anchor" id="a9f2015549a35d2b007110799cd652c11"></a><!-- doxytag: member="ipe::Painter::gradient" ref="a9f2015549a35d2b007110799cd652c11" args="() const " -->
1173
<div class="memitem">
1174
<div class="memproto">
1175
<table class="memname">
1177
<td class="memname"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> ipe::Painter::gradient </td>
1179
<td class="paramname"></td>
1180
<td> ) </td>
1181
<td> const<code> [inline]</code></td>
1185
<div class="memdoc">
1187
<p>Return current gradient fill. </p>
1191
<a class="anchor" id="a733fcdcd45f0a43563f6dcfdc704ab38"></a><!-- doxytag: member="ipe::Painter::doPush" ref="a733fcdcd45f0a43563f6dcfdc704ab38" args="()" -->
1192
<div class="memitem">
1193
<div class="memproto">
1194
<table class="memname">
1196
<td class="memname">void Painter::doPush </td>
1198
<td class="paramname"></td>
1199
<td> ) </td>
1200
<td><code> [protected, virtual]</code></td>
1204
<div class="memdoc">
1206
<p>Perform graphics state push on output medium. </p>
1208
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#a0e71460a2ca3a783de814a5bca7be870">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#ab3cbe2d8915075e02ea7607932437313">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#ad63bdc3d2eb126666cf3c57db75fe4bb">ipe::CairoPainter</a>.</p>
1212
<a class="anchor" id="a7e6ac2f1e3b910ae41531cdd93b8d1f5"></a><!-- doxytag: member="ipe::Painter::doPop" ref="a7e6ac2f1e3b910ae41531cdd93b8d1f5" args="()" -->
1213
<div class="memitem">
1214
<div class="memproto">
1215
<table class="memname">
1217
<td class="memname">void Painter::doPop </td>
1219
<td class="paramname"></td>
1220
<td> ) </td>
1221
<td><code> [protected, virtual]</code></td>
1225
<div class="memdoc">
1227
<p>Perform graphics state pop on output medium. </p>
1229
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#af11bf33417b3164a015004302be7149d">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#a7e73a0f2c8b00b801d629a336ffcf930">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#abeb4dfd9022f84a4dc48d66860f8d025">ipe::CairoPainter</a>.</p>
1233
<a class="anchor" id="a08f264012fc5f179a38b35a245949821"></a><!-- doxytag: member="ipe::Painter::doNewPath" ref="a08f264012fc5f179a38b35a245949821" args="()" -->
1234
<div class="memitem">
1235
<div class="memproto">
1236
<table class="memname">
1238
<td class="memname">void Painter::doNewPath </td>
1240
<td class="paramname"></td>
1241
<td> ) </td>
1242
<td><code> [protected, virtual]</code></td>
1246
<div class="memdoc">
1248
<p>Perform new path operator. </p>
1250
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#a9a3ec08b605fc3b2fde235a9805ac7cd">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_ps_painter.html#a2c109723bf9029dd1e5b4d0aa6ecf423">ipe::PsPainter</a>, and <a class="el" href="classipe_1_1_b_box_painter.html#add44080d9a9aae7d12fbddc6a332a548">ipe::BBoxPainter</a>.</p>
1254
<a class="anchor" id="ad28786fd490d3a84eae3477c17cbf165"></a><!-- doxytag: member="ipe::Painter::doMoveTo" ref="ad28786fd490d3a84eae3477c17cbf165" args="(const Vector &v)" -->
1255
<div class="memitem">
1256
<div class="memproto">
1257
<table class="memname">
1259
<td class="memname">void Painter::doMoveTo </td>
1261
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
1262
<td class="paramname"> <em>v</em></td>
1263
<td> ) </td>
1264
<td><code> [protected, virtual]</code></td>
1268
<div class="memdoc">
1270
<p>Perform moveto operator. </p>
1271
<p>The transformation matrix has already been applied. </p>
1273
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#a82a959863e2b900174825b512555c279">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#a32a672b1744b3b005db09018ec4f526a">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#aaf9d36cb8e2b3b15917420ec33166f64">ipe::CairoPainter</a>.</p>
1277
<a class="anchor" id="a7300d6f182e24b04add5b9db641de93f"></a><!-- doxytag: member="ipe::Painter::doLineTo" ref="a7300d6f182e24b04add5b9db641de93f" args="(const Vector &v)" -->
1278
<div class="memitem">
1279
<div class="memproto">
1280
<table class="memname">
1282
<td class="memname">void Painter::doLineTo </td>
1284
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
1285
<td class="paramname"> <em>v</em></td>
1286
<td> ) </td>
1287
<td><code> [protected, virtual]</code></td>
1291
<div class="memdoc">
1293
<p>Perform lineto operator. </p>
1294
<p>The transformation matrix has already been applied. </p>
1296
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#ab61419dcef501093e69f14c8eb217f60">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#aea7075d56601aa1f62770fde6f93835d">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#aaef56adac8e4cf76cc4e5b3808b87977">ipe::CairoPainter</a>.</p>
1300
<a class="anchor" id="a8258010696bd694a5991bbcbd0c948f9"></a><!-- doxytag: member="ipe::Painter::doCurveTo" ref="a8258010696bd694a5991bbcbd0c948f9" args="(const Vector &v1, const Vector &v2, const Vector &v3)" -->
1301
<div class="memitem">
1302
<div class="memproto">
1303
<table class="memname">
1305
<td class="memname">void Painter::doCurveTo </td>
1307
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
1308
<td class="paramname"> <em>v1</em>, </td>
1311
<td class="paramkey"></td>
1313
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
1314
<td class="paramname"> <em>v2</em>, </td>
1317
<td class="paramkey"></td>
1319
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
1320
<td class="paramname"> <em>v3</em></td><td> </td>
1325
<td></td><td></td><td><code> [protected, virtual]</code></td>
1329
<div class="memdoc">
1331
<p>Perform curveto operator. </p>
1332
<p>The transformation matrix has already been applied. </p>
1334
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#a9ae1374643df192d85c6df8c0215fec7">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#ab6d1823247fc38d265ec24e201113ba1">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#ab793583fb2552013ae92063863504e1a">ipe::CairoPainter</a>.</p>
1338
<a class="anchor" id="ac523ac54eb6bf53370261f4a8292a0e9"></a><!-- doxytag: member="ipe::Painter::doDrawArc" ref="ac523ac54eb6bf53370261f4a8292a0e9" args="(const Arc &arc)" -->
1339
<div class="memitem">
1340
<div class="memproto">
1341
<table class="memname">
1343
<td class="memname">void Painter::doDrawArc </td>
1345
<td class="paramtype">const <a class="el" href="classipe_1_1_arc.html">Arc</a> & </td>
1346
<td class="paramname"> <em>arc</em></td>
1347
<td> ) </td>
1348
<td><code> [protected, virtual]</code></td>
1352
<div class="memdoc">
1354
<p>Draw an elliptic arc. </p>
1355
<p>The default implementations calls <a class="el" href="classipe_1_1_painter.html#a0f5ad54e3a28e816dcf968b1eb084441" title="Draw an arc of the unit circle of length alpha.">drawArcAsBezier()</a>. The transformation matrix has not yet been applied to <em>arc</em>. </p>
1357
<p>Reimplemented in <a class="el" href="classipe_1_1_cairo_painter.html#a20aa325436689c47afb58219c9fb3890">ipe::CairoPainter</a>.</p>
1361
<a class="anchor" id="a3d4d0d5434fb56cb6b3f32764c187bcd"></a><!-- doxytag: member="ipe::Painter::doClosePath" ref="a3d4d0d5434fb56cb6b3f32764c187bcd" args="()" -->
1362
<div class="memitem">
1363
<div class="memproto">
1364
<table class="memname">
1366
<td class="memname">void Painter::doClosePath </td>
1368
<td class="paramname"></td>
1369
<td> ) </td>
1370
<td><code> [protected, virtual]</code></td>
1374
<div class="memdoc">
1376
<p>Perform closepath operator. </p>
1378
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#ad6f20bb1dd63f4e981218df49b2ed6ba">ipe::PdfPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#a323020b71992048926c91309aed29cb1">ipe::CairoPainter</a>.</p>
1382
<a class="anchor" id="a7589058a01e11feba9649c718c9bdbcd"></a><!-- doxytag: member="ipe::Painter::doDrawPath" ref="a7589058a01e11feba9649c718c9bdbcd" args="(TPathMode mode)" -->
1383
<div class="memitem">
1384
<div class="memproto">
1385
<table class="memname">
1387
<td class="memname">void Painter::doDrawPath </td>
1389
<td class="paramtype"><a class="el" href="group__attr.html#ga40b15a8cc8f66dc518621289ed4f1cd6">TPathMode</a> </td>
1390
<td class="paramname"> <em>mode</em></td>
1391
<td> ) </td>
1392
<td><code> [protected, virtual]</code></td>
1396
<div class="memdoc">
1398
<p>Actually draw the path. </p>
1400
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#ae2d55b805795a03cd8520a5a43c31f64">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_ps_painter.html#a2b9e73def6affc085ee905844071fb76">ipe::PsPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#a63f02299099701c4c39c8d86a97d8dbb">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#ac0b9a4e1d3aa814135cc043c85a21eb2">ipe::CairoPainter</a>.</p>
1404
<a class="anchor" id="ab1b9188f0440f8ce60a4e56caa418dfb"></a><!-- doxytag: member="ipe::Painter::doDrawBitmap" ref="ab1b9188f0440f8ce60a4e56caa418dfb" args="(Bitmap bitmap)" -->
1405
<div class="memitem">
1406
<div class="memproto">
1407
<table class="memname">
1409
<td class="memname">void Painter::doDrawBitmap </td>
1411
<td class="paramtype"><a class="el" href="classipe_1_1_bitmap.html">Bitmap</a> </td>
1412
<td class="paramname"> <em>bitmap</em></td>
1413
<td> ) </td>
1414
<td><code> [protected, virtual]</code></td>
1418
<div class="memdoc">
1420
<p>Draw a bitmap. </p>
1422
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#a2bc9e738990891ca8da9c9141821b7b1">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_ps_painter.html#aaa469c60312075bfc6cd54810718d71f">ipe::PsPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#a7cc670ff2bc22ee06a6fb34302c30268">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#acace2dcf5e597435dbf98b815c40d7b8">ipe::CairoPainter</a>.</p>
1426
<a class="anchor" id="aa5a6be53e530b10b5fb0b61b6a989011"></a><!-- doxytag: member="ipe::Painter::doDrawText" ref="aa5a6be53e530b10b5fb0b61b6a989011" args="(const Text *text)" -->
1427
<div class="memitem">
1428
<div class="memproto">
1429
<table class="memname">
1431
<td class="memname">void Painter::doDrawText </td>
1433
<td class="paramtype">const <a class="el" href="classipe_1_1_text.html">Text</a> * </td>
1434
<td class="paramname"> <em>text</em></td>
1435
<td> ) </td>
1436
<td><code> [protected, virtual]</code></td>
1440
<div class="memdoc">
1442
<p>Draw a text object. </p>
1444
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#a89af8f32695d045440818a89a89d96f2">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#ace2557ae88644be233d03489c65dd972">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#a8e4a076781fd381b18aa416154d389ef">ipe::CairoPainter</a>.</p>
1448
<a class="anchor" id="a109971fa7fece8cd4758c6acc08a9c42"></a><!-- doxytag: member="ipe::Painter::doDrawSymbol" ref="a109971fa7fece8cd4758c6acc08a9c42" args="(Attribute symbol)" -->
1449
<div class="memitem">
1450
<div class="memproto">
1451
<table class="memname">
1453
<td class="memname">void Painter::doDrawSymbol </td>
1455
<td class="paramtype"><a class="el" href="classipe_1_1_attribute.html">Attribute</a> </td>
1456
<td class="paramname"> <em>symbol</em></td>
1457
<td> ) </td>
1458
<td><code> [protected, virtual]</code></td>
1462
<div class="memdoc">
1464
<p>Draw a symbol. </p>
1465
<p>The default implementation calls the draw method of the object. Only PDF drawing overrides this to reuse a PDF XForm. </p>
1467
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#aa60e041c257776b8eaf53b8449c26936">ipe::PdfPainter</a>.</p>
1471
<a class="anchor" id="ab459e36cdfac1fb5ffe9be9a42021e8c"></a><!-- doxytag: member="ipe::Painter::doAddClipPath" ref="ab459e36cdfac1fb5ffe9be9a42021e8c" args="()" -->
1472
<div class="memitem">
1473
<div class="memproto">
1474
<table class="memname">
1476
<td class="memname">void Painter::doAddClipPath </td>
1478
<td class="paramname"></td>
1479
<td> ) </td>
1480
<td><code> [protected, virtual]</code></td>
1484
<div class="memdoc">
1486
<p>Add a clip path. </p>
1488
<p>Reimplemented in <a class="el" href="classipe_1_1_pdf_painter.html#adeb3aca4fc9e0518630486672cdcfe7c">ipe::PdfPainter</a>, <a class="el" href="classipe_1_1_ps_painter.html#a9d39ec65047a3488e5f2d06508275168">ipe::PsPainter</a>, <a class="el" href="classipe_1_1_b_box_painter.html#a4aaeb1cfa4e3fc722209c68d028ed986">ipe::BBoxPainter</a>, and <a class="el" href="classipe_1_1_cairo_painter.html#a9c42f5fa4f5e2f15dd21eb5866cb7c20">ipe::CairoPainter</a>.</p>
1492
<a class="anchor" id="a0f5ad54e3a28e816dcf968b1eb084441"></a><!-- doxytag: member="ipe::Painter::drawArcAsBezier" ref="a0f5ad54e3a28e816dcf968b1eb084441" args="(double alpha)" -->
1493
<div class="memitem">
1494
<div class="memproto">
1495
<table class="memname">
1497
<td class="memname">void Painter::drawArcAsBezier </td>
1499
<td class="paramtype">double </td>
1500
<td class="paramname"> <em>alpha</em></td>
1501
<td> ) </td>
1502
<td><code> [protected]</code></td>
1506
<div class="memdoc">
1508
<p>Draw an arc of the unit circle of length <em>alpha</em>. </p>
1509
<p>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 <a class="el" href="classipe_1_1_bezier.html" title="A cubic Bezier spline.">Bezier</a> curves.</p>
1510
<p>The approximation is based on the following: The unit circle arc from (1,0) to (cos a, sin a) be approximated by a <a class="el" href="classipe_1_1_bezier.html" title="A cubic Bezier spline.">Bezier</a> 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>
1511
<p>Ipe draws circles by drawing four <a class="el" href="classipe_1_1_bezier.html" title="A cubic Bezier spline.">Bezier</a> curves for the quadrants, and arcs by patching together quarter circle approximations with a piece computed from the formula above.</p>
1512
<p><em>alpha</em> is normalized to [0, 2 pi], and applied starting from the point (1,0).</p>
1513
<p>The function generates a sequence of <a class="el" href="classipe_1_1_bezier.html" title="A cubic Bezier spline.">Bezier</a> splines as calls to curveTo. It is assumed that the caller has already executed a moveTo to the beginning of the arc at (1,0).</p>
1514
<p>This function may modify the transformation matrix. </p>
1518
<hr/><h2>Member Data Documentation</h2>
1519
<a class="anchor" id="abe42f64cdacf796b4c8ca18730b19049"></a><!-- doxytag: member="ipe::Painter::iState" ref="abe42f64cdacf796b4c8ca18730b19049" args="" -->
1520
<div class="memitem">
1521
<div class="memproto">
1522
<table class="memname">
1524
<td class="memname">std::list<<a class="el" href="structipe_1_1_painter_1_1_state.html">State</a>> <a class="el" href="classipe_1_1_painter.html#abe42f64cdacf796b4c8ca18730b19049">ipe::Painter::iState</a><code> [protected]</code></td>
1528
<div class="memdoc">
1532
<a class="anchor" id="afce5aae8b3f3e869d8a64d6b3a62da52"></a><!-- doxytag: member="ipe::Painter::iMatrix" ref="afce5aae8b3f3e869d8a64d6b3a62da52" args="" -->
1533
<div class="memitem">
1534
<div class="memproto">
1535
<table class="memname">
1537
<td class="memname">std::list<<a class="el" href="classipe_1_1_matrix.html">Matrix</a>> <a class="el" href="classipe_1_1_painter.html#afce5aae8b3f3e869d8a64d6b3a62da52">ipe::Painter::iMatrix</a><code> [protected]</code></td>
1541
<div class="memdoc">
1545
<a class="anchor" id="a4a93819851e0039d8667af22ba92637b"></a><!-- doxytag: member="ipe::Painter::iCascade" ref="a4a93819851e0039d8667af22ba92637b" args="" -->
1546
<div class="memitem">
1547
<div class="memproto">
1548
<table class="memname">
1550
<td class="memname">const <a class="el" href="classipe_1_1_cascade.html">Cascade</a>* <a class="el" href="classipe_1_1_painter.html#a4a93819851e0039d8667af22ba92637b">ipe::Painter::iCascade</a><code> [protected]</code></td>
1554
<div class="memdoc">
1558
<a class="anchor" id="ab7ebba6490ae40111eb98bc075f463b8"></a><!-- doxytag: member="ipe::Painter::iInPath" ref="ab7ebba6490ae40111eb98bc075f463b8" args="" -->
1559
<div class="memitem">
1560
<div class="memproto">
1561
<table class="memname">
1563
<td class="memname">int <a class="el" href="classipe_1_1_painter.html#ab7ebba6490ae40111eb98bc075f463b8">ipe::Painter::iInPath</a><code> [protected]</code></td>
1567
<div class="memdoc">
1571
<hr/>The documentation for this class was generated from the following files:<ul>
1572
<li>ipepainter.h</li>
1573
<li>ipepainter.cpp</li>