~ubuntu-branches/ubuntu/intrepid/graphicsmagick/intrepid

« back to all changes in this revision

Viewing changes to www/Magick++/Drawable.html

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2006-05-06 16:28:08 UTC
  • Revision ID: james.westby@ubuntu.com-20060506162808-vt2ni3r5nytcszms
Tags: upstream-1.1.7
ImportĀ upstreamĀ versionĀ 1.1.7

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
 
2
<HTML>
 
3
<HEAD>
 
4
        <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=ibm437">
 
5
        <TITLE>Magick::Drawable Class</TITLE>
 
6
        <META NAME="GENERATOR" CONTENT="StarOffice 6.0  (Solaris Sparc)">
 
7
        <META NAME="AUTHOR" CONTENT="Bob Friesenhahn">
 
8
        <META NAME="CREATED" CONTENT="20020805;15043598">
 
9
        <META NAME="CHANGEDBY" CONTENT="Bob Friesenhahn">
 
10
        <META NAME="CHANGED" CONTENT="20021124;11445600">
 
11
        <META NAME="DESCRIPTION" CONTENT="Documentation for Magick::Drawable class">
 
12
        <STYLE>
 
13
        <!--
 
14
                TD P { color: #000000 }
 
15
                TD P.western { font-size: 11pt }
 
16
                H1 { color: #000000 }
 
17
                P { color: #000000 }
 
18
                H2 { color: #000000 }
 
19
                H3 { color: #000000 }
 
20
                TH P { color: #000000 }
 
21
                TH P.western { font-size: 11pt }
 
22
                A:link { color: #0000ee }
 
23
                A:visited { color: #551a8b }
 
24
        -->
 
25
        </STYLE>
 
26
</HEAD>
 
27
<BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BGCOLOR="#ffffff">
 
28
<H1 ALIGN=CENTER>Magick::Drawable</H1>
 
29
<P>Drawable provides a convenient interface for preparing vector,
 
30
image, or text arguments for the Image::draw() method. Each instance
 
31
of a Drawable sub-class represents a single drawable object. Drawable
 
32
objects may be drawn &quot;one-by-one&quot; via multiple invocations
 
33
of the Image <A HREF="Image.html#draw">draw</A>() method, or may be
 
34
drawn &quot;all-at-once&quot; by passing a list of Drawable objects
 
35
to the Image <A HREF="Image.html#draw">draw</A>() method. The
 
36
one-by-one approach is convenient for simple drawings, while the
 
37
list-based approach is appropriate for drawings which require more
 
38
sophistication. 
 
39
</P>
 
40
<P>The following is an example using the Drawable subclasses with a
 
41
one-by-one approach to draw the following figure: 
 
42
</P>
 
43
<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="Drawable_example_1.png" NAME="Graphic1" ALIGN=BOTTOM WIDTH=300 HEIGHT=200 BORDER=3></FONT></FONT>
 
44
</P>
 
45
<P><TT><FONT COLOR="#000066">#include &lt;string&gt;</FONT></TT>
 
46
<BR><TT><FONT COLOR="#000066">#include &lt;iostream&gt;</FONT></TT>
 
47
<BR><TT><FONT COLOR="#000066">#include &lt;Magick++.h&gt;</FONT></TT>
 
48
</P>
 
49
<P><TT><FONT COLOR="#000066">using namespace std;</FONT></TT> <BR><TT><FONT COLOR="#000066">using
 
50
namespace Magick;</FONT></TT> 
 
51
</P>
 
52
<P><TT><FONT COLOR="#000066">int main(int /*argc*/,char **/*argv*/)</FONT></TT>
 
53
<BR><TT><FONT COLOR="#000066">{</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;
 
54
try {</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; //
 
55
Create base image (white image of 300 by 200 pixels)</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
56
Image image( Geometry(300,200), Color(&quot;white&quot;) );</FONT></TT>
 
57
</P>
 
58
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Set draw options</FONT></TT>
 
59
<BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
60
image.strokeColor(&quot;red&quot;); // Outline color</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
61
image.fillColor(&quot;green&quot;); // Fill color</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
62
image.strokeWidth(5);</FONT></TT> 
 
63
</P>
 
64
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Draw a circle</FONT></TT>
 
65
<BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; image.draw(
 
66
DrawableCircle(100,100, 50,100) );</FONT></TT> 
 
67
</P>
 
68
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Draw a rectangle</FONT></TT>
 
69
<BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; image.draw(
 
70
DrawableRectangle(200,200, 270,170) );</FONT></TT> 
 
71
</P>
 
72
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Display the result</FONT></TT>
 
73
<BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; image.display( );</FONT></TT>
 
74
<BR><TT><FONT COLOR="#000066">&nbsp; }</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;
 
75
catch( exception &amp;error_ )</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
76
{</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
77
cout &lt;&lt; &quot;Caught exception: &quot; &lt;&lt; error_.what()
 
78
&lt;&lt; endl;</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
79
return 1;</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
80
}</FONT></TT> 
 
81
</P>
 
82
<P><TT><FONT COLOR="#000066">&nbsp; return 0;</FONT></TT> <BR><TT><FONT COLOR="#000066">}</FONT></TT>
 
83
</P>
 
84
<P><FONT COLOR="#000000">Since Drawable is an object it may be saved
 
85
in an array or a list for later (perhaps repeated) use. The following
 
86
example shows how to draw the same figure using the </FONT>list-based
 
87
approach 
 
88
</P>
 
89
<P><TT><FONT COLOR="#000066">#include &lt;string&gt;</FONT></TT>
 
90
<BR><TT><FONT COLOR="#000066">#include &lt;iostream&gt;</FONT></TT>
 
91
<BR><TT><FONT COLOR="#000066">#include &lt;list&gt;</FONT></TT>
 
92
<BR><TT><FONT COLOR="#000066">#include &lt;Magick++.h&gt;</FONT></TT>
 
93
</P>
 
94
<P><TT><FONT COLOR="#000066">using namespace std;</FONT></TT> <BR><TT><FONT COLOR="#000066">using
 
95
namespace Magick;</FONT></TT> 
 
96
</P>
 
97
<P><TT><FONT COLOR="#000066">int main(int /*argc*/,char **/*argv*/)</FONT></TT>
 
98
<BR><TT><FONT COLOR="#000066">{</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;
 
99
try {</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; //
 
100
Create base image (white image of 300 by 200 pixels)</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
101
Image image( Geometry(300,200), Color(&quot;white&quot;) );</FONT></TT>
 
102
</P>
 
103
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Construct drawing
 
104
list</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
105
std::list&lt;Magick::Drawable&gt; drawList;</FONT></TT> 
 
106
</P>
 
107
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Add some drawing
 
108
options to drawing list</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
109
drawList.push_back(DrawableStrokeColor(&quot;red&quot;)); // Outline
 
110
color</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
111
drawList.push_back(DrawableStrokeWidth(5)); // Stroke width</FONT></TT>
 
112
<BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
113
drawList.push_back(DrawableFillColor(&quot;green&quot;)); // Fill
 
114
color</FONT></TT> 
 
115
</P>
 
116
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Add a Circle to
 
117
drawing list</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
118
drawList.push_back(DrawableCircle(100,100, 50,100));</FONT></TT> 
 
119
</P>
 
120
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Add a Rectangle to
 
121
drawing list</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
122
drawList.push_back(DrawableRectangle(200,100, 270,170));</FONT></TT> 
 
123
</P>
 
124
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Draw everything
 
125
using completed drawing list</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
126
image.draw(drawList);</FONT></TT> 
 
127
</P>
 
128
<P><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; // Display the result</FONT></TT>
 
129
<BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp; image.display( );</FONT></TT>
 
130
<BR><TT><FONT COLOR="#000066">&nbsp; }</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;
 
131
catch( exception &amp;error_ )</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
132
{</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
133
cout &lt;&lt; &quot;Caught exception: &quot; &lt;&lt; error_.what()
 
134
&lt;&lt; endl;</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
135
return 1;</FONT></TT> <BR><TT><FONT COLOR="#000066">&nbsp;&nbsp;&nbsp;
 
136
}</FONT></TT> 
 
137
</P>
 
138
<P><TT><FONT COLOR="#000066">&nbsp; return 0;</FONT></TT> <BR><TT><FONT COLOR="#000066">}</FONT></TT>
 
139
</P>
 
140
<P STYLE="margin-bottom: 0in"><FONT COLOR="#000000">Drawable depends
 
141
on the simple Coordinate structure which represents a pair of x,y
 
142
coodinates. The methods provided by the Coordinate structure are
 
143
shown in the following table:</FONT> 
 
144
</P>
 
145
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Coordinate Structure
 
146
Methods</B></P>
 
147
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2>
 
148
        <TR>
 
149
                <TH>
 
150
                        <P CLASS="western">Method/Member</P>
 
151
                </TH>
 
152
                <TH>
 
153
                        <P CLASS="western">Signature</P>
 
154
                </TH>
 
155
                <TH>
 
156
                        <P CLASS="western">Description</P>
 
157
                </TH>
 
158
        </TR>
 
159
        <TR>
 
160
                <TD ROWSPAN=2>
 
161
                        <P CLASS="western" ALIGN=CENTER>Coordinate</P>
 
162
                </TD>
 
163
                <TD>
 
164
                        <P CLASS="western">void</P>
 
165
                </TD>
 
166
                <TD>
 
167
                        <P CLASS="western">Default Constructor</P>
 
168
                </TD>
 
169
        </TR>
 
170
        <TR>
 
171
                <TD>
 
172
                        <P CLASS="western">double x_, double y_</P>
 
173
                </TD>
 
174
                <TD>
 
175
                        <P CLASS="western">Constructor, setting <I>first</I> &amp; <I>second</I></P>
 
176
                </TD>
 
177
        </TR>
 
178
        <TR>
 
179
                <TD>
 
180
                        <P CLASS="western" ALIGN=CENTER>x</P>
 
181
                </TD>
 
182
                <TD>
 
183
                        <P CLASS="western">double x_</P>
 
184
                </TD>
 
185
                <TD>
 
186
                        <P CLASS="western">x coordinate member</P>
 
187
                </TD>
 
188
        </TR>
 
189
        <TR>
 
190
                <TD>
 
191
                        <P CLASS="western" ALIGN=CENTER>y</P>
 
192
                </TD>
 
193
                <TD>
 
194
                        <P CLASS="western">double y_</P>
 
195
                </TD>
 
196
                <TD>
 
197
                        <P CLASS="western">y coordinate member</P>
 
198
                </TD>
 
199
        </TR>
 
200
</TABLE>
 
201
<P STYLE="margin-bottom: 0in"><FONT COLOR="#000000">The Drawable
 
202
classes are shown in the following table. Only constructor signatures
 
203
are documented here. Each Drawable class also provides methods by
 
204
which each individual parameter may be adjusted.</FONT> 
 
205
</P>
 
206
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Drawable Classes</B></P>
 
207
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
 
208
        <COL WIDTH=68*>
 
209
        <COL WIDTH=55*>
 
210
        <COL WIDTH=133*>
 
211
        <TR>
 
212
                <TH WIDTH=27%>
 
213
                        <P CLASS="western">Sub-Class</P>
 
214
                </TH>
 
215
                <TH WIDTH=21%>
 
216
                        <P CLASS="western">Constructor Signature</P>
 
217
                </TH>
 
218
                <TH WIDTH=52%>
 
219
                        <P CLASS="western">Description</P>
 
220
                </TH>
 
221
        </TR>
 
222
        <TR>
 
223
                <TD ROWSPAN=2 WIDTH=27%>
 
224
                        <P CLASS="western" ALIGN=CENTER>DrawableAffine</P>
 
225
                </TD>
 
226
                <TD WIDTH=21%>
 
227
                        <P CLASS="western">double sx_, double sy_, double rx_, double ry_,
 
228
                        double tx_, double ty_</P>
 
229
                </TD>
 
230
                <TD WIDTH=52%>
 
231
                        <P CLASS="western">Specify a transformation matrix to adjust
 
232
                        scaling, rotation, and translation (coordinate transformation) for
 
233
                        subsequently drawn objects in the same or decendent drawing
 
234
                        context.&nbsp; The sx_ &amp; sy_ parameters represent the x &amp;
 
235
                        y scale factors, the rx_ &amp; ry_ parameters represent the x &amp;
 
236
                        y rotation, and the tx_ &amp; ty_ parameters represent the x &amp;
 
237
                        y translation.</P>
 
238
                </TD>
 
239
        </TR>
 
240
        <TR>
 
241
                <TD WIDTH=21%>
 
242
                        <P CLASS="western">void</P>
 
243
                </TD>
 
244
                <TD WIDTH=52%>
 
245
                        <P CLASS="western">Specify a transformation matrix to adjust
 
246
                        scaling, rotation, and translation (coordinate transformation) for
 
247
                        subsequently drawn objects in the same or decendent drawing
 
248
                        context. Initialized to unity (no effect) affine values. Use class
 
249
                        methods (not currently documented) to adjust individual parameters
 
250
                        from their unity values.</P>
 
251
                </TD>
 
252
        </TR>
 
253
        <TR>
 
254
                <TD WIDTH=27%>
 
255
                        <P CLASS="western" ALIGN=CENTER>DrawableAngle</P>
 
256
                </TD>
 
257
                <TD WIDTH=21%>
 
258
                        <P CLASS="western">double angle_</P>
 
259
                </TD>
 
260
                <TD WIDTH=52%>
 
261
                        <P CLASS="western">Set drawing angle</P>
 
262
                </TD>
 
263
        </TR>
 
264
        <TR>
 
265
                <TD WIDTH=27%>
 
266
                        <P CLASS="western" ALIGN=CENTER>DrawableArc</P>
 
267
                </TD>
 
268
                <TD WIDTH=21%>
 
269
                        <P CLASS="western">double startX_, double startY_, double endX_,
 
270
                        double endY_, double startDegrees, double endDegrees_</P>
 
271
                </TD>
 
272
                <TD WIDTH=52%>
 
273
                        <P CLASS="western">Draw an arc using the <I>stroke</I> color and
 
274
                        based on the circle starting at coordinates <I>startX_</I>,<I>startY_,</I>
 
275
                        and ending with coordinates <I>endX_,</I>endY_, and bounded by the
 
276
                        rotational arc <I>startDegrees_,endDegrees_</I></P>
 
277
                </TD>
 
278
        </TR>
 
279
        <TR>
 
280
                <TD WIDTH=27%>
 
281
                        <P CLASS="western" ALIGN=CENTER>DrawableBezier</P>
 
282
                </TD>
 
283
                <TD WIDTH=21%>
 
284
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
285
                        &amp;coordinates_</P>
 
286
                </TD>
 
287
                <TD WIDTH=52%>
 
288
                        <P CLASS="western">Draw a bezier curve using the <I>stroke</I>
 
289
                        color and based on the coordinates specified by the <I>coordinates_
 
290
                        </I>list.</P>
 
291
                </TD>
 
292
        </TR>
 
293
        <TR>
 
294
                <TD WIDTH=27%>
 
295
                        <P CLASS="western" ALIGN=CENTER>DrawableClipPath</P>
 
296
                </TD>
 
297
                <TD WIDTH=21%>
 
298
                        <P CLASS="western">const std::string &amp;id_</P>
 
299
                </TD>
 
300
                <TD WIDTH=52%>
 
301
                        <P CLASS="western">Select a drawing clip path matching <EM>id_.</EM></P>
 
302
                </TD>
 
303
        </TR>
 
304
        <TR>
 
305
                <TD WIDTH=27%>
 
306
                        <P CLASS="western" ALIGN=CENTER>DrawableCircle</P>
 
307
                </TD>
 
308
                <TD WIDTH=21%>
 
309
                        <P CLASS="western">double originX_, double originY_, double
 
310
                        perimX_, double perimY_</P>
 
311
                </TD>
 
312
                <TD WIDTH=52%>
 
313
                        <P CLASS="western">Draw a circle using the <I>stroke</I> color and
 
314
                        thickness using specified origin and perimeter coordinates. If a
 
315
                        <I>fill</I> color is specified, then the object is filled.</P>
 
316
                </TD>
 
317
        </TR>
 
318
        <TR>
 
319
                <TD WIDTH=27%>
 
320
                        <P CLASS="western" ALIGN=CENTER>DrawableColor</P>
 
321
                </TD>
 
322
                <TD WIDTH=21%>
 
323
                        <P CLASS="western"><FONT SIZE=2>double x_, double y_, <A HREF="Enumerations.html#PaintMethod">PaintMethod</A>
 
324
                        paintMethod_</FONT></P>
 
325
                </TD>
 
326
                <TD WIDTH=52%>
 
327
                        <P CLASS="western">Color image according to paintMethod. The point
 
328
                        method recolors the target pixel.&nbsp; The replace method
 
329
                        recolors any pixel that matches the color of the target pixel.&nbsp;
 
330
                        Floodfill recolors any pixel that matches the color of the target
 
331
                        pixel and is a neighbor,&nbsp; whereas filltoborder recolors any
 
332
                        neighbor pixel that is not the border color. Finally, reset
 
333
                        recolors all pixels.</P>
 
334
                </TD>
 
335
        </TR>
 
336
        <TR>
 
337
                <TD ROWSPAN=6 WIDTH=27%>
 
338
                        <P CLASS="western" ALIGN=CENTER>DrawableCompositeImage</P>
 
339
                </TD>
 
340
                <TD WIDTH=21%>
 
341
                        <P CLASS="western">double x_, double y_, const std::string
 
342
                        &amp;filename_</P>
 
343
                </TD>
 
344
                <TD ROWSPAN=2 WIDTH=52%>
 
345
                        <P CLASS="western">Composite current image with contents of
 
346
                        specified image, at specified coordinates. If the <I>matte</I>
 
347
                        attribute is set to <I>true</I>, then the image composition will
 
348
                        consider an alpha channel, or transparency, present in the image
 
349
                        file so that non-opaque portions allow part (or all) of the
 
350
                        composite image to show through.</P>
 
351
                </TD>
 
352
        </TR>
 
353
        <TR>
 
354
                <TD WIDTH=21%>
 
355
                        <P CLASS="western">double x_, double y_, const Image &amp;image_</P>
 
356
                </TD>
 
357
        </TR>
 
358
        <TR>
 
359
                <TD WIDTH=21%>
 
360
                        <P CLASS="western">double x_, double y_, double width_, double
 
361
                        height_, const std::string &amp;filename_</P>
 
362
                </TD>
 
363
                <TD ROWSPAN=2 WIDTH=52%>
 
364
                        <P CLASS="western">Composite current image with contents of
 
365
                        specified image, rendered with specified width and height, at
 
366
                        specified coordinates. If the <I>matte</I> attribute is set to
 
367
                        <I>true</I>, then the image composition will consider an alpha
 
368
                        channel, or transparency, present in the image file so that
 
369
                        non-opaque portions allow part (or all) of the composite image to
 
370
                        show through. If the specified <I>width</I> or <I>height</I> is
 
371
                        zero, then the image is composited at its natural size, without
 
372
                        enlargement or reduction.</P>
 
373
                </TD>
 
374
        </TR>
 
375
        <TR>
 
376
                <TD WIDTH=21%>
 
377
                        <P CLASS="western">double x_, double y_, double width_, double
 
378
                        height_, const Image &amp;image_</P>
 
379
                </TD>
 
380
        </TR>
 
381
        <TR>
 
382
                <TD WIDTH=21%>
 
383
                        <P CLASS="western"><FONT SIZE=2>double x_, double y_, double
 
384
                        width_, double height_, const std::string &amp;filename_,
 
385
                        <A HREF="Enumerations.html#CompositeOperator">CompositeOperator</A>
 
386
                        composition_</FONT></P>
 
387
                </TD>
 
388
                <TD ROWSPAN=2 WIDTH=52%>
 
389
                        <P CLASS="western">Composite current image with contents of
 
390
                        specified image, rendered with specified width and height, using
 
391
                        specified composition algorithm, at specified coordinates. If the
 
392
                        <I>matte</I> attribute is set to <I>true</I>, then the image
 
393
                        composition will consider an alpha channel, or transparency,
 
394
                        present in the image file so that non-opaque portions allow part
 
395
                        (or all) of the composite image to show through. If the specified
 
396
                        <I>width</I> or <I>height</I> is zero, then the image is
 
397
                        composited at its natural size, without enlargement or reduction.</P>
 
398
                </TD>
 
399
        </TR>
 
400
        <TR>
 
401
                <TD WIDTH=21%>
 
402
                        <P CLASS="western"><FONT SIZE=2>double x_, double y_, double
 
403
                        width_, double height_, const Image &amp;image_, <A HREF="Enumerations.html#CompositeOperator">CompositeOperator</A>
 
404
                        composition_</FONT></P>
 
405
                </TD>
 
406
        </TR>
 
407
        <TR>
 
408
                <TD WIDTH=27%>
 
409
                        <P CLASS="western" ALIGN=CENTER>DrawableDashArray</P>
 
410
                </TD>
 
411
                <TD WIDTH=21%>
 
412
                        <P CLASS="western">const double* dasharray_</P>
 
413
                </TD>
 
414
                <TD WIDTH=52%>
 
415
                        <P CLASS="western">Specify the pattern of dashes and gaps used to
 
416
                        stroke paths. The strokeDashArray represents a zero-terminated
 
417
                        array of numbers that specify the lengths of alternating dashes
 
418
                        and gaps in pixels. If an odd number of values is provided, then
 
419
                        the list of values is repeated to yield an even number of values.&nbsp;
 
420
                        A typical strokeDashArray_ array might contain the members 5 3 2
 
421
                        0, where the zero value indicates the end of the pattern array.</P>
 
422
                </TD>
 
423
        </TR>
 
424
        <TR>
 
425
                <TD WIDTH=27%>
 
426
                        <P CLASS="western" ALIGN=CENTER>DrawableDashOffset</P>
 
427
                </TD>
 
428
                <TD WIDTH=21%>
 
429
                        <P CLASS="western">double offset_</P>
 
430
                </TD>
 
431
                <TD WIDTH=52%>
 
432
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Specify
 
433
                        the distance into the dash pattern to start the dash. See
 
434
                        documentation on SVG's </FONT><A HREF="http://www.w3.org/TR/SVG/painting.html#StrokeDashoffsetProperty"><FONT SIZE=2 STYLE="font-size: 11pt">stroke-dashoffset</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
435
                        property for usage details.</FONT></P>
 
436
                </TD>
 
437
        </TR>
 
438
        <TR>
 
439
                <TD WIDTH=27%>
 
440
                        <P CLASS="western" ALIGN=CENTER>DrawableEllipse</P>
 
441
                </TD>
 
442
                <TD WIDTH=21%>
 
443
                        <P CLASS="western">double originX_, double originY_, double
 
444
                        radiusX_, double radiusY_, double arcStart_, double arcEnd_</P>
 
445
                </TD>
 
446
                <TD WIDTH=52%>
 
447
                        <P CLASS="western">Draw an ellipse using the <I>stroke</I> color
 
448
                        and thickness, specified origin, x &amp; y radius, as well as
 
449
                        specified start and end of arc in degrees. If a <I>fill</I> color
 
450
                        is specified, then the object is filled.</P>
 
451
                </TD>
 
452
        </TR>
 
453
        <TR>
 
454
                <TD WIDTH=27%>
 
455
                        <P CLASS="western" ALIGN=CENTER>DrawableFillColor</P>
 
456
                </TD>
 
457
                <TD WIDTH=21%>
 
458
                        <P CLASS="western"><FONT SIZE=2>const <A HREF="Color.html">Color</A>
 
459
                        &amp;color_</FONT></P>
 
460
                </TD>
 
461
                <TD WIDTH=52%>
 
462
                        <P CLASS="western">Specify drawing object fill color.</P>
 
463
                </TD>
 
464
        </TR>
 
465
        <TR>
 
466
                <TD WIDTH=27%>
 
467
                        <P CLASS="western" ALIGN=CENTER>DrawableFillRule</P>
 
468
                </TD>
 
469
                <TD WIDTH=21%>
 
470
                        <P CLASS="western"><FONT SIZE=2><A HREF="Enumerations.html#FillRule">FillRule</A>
 
471
                        fillRule_</FONT></P>
 
472
                </TD>
 
473
                <TD WIDTH=52%>
 
474
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Specify
 
475
                        the algorithm which is to be used to determine what parts of the
 
476
                        canvas are included inside the shape. See documentation on SVG's
 
477
                        </FONT><A HREF="http://www.w3.org/TR/SVG/painting.html#FillRuleProperty"><FONT SIZE=2 STYLE="font-size: 11pt">fill-rule</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">&nbsp;
 
478
                        property for usage details.</FONT></P>
 
479
                </TD>
 
480
        </TR>
 
481
        <TR>
 
482
                <TD WIDTH=27%>
 
483
                        <P CLASS="western" ALIGN=CENTER>DrawableFillOpacity</P>
 
484
                </TD>
 
485
                <TD WIDTH=21%>
 
486
                        <P CLASS="western">double opacity_</P>
 
487
                </TD>
 
488
                <TD WIDTH=52%>
 
489
                        <P CLASS="western">Specify opacity to use when drawing using fill
 
490
                        color.</P>
 
491
                </TD>
 
492
        </TR>
 
493
        <TR>
 
494
                <TD ROWSPAN=2 WIDTH=27%>
 
495
                        <P CLASS="western" ALIGN=CENTER>DrawableFont</P>
 
496
                </TD>
 
497
                <TD WIDTH=21%>
 
498
                        <P CLASS="western">const std::string &amp;font_</P>
 
499
                </TD>
 
500
                <TD WIDTH=52%>
 
501
                        <P CLASS="western">Specify font name to use when drawing text.</P>
 
502
                </TD>
 
503
        </TR>
 
504
        <TR>
 
505
                <TD WIDTH=21%>
 
506
                        <P CLASS="western"><FONT SIZE=2>const std::string &amp;family_,</FONT>
 
507
                        <BR><FONT SIZE=2><A HREF="Enumerations.html#StyleType">StyleType</A>
 
508
                        style_,</FONT> <BR><FONT SIZE=2>unsigned long weight_,</FONT>
 
509
                        <BR><FONT SIZE=2><A HREF="Enumerations.html#StretchType">StretchType</A>
 
510
                        stretch_</FONT></P>
 
511
                </TD>
 
512
                <TD WIDTH=52%>
 
513
                        <P CLASS="western">Specify font family, style, weight (one of the
 
514
                        set { 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 } with
 
515
                        400 being the normal size), and stretch to be used to select the
 
516
                        font used when drawing text. Wildcard matches may be applied to
 
517
                        style via the AnyStyle enumeration, applied to weight if weight is
 
518
                        zero, and applied to stretch via the AnyStretch enumeration.</P>
 
519
                </TD>
 
520
        </TR>
 
521
        <TR>
 
522
                <TD WIDTH=27%>
 
523
                        <P CLASS="western" ALIGN=CENTER>DrawableGravity</P>
 
524
                </TD>
 
525
                <TD WIDTH=21%>
 
526
                        <P CLASS="western"><FONT SIZE=2><A HREF="Enumerations.html#GravityType">GravityType</A>
 
527
                        gravity_</FONT></P>
 
528
                </TD>
 
529
                <TD WIDTH=52%>
 
530
                        <P CLASS="western">Specify text positioning gravity.</P>
 
531
                </TD>
 
532
        </TR>
 
533
        <TR>
 
534
                <TD WIDTH=27%>
 
535
                        <P CLASS="western" ALIGN=CENTER>DrawableLine</P>
 
536
                </TD>
 
537
                <TD WIDTH=21%>
 
538
                        <P CLASS="western">double startX_, double startY_, double endX_,
 
539
                        double endY_</P>
 
540
                </TD>
 
541
                <TD WIDTH=52%>
 
542
                        <P CLASS="western">Draw a line using <I>stroke</I> color and
 
543
                        thickness using starting and ending coordinates</P>
 
544
                </TD>
 
545
        </TR>
 
546
        <TR>
 
547
                <TD WIDTH=27%>
 
548
                        <P CLASS="western" ALIGN=CENTER>DrawableMatte</P>
 
549
                </TD>
 
550
                <TD WIDTH=21%>
 
551
                        <P CLASS="western"><FONT SIZE=2>double x_, double y_, <A HREF="Enumerations.html#PaintMethod">PaintMethod</A>
 
552
                        paintMethod_</FONT></P>
 
553
                </TD>
 
554
                <TD WIDTH=52%>
 
555
                        <P CLASS="western">Change the pixel matte value to transparent.
 
556
                        The point method changes the matte value of the target pixel.&nbsp;
 
557
                        The replace method changes the matte value of any pixel that
 
558
                        matches the color of the target pixel. Floodfill changes the matte
 
559
                        value of any pixel that matches the color of the target pixel and
 
560
                        is a neighbor, whereas filltoborder changes the matte value of any
 
561
                        neighbor pixel that is not the border color, Finally reset changes
 
562
                        the matte value of all pixels.</P>
 
563
                </TD>
 
564
        </TR>
 
565
        <TR>
 
566
                <TD WIDTH=27%>
 
567
                        <P CLASS="western" ALIGN=CENTER>DrawableMiterLimit</P>
 
568
                </TD>
 
569
                <TD WIDTH=21%>
 
570
                        <P CLASS="western">unsigned int miterLimit_</P>
 
571
                </TD>
 
572
                <TD WIDTH=52%>
 
573
                        <P CLASS="western">Specify miter limit. When two line segments
 
574
                        meet at a sharp angle and miter joins have been specified for
 
575
                        'lineJoin', it is possible for the miter to extend far beyond the
 
576
                        thickness of the line stroking the path. The miterLimit' imposes a
 
577
                        limit on the ratio of the miter length to the 'lineWidth'. The
 
578
                        default value of this parameter is 4.</P>
 
579
                </TD>
 
580
        </TR>
 
581
        <TR>
 
582
                <TD WIDTH=27%>
 
583
                        <P CLASS="western" ALIGN=CENTER>DrawablePath</P>
 
584
                </TD>
 
585
                <TD WIDTH=21%>
 
586
                        <P CLASS="western">const std::list&lt;Magick::VPath&gt; &amp;path_</P>
 
587
                </TD>
 
588
                <TD WIDTH=52%>
 
589
                        <P CLASS="western">Draw on image using vector path.</P>
 
590
                </TD>
 
591
        </TR>
 
592
        <TR>
 
593
                <TD WIDTH=27%>
 
594
                        <P CLASS="western" ALIGN=CENTER>DrawablePoint</P>
 
595
                </TD>
 
596
                <TD WIDTH=21%>
 
597
                        <P CLASS="western">double x_, double y_</P>
 
598
                </TD>
 
599
                <TD WIDTH=52%>
 
600
                        <P CLASS="western">Draw a point using <I>stroke</I> color and
 
601
                        thickness at coordinate</P>
 
602
                </TD>
 
603
        </TR>
 
604
        <TR>
 
605
                <TD WIDTH=27%>
 
606
                        <P CLASS="western" ALIGN=CENTER>DrawablePointSize</P>
 
607
                </TD>
 
608
                <TD WIDTH=21%>
 
609
                        <P CLASS="western">double pointSize_</P>
 
610
                </TD>
 
611
                <TD WIDTH=52%>
 
612
                        <P CLASS="western">Set font point size.</P>
 
613
                </TD>
 
614
        </TR>
 
615
        <TR>
 
616
                <TD WIDTH=27%>
 
617
                        <P CLASS="western" ALIGN=CENTER>DrawablePolygon</P>
 
618
                </TD>
 
619
                <TD WIDTH=21%>
 
620
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
621
                        &amp;coordinates_</P>
 
622
                </TD>
 
623
                <TD WIDTH=52%>
 
624
                        <P CLASS="western">Draw an arbitrary polygon using <I>stroke</I>
 
625
                        color and thickness consisting of three or more coordinates
 
626
                        contained in an STL list. If a <I>fill</I> color is specified,
 
627
                        then the object is filled.</P>
 
628
                </TD>
 
629
        </TR>
 
630
        <TR>
 
631
                <TD WIDTH=27%>
 
632
                        <P CLASS="western" ALIGN=CENTER>DrawablePolyline</P>
 
633
                </TD>
 
634
                <TD WIDTH=21%>
 
635
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
636
                        &amp;coordinates_</P>
 
637
                </TD>
 
638
                <TD WIDTH=52%>
 
639
                        <P CLASS="western">Draw an arbitrary polyline using <I>stroke</I>
 
640
                        color and thickness consisting of three or more coordinates
 
641
                        contained in an STL list. If a <I>fill</I> color is specified,
 
642
                        then the object is filled.</P>
 
643
                </TD>
 
644
        </TR>
 
645
        <TR>
 
646
                <TD WIDTH=27%>
 
647
                        <P CLASS="western" ALIGN=CENTER>DrawablePopClipPath</P>
 
648
                </TD>
 
649
                <TD WIDTH=21%>
 
650
                        <P CLASS="western">void</P>
 
651
                </TD>
 
652
                <TD WIDTH=52%>
 
653
                        <P CLASS="western">Pop (terminate) clip path definition started by
 
654
                        DrawablePushClipPath.</P>
 
655
                </TD>
 
656
        </TR>
 
657
        <TR>
 
658
                <TD WIDTH=27%>
 
659
                        <P CLASS="western" ALIGN=CENTER>DrawablePopGraphicContext</P>
 
660
                </TD>
 
661
                <TD WIDTH=21%>
 
662
                        <P CLASS="western">void</P>
 
663
                </TD>
 
664
                <TD WIDTH=52%>
 
665
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Pop
 
666
                        Graphic Context. Removing the current graphic context from the
 
667
                        graphic context stack restores the options to the values they had
 
668
                        prior to the preceding </FONT><A HREF="#DrawablePushGraphicContext"><I><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePushGraphicContext</FONT></I></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
669
                        operation.</FONT></P>
 
670
                </TD>
 
671
        </TR>
 
672
        <TR>
 
673
                <TD WIDTH=27%>
 
674
                        <P CLASS="western" ALIGN=CENTER>DrawablePushClipPath</P>
 
675
                </TD>
 
676
                <TD WIDTH=21%>
 
677
                        <P CLASS="western">const std::string &amp;id_</P>
 
678
                </TD>
 
679
                <TD WIDTH=52%>
 
680
                        <P CLASS="western">Push (create) clip path definition with id_.
 
681
                        Clip patch definition consists of subsequent drawing commands,
 
682
                        terminated by DrawablePopClipPath.</P>
 
683
                </TD>
 
684
        </TR>
 
685
        <TR>
 
686
                <TD WIDTH=27%>
 
687
                        <P CLASS="western" ALIGN=CENTER>DrawablePushGraphicContext</P>
 
688
                </TD>
 
689
                <TD WIDTH=21%>
 
690
                        <P CLASS="western">void</P>
 
691
                </TD>
 
692
                <TD WIDTH=52%>
 
693
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Push
 
694
                        Graphic Context. When a graphic context is pushed, options set
 
695
                        after the context is pushed (such as coordinate transformations,
 
696
                        color settings, etc.) are saved to a new graphic context. This
 
697
                        allows related options to be saved on a graphic context &quot;stack&quot;
 
698
                        in order to support heirarchical nesting of options. When
 
699
                        </FONT><A HREF="#DrawablePopGraphicContext"><I><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePopGraphicContext</FONT></I></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
700
                        is used to pop the current graphic context, the options in effect
 
701
                        during the last <I>DrawablePushGraphicContext</I> operation are
 
702
                        restored.</FONT></P>
 
703
                </TD>
 
704
        </TR>
 
705
        <TR>
 
706
                <TD WIDTH=27%>
 
707
                        <P CLASS="western" ALIGN=CENTER>DrawablePushPattern</P>
 
708
                </TD>
 
709
                <TD WIDTH=21%>
 
710
                        <P CLASS="western">std::string &amp;id_, long x_, long y_, long
 
711
                        width_, long height_</P>
 
712
                </TD>
 
713
                <TD WIDTH=52%>
 
714
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Start a
 
715
                        pattern definition with arbitrary pattern name specified by <I>id_</I>,
 
716
                        pattern offset specified by <I>x_</I> and <I>y_</I>, and pattern
 
717
                        size specified by <I>width_</I> and <I>height_</I>. The pattern is
 
718
                        defined within the coordinate system defined by the specified
 
719
                        offset and size. Arbitrary drawing objects (including
 
720
                        </FONT><A HREF="#DrawableCompositeImage"><FONT SIZE=2 STYLE="font-size: 11pt">DrawableCompositeImage</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">)
 
721
                        may be specified between </FONT><A HREF="#DrawablePushPattern"><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePushPattern</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
722
                        and </FONT><A HREF="#DrawablePopPattern"><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePopPattern</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
723
                        in order to draw the pattern. Normally the pair
 
724
                        </FONT><A HREF="#DrawablePushGraphicContext"><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePushGraphicContext</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
725
                        &amp; </FONT><A HREF="#DrawablePopGraphicContext"><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePopGraphicContext</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
726
                        are used to enclose a pattern definition. Pattern definitions are
 
727
                        terminated by a </FONT><A HREF="#DrawablePopPattern"><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePopPattern</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
728
                        object.</FONT></P>
 
729
                </TD>
 
730
        </TR>
 
731
        <TR>
 
732
                <TD WIDTH=27%>
 
733
                        <P CLASS="western" ALIGN=CENTER>DrawablePopPattern</P>
 
734
                </TD>
 
735
                <TD WIDTH=21%>
 
736
                        <P CLASS="western">void</P>
 
737
                </TD>
 
738
                <TD WIDTH=52%>
 
739
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Terminate
 
740
                        a pattern definition started via </FONT><A HREF="#DrawablePushPattern"><FONT SIZE=2 STYLE="font-size: 11pt">DrawablePushPattern</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">.</FONT></P>
 
741
                </TD>
 
742
        </TR>
 
743
        <TR>
 
744
                <TD WIDTH=27%>
 
745
                        <P CLASS="western" ALIGN=CENTER>DrawableRectangle</P>
 
746
                </TD>
 
747
                <TD WIDTH=21%>
 
748
                        <P CLASS="western">double upperLeftX_, double upperLeftY_, double
 
749
                        lowerRightX_, double lowerRightY</P>
 
750
                </TD>
 
751
                <TD WIDTH=52%>
 
752
                        <P CLASS="western">Draw a rectangle using <I>stroke</I> color and
 
753
                        thickness from upper-left coordinates to lower-right coordinates.
 
754
                        If a <I>fill</I> color is specified, then the object is filled.</P>
 
755
                </TD>
 
756
        </TR>
 
757
        <TR>
 
758
                <TD WIDTH=27%>
 
759
                        <P CLASS="western" ALIGN=CENTER>DrawableRotation</P>
 
760
                </TD>
 
761
                <TD WIDTH=21%>
 
762
                        <P CLASS="western">double angle_</P>
 
763
                </TD>
 
764
                <TD WIDTH=52%>
 
765
                        <P CLASS="western">Set rotation to use when drawing (coordinate
 
766
                        transformation).</P>
 
767
                </TD>
 
768
        </TR>
 
769
        <TR>
 
770
                <TD WIDTH=27%>
 
771
                        <P CLASS="western" ALIGN=CENTER>DrawableRoundRectangle</P>
 
772
                </TD>
 
773
                <TD WIDTH=21%>
 
774
                        <P CLASS="western">double centerX_, double centerY_, double
 
775
                        width_, double hight_, double cornerWidth_, double cornerHeight_</P>
 
776
                </TD>
 
777
                <TD WIDTH=52%>
 
778
                        <P CLASS="western">Draw a rounded rectangle using <I>stroke</I>
 
779
                        color and thickness, with specified center coordinate, specified
 
780
                        width and height, and specified corner width and height.&nbsp; If
 
781
                        a <I>fill</I> color is specified, then the object is filled.</P>
 
782
                </TD>
 
783
        </TR>
 
784
        <TR>
 
785
                <TD WIDTH=27%>
 
786
                        <P CLASS="western" ALIGN=CENTER>DrawableScaling</P>
 
787
                </TD>
 
788
                <TD WIDTH=21%>
 
789
                        <P CLASS="western">double x_, double y_</P>
 
790
                </TD>
 
791
                <TD WIDTH=52%>
 
792
                        <P CLASS="western">Apply scaling in x and y direction while
 
793
                        drawing objects (coordinate transformation).</P>
 
794
                </TD>
 
795
        </TR>
 
796
        <TR>
 
797
                <TD WIDTH=27%>
 
798
                        <P CLASS="western" ALIGN=CENTER>DrawableSkewX</P>
 
799
                </TD>
 
800
                <TD WIDTH=21%>
 
801
                        <P CLASS="western">double angle_</P>
 
802
                </TD>
 
803
                <TD WIDTH=52%>
 
804
                        <P CLASS="western">Apply Skew in X direction (coordinate
 
805
                        transformation)</P>
 
806
                </TD>
 
807
        </TR>
 
808
        <TR>
 
809
                <TD WIDTH=27%>
 
810
                        <P CLASS="western" ALIGN=CENTER>DrawableSkewY</P>
 
811
                </TD>
 
812
                <TD WIDTH=21%>
 
813
                        <P CLASS="western">double angle_</P>
 
814
                </TD>
 
815
                <TD WIDTH=52%>
 
816
                        <P CLASS="western">Apply Skew in Y direction</P>
 
817
                </TD>
 
818
        </TR>
 
819
        <TR>
 
820
                <TD WIDTH=27%>
 
821
                        <P CLASS="western" ALIGN=CENTER>DrawableStrokeAntialias</P>
 
822
                </TD>
 
823
                <TD WIDTH=21%>
 
824
                        <P CLASS="western">bool flag_</P>
 
825
                </TD>
 
826
                <TD WIDTH=52%>
 
827
                        <P CLASS="western">Antialias while drawing lines or object
 
828
                        outlines.</P>
 
829
                </TD>
 
830
        </TR>
 
831
        <TR>
 
832
                <TD WIDTH=27%>
 
833
                        <P CLASS="western" ALIGN=CENTER>DrawableStrokeColor</P>
 
834
                </TD>
 
835
                <TD WIDTH=21%>
 
836
                        <P CLASS="western"><FONT SIZE=2>const <A HREF="Color.html">Color</A>
 
837
                        &amp;color_</FONT></P>
 
838
                </TD>
 
839
                <TD WIDTH=52%>
 
840
                        <P CLASS="western">Set color to use when drawing lines or object
 
841
                        outlines.</P>
 
842
                </TD>
 
843
        </TR>
 
844
        <TR>
 
845
                <TD WIDTH=27%>
 
846
                        <P CLASS="western" ALIGN=CENTER>DrawableStrokeLineCap</P>
 
847
                </TD>
 
848
                <TD WIDTH=21%>
 
849
                        <P CLASS="western"><FONT SIZE=2><A HREF="Enumerations.html#LineCap">LineCap</A>
 
850
                        linecap_</FONT></P>
 
851
                </TD>
 
852
                <TD WIDTH=52%>
 
853
                        <P CLASS="western">Specify the shape to be used at the end of open
 
854
                        subpaths when they are stroked. Values of LineCap are
 
855
                        UndefinedCap, ButtCap, RoundCap, and SquareCap.</P>
 
856
                </TD>
 
857
        </TR>
 
858
        <TR>
 
859
                <TD WIDTH=27%>
 
860
                        <P CLASS="western" ALIGN=CENTER>DrawableStrokeLineJoin</P>
 
861
                </TD>
 
862
                <TD WIDTH=21%>
 
863
                        <P CLASS="western"><FONT SIZE=2><A HREF="Enumerations.html#LineJoin">LineJoin</A>
 
864
                        linejoin_</FONT></P>
 
865
                </TD>
 
866
                <TD WIDTH=52%>
 
867
                        <P CLASS="western">Specify the shape to be used at the corners of
 
868
                        paths (or other vector shapes) when they are stroked. Values of
 
869
                        LineJoin are UndefinedJoin, MiterJoin, RoundJoin, and BevelJoin.</P>
 
870
                </TD>
 
871
        </TR>
 
872
        <TR>
 
873
                <TD WIDTH=27%>
 
874
                        <P CLASS="western" ALIGN=CENTER>DrawableStrokeOpacity</P>
 
875
                </TD>
 
876
                <TD WIDTH=21%>
 
877
                        <P CLASS="western">double opacity_</P>
 
878
                </TD>
 
879
                <TD WIDTH=52%>
 
880
                        <P CLASS="western">Opacity to use when drawing lines or object
 
881
                        outlines.</P>
 
882
                </TD>
 
883
        </TR>
 
884
        <TR>
 
885
                <TD WIDTH=27%>
 
886
                        <P CLASS="western" ALIGN=CENTER>DrawableStrokeWidth</P>
 
887
                </TD>
 
888
                <TD WIDTH=21%>
 
889
                        <P CLASS="western">double width_</P>
 
890
                </TD>
 
891
                <TD WIDTH=52%>
 
892
                        <P CLASS="western">Set width to use when drawing lines or object
 
893
                        outlines.</P>
 
894
                </TD>
 
895
        </TR>
 
896
        <TR>
 
897
                <TD ROWSPAN=2 WIDTH=27%>
 
898
                        <P CLASS="western" ALIGN=CENTER>DrawableText</P>
 
899
                </TD>
 
900
                <TD WIDTH=21%>
 
901
                        <P CLASS="western">double x_, double y_, std::string text_</P>
 
902
                </TD>
 
903
                <TD WIDTH=52%>
 
904
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Annotate
 
905
                        image with text using <I>stroke</I> color, font, font pointsize,
 
906
                        and <I>box</I> color (text background color), at specified
 
907
                        coordinates. If text contains </FONT><A HREF="FormatCharacters.html"><FONT SIZE=2 STYLE="font-size: 11pt">special
 
908
                        format characters</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
909
                        the image filename, type, width, height, or other image attributes
 
910
                        may be incorporated in the text (see label()).</FONT></P>
 
911
                </TD>
 
912
        </TR>
 
913
        <TR>
 
914
                <TD WIDTH=21%>
 
915
                        <P CLASS="western">const double x_, const double y_, const
 
916
                        std::string &amp;text_, const std::string &amp;encoding_</P>
 
917
                </TD>
 
918
                <TD WIDTH=52%>
 
919
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">Annotate
 
920
                        image with text represented with text encoding, using current
 
921
                        <I>stroke</I> color, font, font pointsize, and <I>box</I> color
 
922
                        (text background color), at specified coordinates. If text
 
923
                        contains </FONT><A HREF="FormatCharacters.html"><FONT SIZE=2 STYLE="font-size: 11pt">special
 
924
                        format characters</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
925
                        the image filename, type, width, height, or other image attributes
 
926
                        may be incorporated in the text (see label()).</FONT></P>
 
927
                        <P CLASS="western"><FONT SIZE=2 STYLE="font-size: 11pt">The text
 
928
                        encoding specifies the code set to use for text annotations. The
 
929
                        only character encoding which may be specified at this time is
 
930
                        &quot;<FONT FACE="Courier, monospace">UTF-8</FONT>&quot; for
 
931
                        representing </FONT><A HREF="http://www.unicode.org/"><FONT SIZE=2 STYLE="font-size: 11pt">Unicode</FONT></A><FONT SIZE=2 STYLE="font-size: 11pt">
 
932
                        as a sequence of bytes. Specify an empty string to set text
 
933
                        encoding to the system's default. Successful text annotation using
 
934
                        Unicode may require fonts designed to support Unicode.</FONT></P>
 
935
                </TD>
 
936
        </TR>
 
937
        <TR>
 
938
                <TD WIDTH=27%>
 
939
                        <P CLASS="western" ALIGN=CENTER>DrawableTextAntialias</P>
 
940
                </TD>
 
941
                <TD WIDTH=21%>
 
942
                        <P CLASS="western">bool flag_</P>
 
943
                </TD>
 
944
                <TD WIDTH=52%>
 
945
                        <P CLASS="western">Antialias while drawing text (default true).
 
946
                        The main reason to disable text antialiasing is to avoid adding
 
947
                        new colors to the image.</P>
 
948
                </TD>
 
949
        </TR>
 
950
        <TR>
 
951
                <TD WIDTH=27%>
 
952
                        <P CLASS="western" ALIGN=CENTER><A NAME="DrawableTextDecoration"></A>
 
953
                        DrawableTextDecoration</P>
 
954
                </TD>
 
955
                <TD WIDTH=21%>
 
956
                        <P CLASS="western"><FONT SIZE=2><A HREF="Enumerations.html#DecorationType">DecorationType</A>
 
957
                        decoration_</FONT></P>
 
958
                </TD>
 
959
                <TD WIDTH=52%>
 
960
                        <P CLASS="western">Specify decoration (e.g. UnderlineDecoration)
 
961
                        to apply to text.</P>
 
962
                </TD>
 
963
        </TR>
 
964
        <TR>
 
965
                <TD WIDTH=27%>
 
966
                        <P CLASS="western" ALIGN=CENTER>DrawableTextUnderColor</P>
 
967
                </TD>
 
968
                <TD WIDTH=21%>
 
969
                        <P CLASS="western">const Color &amp;color_</P>
 
970
                </TD>
 
971
                <TD WIDTH=52%>
 
972
                        <P CLASS="western">Draw a box under rendered text using the
 
973
                        specified color.</P>
 
974
                </TD>
 
975
        </TR>
 
976
        <TR>
 
977
                <TD WIDTH=27%>
 
978
                        <P CLASS="western" ALIGN=CENTER>DrawableTranslation</P>
 
979
                </TD>
 
980
                <TD WIDTH=21%>
 
981
                        <P CLASS="western">double x_, double y_</P>
 
982
                </TD>
 
983
                <TD WIDTH=52%>
 
984
                        <P CLASS="western">Apply coordinate translation (set new
 
985
                        coordinate origin).</P>
 
986
                </TD>
 
987
        </TR>
 
988
        <TR>
 
989
                <TD WIDTH=27%>
 
990
                        <P CLASS="western" ALIGN=CENTER>DrawableViewbox</P>
 
991
                </TD>
 
992
                <TD WIDTH=21%>
 
993
                        <P CLASS="western">unsigned long x1_, unsigned long y1_, unsigned
 
994
                        long x2_, unsigned long y2_</P>
 
995
                </TD>
 
996
                <TD WIDTH=52%>
 
997
                        <P CLASS="western">Dimensions of the output viewbox. If the image
 
998
                        is to be written to a vector format (e.g. MVG or SVG), then a
 
999
                        DrawablePushGraphicContext() object should be pushed to the head
 
1000
                        of the list, followed by a DrawableViewbox() statement to
 
1001
                        establish the output canvas size. A matching
 
1002
                        DrawablePopGraphicContext() object should be pushed to the tail of
 
1003
                        the list.</P>
 
1004
                </TD>
 
1005
        </TR>
 
1006
</TABLE>
 
1007
<H2 ALIGN=CENTER>Vector Path Classes</H2>
 
1008
<P>The vector paths supported by Magick++ are based on those
 
1009
supported by the <A HREF="http://www.w3.org/TR/SVG/paths.html">SVG
 
1010
XML specification</A>. Vector paths are not directly drawable, they
 
1011
must first be supplied as a constructor argument to the <A HREF="#DrawablePath">DrawablePath</A>
 
1012
class in order to create a drawable object. The <A HREF="#DrawablePath">DrawablePath</A>
 
1013
class effectively creates a drawable compound component which may be
 
1014
replayed as desired. If the drawable compound component consists only
 
1015
of vector path objects using relative coordinates then the object may
 
1016
be positioned on the image by preceding it with a <I>DrawablePath</I>
 
1017
which sets the current drawing coordinate. Alternatively coordinate
 
1018
transforms may be used to <A HREF="#DrawableTranslation">translate
 
1019
the origin</A> in order to position the object, <A HREF="#DrawableRotation">rotate</A>
 
1020
it, <A HREF="#DrawableSkewX">skew</A> it, or <A HREF="#DrawableScaling">scale</A>
 
1021
it. 
 
1022
</P>
 
1023
<H3>The &quot;moveto&quot; commands</H3>
 
1024
<P STYLE="margin-bottom: 0in">The &quot;moveto&quot; commands
 
1025
establish a new current point. The effect is as if the &quot;pen&quot;
 
1026
were lifted and moved to a new location. A path data segment must
 
1027
begin with either one of the &quot;moveto&quot; commands or one of
 
1028
the &quot;arc&quot; commands. Subsequent &quot;moveto&quot; commands
 
1029
(i.e., when the &quot;moveto&quot; is not the first command)
 
1030
represent the start of a new subpath: 
 
1031
</P>
 
1032
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Moveto Classes</B></P>
 
1033
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
 
1034
        <COL WIDTH=37*>
 
1035
        <COL WIDTH=43*>
 
1036
        <COL WIDTH=177*>
 
1037
        <TR>
 
1038
                <TH WIDTH=14%>
 
1039
                        <P CLASS="western">Sub-Class</P>
 
1040
                </TH>
 
1041
                <TH WIDTH=17%>
 
1042
                        <P CLASS="western">Constructor Signature</P>
 
1043
                </TH>
 
1044
                <TH WIDTH=69%>
 
1045
                        <P CLASS="western">Description</P>
 
1046
                </TH>
 
1047
        </TR>
 
1048
        <TR>
 
1049
                <TD ROWSPAN=2 WIDTH=14%>
 
1050
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathMovetoAbs"></A>PathMovetoAbs</P>
 
1051
                </TD>
 
1052
                <TD WIDTH=17%>
 
1053
                        <P CLASS="western">const Magick::Coordinate &amp;coordinate_</P>
 
1054
                </TD>
 
1055
                <TD ROWSPAN=4 WIDTH=69%>
 
1056
                        <P CLASS="western">Start a new sub-path at the given coordinate.
 
1057
                        <I>PathMovetoAbs</I> indicates that absolute coordinates will
 
1058
                        follow; <I>PathMovetoRel</I> indicates that relative coordinates
 
1059
                        will follow. If a relative moveto appears as the first element of
 
1060
                        the path, then it is treated as a pair of absolute coordinates. If
 
1061
                        a moveto is followed by multiple pairs of coordinates, the
 
1062
                        subsequent pairs are treated as implicit lineto commands.</P>
 
1063
                </TD>
 
1064
        </TR>
 
1065
        <TR>
 
1066
                <TD WIDTH=17%>
 
1067
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1068
                        &amp;coordinates_</P>
 
1069
                </TD>
 
1070
        </TR>
 
1071
        <TR>
 
1072
                <TD ROWSPAN=2 WIDTH=14%>
 
1073
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathMovetoRel"></A>PathMovetoRel</P>
 
1074
                </TD>
 
1075
                <TD WIDTH=17%>
 
1076
                        <P CLASS="western">const Magick::Coordinate &amp;coordinate_</P>
 
1077
                </TD>
 
1078
        </TR>
 
1079
        <TR>
 
1080
                <TD WIDTH=17%>
 
1081
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1082
                        &amp;coordinates_</P>
 
1083
                </TD>
 
1084
        </TR>
 
1085
</TABLE>
 
1086
<H3>The &quot;closepath&quot; command</H3>
 
1087
<P STYLE="margin-bottom: 0in">The &quot;closepath&quot; command
 
1088
causes an automatic straight line to be drawn from the current point
 
1089
to the initial point of the current subpath: 
 
1090
</P>
 
1091
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Closepath Classes</B></P>
 
1092
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
 
1093
        <COL WIDTH=37*>
 
1094
        <COL WIDTH=41*>
 
1095
        <COL WIDTH=178*>
 
1096
        <TR>
 
1097
                <TH WIDTH=14%>
 
1098
                        <P CLASS="western">Sub-Class</P>
 
1099
                </TH>
 
1100
                <TH WIDTH=16%>
 
1101
                        <P CLASS="western">Constructor Signature</P>
 
1102
                </TH>
 
1103
                <TH WIDTH=69%>
 
1104
                        <P CLASS="western">Description</P>
 
1105
                </TH>
 
1106
        </TR>
 
1107
        <TR>
 
1108
                <TD WIDTH=14%>
 
1109
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathClosePath"></A>PathClosePath</P>
 
1110
                </TD>
 
1111
                <TD WIDTH=16%>
 
1112
                        <P CLASS="western">void</P>
 
1113
                </TD>
 
1114
                <TD WIDTH=69%>
 
1115
                        <P CLASS="western">Close the current subpath by drawing a straight
 
1116
                        line from the current point to current subpath's most recent
 
1117
                        starting point (usually, the most recent moveto point).</P>
 
1118
                </TD>
 
1119
        </TR>
 
1120
</TABLE>
 
1121
<H3>The &quot;lineto&quot; commands</H3>
 
1122
<P STYLE="margin-bottom: 0in">The various &quot;lineto&quot; commands
 
1123
draw straight lines from the current point to a new point: 
 
1124
</P>
 
1125
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Lineto Classes</B></P>
 
1126
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
 
1127
        <COL WIDTH=56*>
 
1128
        <COL WIDTH=39*>
 
1129
        <COL WIDTH=161*>
 
1130
        <TR>
 
1131
                <TH WIDTH=22%>
 
1132
                        <P CLASS="western">Sub-Class</P>
 
1133
                </TH>
 
1134
                <TH WIDTH=15%>
 
1135
                        <P CLASS="western">Constructor Signature</P>
 
1136
                </TH>
 
1137
                <TH WIDTH=63%>
 
1138
                        <P CLASS="western">Description</P>
 
1139
                </TH>
 
1140
        </TR>
 
1141
        <TR>
 
1142
                <TD ROWSPAN=2 WIDTH=22%>
 
1143
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathLinetoAbs"></A>PathLinetoAbs</P>
 
1144
                </TD>
 
1145
                <TD WIDTH=15%>
 
1146
                        <P CLASS="western">const Magick::Coordinate&amp; coordinate_</P>
 
1147
                </TD>
 
1148
                <TD ROWSPAN=4 WIDTH=63%>
 
1149
                        <P CLASS="western">Draw a line from the current point to the given
 
1150
                        coordinate which becomes the new current point.&nbsp;
 
1151
                        <I>PathLinetoAbs</I> indicates that absolute coordinates are used;
 
1152
                        <I>PathLinetoRel</I> indicates that relative coordinates are used.
 
1153
                        A number of coordinates pairs may be specified in a list to draw a
 
1154
                        polyline. At the end of the command, the new current point is set
 
1155
                        to the final set of coordinates provided.</P>
 
1156
                </TD>
 
1157
        </TR>
 
1158
        <TR>
 
1159
                <TD WIDTH=15%>
 
1160
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1161
                        &amp;coordinates_</P>
 
1162
                </TD>
 
1163
        </TR>
 
1164
        <TR>
 
1165
                <TD ROWSPAN=2 WIDTH=22%>
 
1166
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathLinetoRel"></A>PathLinetoRel</P>
 
1167
                </TD>
 
1168
                <TD WIDTH=15%>
 
1169
                        <P CLASS="western">const Magick::Coordinate&amp; coordinate_</P>
 
1170
                </TD>
 
1171
        </TR>
 
1172
        <TR>
 
1173
                <TD WIDTH=15%>
 
1174
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1175
                        &amp;coordinates_</P>
 
1176
                </TD>
 
1177
        </TR>
 
1178
        <TR>
 
1179
                <TD WIDTH=22%>
 
1180
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathLinetoHorizontalAbs"></A>
 
1181
                        PathLinetoHorizontalAbs</P>
 
1182
                </TD>
 
1183
                <TD WIDTH=15%>
 
1184
                        <P CLASS="western">double x_</P>
 
1185
                </TD>
 
1186
                <TD ROWSPAN=2 WIDTH=63%>
 
1187
                        <P CLASS="western">Draws a horizontal line from the current point
 
1188
                        (cpx, cpy) to (x, cpy). <I>PathLinetoHorizontalAbs</I> indicates
 
1189
                        that absolute coordinates are supplied; <I>PathLinetoHorizontalRel</I>
 
1190
                        indicates that relative coordinates are supplied. At the end of
 
1191
                        the command, the new current point becomes (x, cpy) for the final
 
1192
                        value of x.</P>
 
1193
                </TD>
 
1194
        </TR>
 
1195
        <TR>
 
1196
                <TD WIDTH=22%>
 
1197
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathLinetoHorizontalRel"></A>
 
1198
                        PathLinetoHorizontalRel</P>
 
1199
                </TD>
 
1200
                <TD WIDTH=15%>
 
1201
                        <P CLASS="western">double x_</P>
 
1202
                </TD>
 
1203
        </TR>
 
1204
        <TR>
 
1205
                <TD WIDTH=22%>
 
1206
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathLinetoVerticalAbs"></A>
 
1207
                        PathLinetoVerticalAbs</P>
 
1208
                </TD>
 
1209
                <TD WIDTH=15%>
 
1210
                        <P CLASS="western">double y_</P>
 
1211
                </TD>
 
1212
                <TD ROWSPAN=2 WIDTH=63%>
 
1213
                        <P CLASS="western">Draws a vertical line from the current point
 
1214
                        (cpx, cpy) to (cpx, y). <I>PathLinetoVerticalAbs</I> indicates
 
1215
                        that absolute coordinates are supplied; <I>PathLinetoVerticalRel</I>
 
1216
                        indicates that relative coordinates are supplied.&nbsp; At the end
 
1217
                        of the command, the new current point becomes (cpx, y) for the
 
1218
                        final value of y.</P>
 
1219
                </TD>
 
1220
        </TR>
 
1221
        <TR>
 
1222
                <TD WIDTH=22%>
 
1223
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathLinetoVerticalRel"></A>
 
1224
                        PathLinetoVerticalRel</P>
 
1225
                </TD>
 
1226
                <TD WIDTH=15%>
 
1227
                        <P CLASS="western">double y_</P>
 
1228
                </TD>
 
1229
        </TR>
 
1230
</TABLE>
 
1231
<H3>The curve commands</H3>
 
1232
<P>These three groups of commands draw curves: 
 
1233
</P>
 
1234
<UL>
 
1235
        <LI><P STYLE="margin-bottom: 0in"><A HREF="#cubic Bezier">Cubic
 
1236
        B&eacute;zier commands.</A> A cubic B&eacute;zier segment is defined
 
1237
        by a start point, an end point, and two control points. 
 
1238
        </P>
 
1239
        <LI><P STYLE="margin-bottom: 0in"><A HREF="#quadratic Bezier">Quadratic
 
1240
        B&eacute;zier commands.</A> A quadratic B&eacute;zier segment is
 
1241
        defined by a start point, an end point, and one control point. 
 
1242
        </P>
 
1243
        <LI><P><A HREF="#elliptical arc">Elliptical arc commands.</A> An
 
1244
        elliptical arc segment draws a segment of an ellipse. 
 
1245
        </P>
 
1246
</UL>
 
1247
<H3><A NAME="cubic Bezier"></A>The&nbsp;cubic B&eacute;zier curve
 
1248
commands</H3>
 
1249
<P>The cubic B&eacute;zier commands depend on the <I>PathCurvetoArgs</I>
 
1250
argument class, which has the constructor signature 
 
1251
</P>
 
1252
<P><TT>&nbsp; PathCurvetoArgs( double x1_, double y1_,</TT>
 
1253
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
1254
double x2_, double y2_,</TT> <BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
1255
double x_, double y_ );</TT> 
 
1256
</P>
 
1257
<P STYLE="margin-bottom: 0in">The commands are as follows: 
 
1258
</P>
 
1259
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Cubic B&eacute;zier
 
1260
Curve Classes</B></P>
 
1261
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
 
1262
        <COL WIDTH=54*>
 
1263
        <COL WIDTH=58*>
 
1264
        <COL WIDTH=144*>
 
1265
        <TR>
 
1266
                <TH WIDTH=21%>
 
1267
                        <P CLASS="western">Sub-Class</P>
 
1268
                </TH>
 
1269
                <TH WIDTH=23%>
 
1270
                        <P CLASS="western">Constructor Signature</P>
 
1271
                </TH>
 
1272
                <TH WIDTH=56%>
 
1273
                        <P CLASS="western">Description</P>
 
1274
                </TH>
 
1275
        </TR>
 
1276
        <TR>
 
1277
                <TD ROWSPAN=2 WIDTH=21%>
 
1278
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathCurvetoAbs"></A>PathCurvetoAbs</P>
 
1279
                </TD>
 
1280
                <TD WIDTH=23%>
 
1281
                        <P CLASS="western">const Magick::PathCurvetoArgs &amp;args_</P>
 
1282
                </TD>
 
1283
                <TD ROWSPAN=4 WIDTH=56%>
 
1284
                        <P CLASS="western">Draws a cubic B&eacute;zier curve from the
 
1285
                        current point to (x,y) using (x1,y1) as the control point at the
 
1286
                        beginning of the curve and (x2,y2) as the control point at the end
 
1287
                        of the curve. <I>PathCurvetoAbs</I> indicates that
 
1288
                        absolutecoordinates will follow; <I>PathCurvetoRel</I> indicates
 
1289
                        that relative coordinates will follow. Multiple sets of
 
1290
                        coordinates may be specified to draw a polybezier. At the end of
 
1291
                        the command, the new current point becomes the final (x,y)
 
1292
                        coordinate pair used in the polybezier.</P>
 
1293
                </TD>
 
1294
        </TR>
 
1295
        <TR>
 
1296
                <TD WIDTH=23%>
 
1297
                        <P CLASS="western">const std::list&lt;Magick::PathCurvetoArgs&gt;
 
1298
                        &amp;args_</P>
 
1299
                </TD>
 
1300
        </TR>
 
1301
        <TR>
 
1302
                <TD ROWSPAN=2 WIDTH=21%>
 
1303
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathCurvetoRel"></A>PathCurvetoRel</P>
 
1304
                </TD>
 
1305
                <TD WIDTH=23%>
 
1306
                        <P CLASS="western">const Magick::PathCurvetoArgs &amp;args_</P>
 
1307
                </TD>
 
1308
        </TR>
 
1309
        <TR>
 
1310
                <TD WIDTH=23%>
 
1311
                        <P CLASS="western">const std::list&lt;Magick::PathCurvetoArgs&gt;
 
1312
                        &amp;args_</P>
 
1313
                </TD>
 
1314
        </TR>
 
1315
        <TR>
 
1316
                <TD ROWSPAN=2 WIDTH=21%>
 
1317
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathSmoothCurvetoAbs"></A>
 
1318
                        PathSmoothCurvetoAbs</P>
 
1319
                </TD>
 
1320
                <TD WIDTH=23%>
 
1321
                        <P CLASS="western">const Magick::Coordinate &amp;coordinates_</P>
 
1322
                </TD>
 
1323
                <TD ROWSPAN=4 WIDTH=56%>
 
1324
                        <P CLASS="western">Draws a cubic B&eacute;zier curve from the
 
1325
                        current point to (x,y). The first control point is assumed to be
 
1326
                        the reflection of the second control point on the previous command
 
1327
                        relative to the current point. (If there is no previous command or
 
1328
                        if the previous command was not an <I>PathCurvetoAbs</I>,
 
1329
                        <I>PathCurvetoRel</I>, <I>PathSmoothCurvetoAbs</I> or
 
1330
                        <I>PathSmoothCurvetoRel</I>, assume the first control point is
 
1331
                        coincident with the current point.) (x2,y2) is the second control
 
1332
                        point (i.e., the control point at the end of the curve).&nbsp;
 
1333
                        <I>PathSmoothCurvetoAbs</I> indicates that absolute coordinates
 
1334
                        will follow;&nbsp; <I>PathSmoothCurvetoRel</I> indicates that
 
1335
                        relative coordinates will follow. Multiple sets of coordinates may
 
1336
                        be specified to draw a polybezier. At the end of the command, the
 
1337
                        new current point becomes the final (x,y) coordinate pair used in
 
1338
                        the polybezier.</P>
 
1339
                </TD>
 
1340
        </TR>
 
1341
        <TR>
 
1342
                <TD WIDTH=23%>
 
1343
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1344
                        &amp;coordinates_</P>
 
1345
                </TD>
 
1346
        </TR>
 
1347
        <TR>
 
1348
                <TD ROWSPAN=2 WIDTH=21%>
 
1349
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathSmoothCurvetoRel"></A>
 
1350
                        PathSmoothCurvetoRel</P>
 
1351
                </TD>
 
1352
                <TD WIDTH=23%>
 
1353
                        <P CLASS="western">const Magick::Coordinate &amp;coordinates_</P>
 
1354
                </TD>
 
1355
        </TR>
 
1356
        <TR>
 
1357
                <TD WIDTH=23%>
 
1358
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1359
                        &amp;coordinates_</P>
 
1360
                </TD>
 
1361
        </TR>
 
1362
</TABLE>
 
1363
<H3><A NAME="quadratic Bezier"></A>The quadratic B&eacute;zier curve
 
1364
commands</H3>
 
1365
<P>The quadratic B&eacute;zier commands depend on the
 
1366
<I>PathQuadraticCurvetoArgs</I> argument class, which has the
 
1367
constructor signature: 
 
1368
</P>
 
1369
<P><TT>&nbsp; PathQuadraticCurvetoArgs( double x1_, double y1_,</TT>
 
1370
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
1371
double x_, double y_ );</TT> 
 
1372
</P>
 
1373
<P STYLE="margin-bottom: 0in">The quadratic B&eacute;zier commands
 
1374
are as follows: 
 
1375
</P>
 
1376
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Quadratic B&eacute;zier
 
1377
Curve Classes</B></P>
 
1378
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=2>
 
1379
        <TR>
 
1380
                <TH>
 
1381
                        <P CLASS="western">Sub-Class</P>
 
1382
                </TH>
 
1383
                <TH>
 
1384
                        <P CLASS="western">Constructor Signature</P>
 
1385
                </TH>
 
1386
                <TH>
 
1387
                        <P CLASS="western">Description</P>
 
1388
                </TH>
 
1389
        </TR>
 
1390
        <TR>
 
1391
                <TD ROWSPAN=2>
 
1392
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathQuadraticCurvetoAbs"></A>
 
1393
                        PathQuadraticCurvetoAbs</P>
 
1394
                </TD>
 
1395
                <TD>
 
1396
                        <P CLASS="western">const Magick::PathQuadraticCurvetoArgs &amp;args_</P>
 
1397
                </TD>
 
1398
                <TD ROWSPAN=4>
 
1399
                        <P CLASS="western">Draws a quadratic B&eacute;zier curve from the
 
1400
                        current point to (x,y) using (x1,y1) as the control point.
 
1401
                        <I>PathQuadraticCurvetoAbs</I> indicates that absolute coordinates
 
1402
                        will follow; <I>PathQuadraticCurvetoRel</I> indicates that
 
1403
                        relative coordinates will follow. Multiple sets of coordinates may
 
1404
                        be specified to draw a polybezier. At the end of the command, the
 
1405
                        new current point becomes the final (x,y) coordinate pair used in
 
1406
                        the polybezier.</P>
 
1407
                </TD>
 
1408
        </TR>
 
1409
        <TR>
 
1410
                <TD>
 
1411
                        <P CLASS="western">const
 
1412
                        std::list&lt;Magick::PathQuadraticCurvetoArgs&gt; &amp;args_</P>
 
1413
                </TD>
 
1414
        </TR>
 
1415
        <TR>
 
1416
                <TD ROWSPAN=2>
 
1417
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathQuadraticCurvetoRel"></A>
 
1418
                        PathQuadraticCurvetoRel</P>
 
1419
                </TD>
 
1420
                <TD>
 
1421
                        <P CLASS="western">const Magick::PathQuadraticCurvetoArgs &amp;args_</P>
 
1422
                </TD>
 
1423
        </TR>
 
1424
        <TR>
 
1425
                <TD>
 
1426
                        <P CLASS="western">const
 
1427
                        std::list&lt;Magick::PathQuadraticCurvetoArgs&gt; &amp;args_</P>
 
1428
                </TD>
 
1429
        </TR>
 
1430
        <TR>
 
1431
                <TD ROWSPAN=2>
 
1432
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathSmoothQuadraticCurvetoAbs"></A>
 
1433
                        PathSmoothQuadraticCurvetoAbs</P>
 
1434
                </TD>
 
1435
                <TD>
 
1436
                        <P CLASS="western">const Magick::Coordinate &amp;coordinate_</P>
 
1437
                </TD>
 
1438
                <TD ROWSPAN=4>
 
1439
                        <P CLASS="western">Draws a quadratic B&eacute;zier curve from the
 
1440
                        current point to (x,y). The control point is assumed to be the
 
1441
                        reflection of the control point on the previous <BR>command
 
1442
                        relative to the current point. (If there is no previous command or
 
1443
                        if the previous command was not a <I>PathQuadraticCurvetoAbs</I>,
 
1444
                        <I>PathQuadraticCurvetoRel</I>, <I>PathSmoothQuadraticCurvetoAbs</I>
 
1445
                        or <I>PathSmoothQuadraticCurvetoRel</I>, assume the control point
 
1446
                        is coincident with the current point.)
 
1447
                        <I>PathSmoothQuadraticCurvetoAbs</I> indicates that absolute
 
1448
                        coordinates will follow; <I>PathSmoothQuadraticCurvetoRel</I>
 
1449
                        indicates that relative coordinates will follow. At the end of the
 
1450
                        command, the new current point becomes the final (x,y) coordinate
 
1451
                        pair used in the polybezier.</P>
 
1452
                </TD>
 
1453
        </TR>
 
1454
        <TR>
 
1455
                <TD>
 
1456
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1457
                        &amp;coordinates_</P>
 
1458
                </TD>
 
1459
        </TR>
 
1460
        <TR>
 
1461
                <TD ROWSPAN=2>
 
1462
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathSmoothQuadraticCurvetoRel"></A>
 
1463
                        PathSmoothQuadraticCurvetoRel</P>
 
1464
                </TD>
 
1465
                <TD>
 
1466
                        <P CLASS="western">const Magick::Coordinate &amp;coordinate_</P>
 
1467
                </TD>
 
1468
        </TR>
 
1469
        <TR>
 
1470
                <TD>
 
1471
                        <P CLASS="western">const std::list&lt;Magick::Coordinate&gt;
 
1472
                        &amp;coordinates_</P>
 
1473
                </TD>
 
1474
        </TR>
 
1475
</TABLE>
 
1476
<H3><A NAME="elliptical arc"></A>The elliptical arc curve commands</H3>
 
1477
<P>The elliptical arc curve commands depend on the <I>PathArcArgs</I>
 
1478
argument class, which has the constructor signature: 
 
1479
</P>
 
1480
<P><TT>&nbsp;&nbsp; PathArcArgs( double radiusX_, double radiusY_,</TT>
 
1481
<BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
1482
double xAxisRotation_, bool largeArcFlag_,</TT> <BR><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
1483
bool sweepFlag_, double x_, double y_ );</TT> 
 
1484
</P>
 
1485
<P STYLE="margin-bottom: 0in">The elliptical arc commands are as
 
1486
follows: 
 
1487
</P>
 
1488
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><B>Elliptical Arc Curve
 
1489
Classes</B></P>
 
1490
<TABLE WIDTH=100% BORDER=1 CELLPADDING=2 CELLSPACING=3>
 
1491
        <COL WIDTH=35*>
 
1492
        <COL WIDTH=46*>
 
1493
        <COL WIDTH=175*>
 
1494
        <TR>
 
1495
                <TH WIDTH=14%>
 
1496
                        <P CLASS="western">Sub-Class</P>
 
1497
                </TH>
 
1498
                <TH WIDTH=18%>
 
1499
                        <P CLASS="western">Constructor Signature</P>
 
1500
                </TH>
 
1501
                <TH WIDTH=68%>
 
1502
                        <P CLASS="western">Description</P>
 
1503
                </TH>
 
1504
        </TR>
 
1505
        <TR>
 
1506
                <TD ROWSPAN=2 WIDTH=14%>
 
1507
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathArcAbs"></A>PathArcAbs</P>
 
1508
                </TD>
 
1509
                <TD WIDTH=18%>
 
1510
                        <P CLASS="western">const Magick::PathArcArgs &amp;coordinates_</P>
 
1511
                </TD>
 
1512
                <TD ROWSPAN=4 WIDTH=68%>
 
1513
                        <P CLASS="western">Draws an elliptical arc from the current point
 
1514
                        to (x, y). The size and orientation of the ellipse are defined by
 
1515
                        two radii (<I>radiusX</I>, <I>radiusY</I>) and an <I>xAxisRotation</I>,
 
1516
                        which indicates how the ellipse as a whole is rotated relative to
 
1517
                        the current coordinate system. The center (cx, cy) of the ellipse
 
1518
                        is calculated automatically to satisfy the constraints imposed by
 
1519
                        the other parameters. <I>largeArcFlag</I> and <I>sweepFlag</I>
 
1520
                        contribute to the automatic calculations and help determine how
 
1521
                        the arc is drawn. If <I>largeArcFlag</I> is true then draw the
 
1522
                        larger of the available arcs. If <I>sweepFlag</I> is true, then
 
1523
                        draw the arc matching a clock-wise rotation.</P>
 
1524
                </TD>
 
1525
        </TR>
 
1526
        <TR>
 
1527
                <TD WIDTH=18%>
 
1528
                        <P CLASS="western">const std::list&lt;Magick::PathArcArgs&gt;
 
1529
                        &amp;coordinates_</P>
 
1530
                </TD>
 
1531
        </TR>
 
1532
        <TR>
 
1533
                <TD ROWSPAN=2 WIDTH=14%>
 
1534
                        <P CLASS="western" ALIGN=CENTER><A NAME="PathArcRel"></A>PathArcRel</P>
 
1535
                </TD>
 
1536
                <TD WIDTH=18%>
 
1537
                        <P CLASS="western">const Magick::PathArcArgs &amp;coordinates_</P>
 
1538
                </TD>
 
1539
        </TR>
 
1540
        <TR>
 
1541
                <TD WIDTH=18%>
 
1542
                        <P CLASS="western">const std::list&lt;Magick::PathArcArgs&gt;
 
1543
                        &amp;coordinates_</P>
 
1544
                </TD>
 
1545
        </TR>
 
1546
</TABLE>
 
1547
<P><BR><BR>
 
1548
</P>
 
1549
</BODY>
 
1550
</HTML>
 
 
b'\\ No newline at end of file'