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::Matrix 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_matrix.html">Matrix</a>
30
<div class="contents">
31
<h1>ipe::Matrix Class Reference<br/>
33
[<a class="el" href="group__geo.html">Ipe Geometry</a>]</small>
34
</h1><!-- doxytag: class="ipe::Matrix" -->
35
<p>Homogeneous transformation in the plane.
36
<a href="#_details">More...</a></p>
38
<p><code>#include <ipegeo.h></code></p>
40
<p><a href="classipe_1_1_matrix-members.html">List of all members.</a></p>
41
<h2>Public Member Functions</h2>
43
<li><a class="el" href="classipe_1_1_matrix.html#ab6116c751a103781ba8178d56d20441d">Matrix</a> ()
44
<li><a class="el" href="classipe_1_1_matrix.html#aa69a1e91c8e0ced11a105c1aa73cce37">Matrix</a> (const <a class="el" href="classipe_1_1_linear.html">Linear</a> &linear)
45
<li><a class="el" href="classipe_1_1_matrix.html#a51acfd871620141cdaa577af069610eb">Matrix</a> (const <a class="el" href="classipe_1_1_linear.html">Linear</a> &linear, const <a class="el" href="classipe_1_1_vector.html">Vector</a> &t)
46
<li><a class="el" href="classipe_1_1_matrix.html#a24e4802b0c2c7a6bb38a07be694a308f">Matrix</a> (double m11, double m21, double m12, double m22, double t1, double t2)
47
<li><a class="el" href="classipe_1_1_matrix.html#a005dfee976861f7751b8960efaeb892a">Matrix</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &v)
48
<li><a class="el" href="classipe_1_1_matrix.html#a2f6597a38561a94724d4ff7c16a20bcf">Matrix</a> (<a class="el" href="classipe_1_1_string.html">String</a> str)
49
<li><a class="el" href="classipe_1_1_matrix.html">Matrix</a> <a class="el" href="classipe_1_1_matrix.html#a6783f936127313b660c4f67e4455ab05">inverse</a> () const
50
<li><a class="el" href="classipe_1_1_vector.html">Vector</a> <a class="el" href="classipe_1_1_matrix.html#a7769b63f2523de3b362b3345de1bc4fa">operator*</a> (const <a class="el" href="classipe_1_1_vector.html">Vector</a> &rhs) const
51
<li><a class="el" href="classipe_1_1_bezier.html">Bezier</a> <a class="el" href="classipe_1_1_matrix.html#a5df9d069c5c5adc4f87048fd9927a7ec">operator*</a> (const <a class="el" href="classipe_1_1_bezier.html">Bezier</a> &rhs) const
52
<li><a class="el" href="classipe_1_1_vector.html">Vector</a> <a class="el" href="classipe_1_1_matrix.html#a1fae7b423770b85a1e45eb3e05ffc944">translation</a> () const
53
<li><a class="el" href="classipe_1_1_linear.html">Linear</a> <a class="el" href="classipe_1_1_matrix.html#aa0f37215b35563b82c111cc3185f257a">linear</a> () const
54
<li>bool <a class="el" href="classipe_1_1_matrix.html#af71ffc2138ddfa547ec7cba132bcb875">isIdentity</a> () const
55
<li>bool <a class="el" href="classipe_1_1_matrix.html#a3d6c819cf0b2d73bf574cef415dcf9c3">operator==</a> (const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> &rhs) const
57
<h2>Public Attributes</h2>
59
<li>double <a class="el" href="classipe_1_1_matrix.html#a4f6d09b1c43d7e8e01c494ccf0f7b7f3">a</a> [6]
61
<h2>Related Functions</h2>
62
<p>(Note that these are not member functions.) </p>
64
<li><a class="el" href="classipe_1_1_arc.html">Arc</a> <a class="el" href="classipe_1_1_matrix.html#a8bc9790e754c37bd250a3a59d64f9b6e">operator*</a> (const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> &lhs, const <a class="el" href="classipe_1_1_arc.html">Arc</a> &rhs)
66
<hr/><a name="_details"></a><h2>Detailed Description</h2>
67
<p>Homogeneous transformation in the plane. </p>
68
<hr/><h2>Constructor & Destructor Documentation</h2>
69
<a class="anchor" id="ab6116c751a103781ba8178d56d20441d"></a><!-- doxytag: member="ipe::Matrix::Matrix" ref="ab6116c751a103781ba8178d56d20441d" args="()" -->
71
<div class="memproto">
72
<table class="memname">
74
<td class="memname">ipe::Matrix::Matrix </td>
76
<td class="paramname"></td>
77
<td> ) </td>
78
<td><code> [inline]</code></td>
84
<p>Create identity matrix. </p>
88
<a class="anchor" id="aa69a1e91c8e0ced11a105c1aa73cce37"></a><!-- doxytag: member="ipe::Matrix::Matrix" ref="aa69a1e91c8e0ced11a105c1aa73cce37" args="(const Linear &linear)" -->
90
<div class="memproto">
91
<table class="memname">
93
<td class="memname">ipe::Matrix::Matrix </td>
95
<td class="paramtype">const <a class="el" href="classipe_1_1_linear.html">Linear</a> & </td>
96
<td class="paramname"> <em>linear</em></td>
97
<td> ) </td>
98
<td><code> [inline]</code></td>
104
<p>Create linear matrix. </p>
108
<a class="anchor" id="a51acfd871620141cdaa577af069610eb"></a><!-- doxytag: member="ipe::Matrix::Matrix" ref="a51acfd871620141cdaa577af069610eb" args="(const Linear &linear, const Vector &t)" -->
109
<div class="memitem">
110
<div class="memproto">
111
<table class="memname">
113
<td class="memname">ipe::Matrix::Matrix </td>
115
<td class="paramtype">const <a class="el" href="classipe_1_1_linear.html">Linear</a> & </td>
116
<td class="paramname"> <em>linear</em>, </td>
119
<td class="paramkey"></td>
121
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
122
<td class="paramname"> <em>t</em></td><td> </td>
127
<td></td><td></td><td><code> [inline, explicit]</code></td>
135
<a class="anchor" id="a24e4802b0c2c7a6bb38a07be694a308f"></a><!-- doxytag: member="ipe::Matrix::Matrix" ref="a24e4802b0c2c7a6bb38a07be694a308f" args="(double m11, double m21, double m12, double m22, double t1, double t2)" -->
136
<div class="memitem">
137
<div class="memproto">
138
<table class="memname">
140
<td class="memname">ipe::Matrix::Matrix </td>
142
<td class="paramtype">double </td>
143
<td class="paramname"> <em>m11</em>, </td>
146
<td class="paramkey"></td>
148
<td class="paramtype">double </td>
149
<td class="paramname"> <em>m21</em>, </td>
152
<td class="paramkey"></td>
154
<td class="paramtype">double </td>
155
<td class="paramname"> <em>m12</em>, </td>
158
<td class="paramkey"></td>
160
<td class="paramtype">double </td>
161
<td class="paramname"> <em>m22</em>, </td>
164
<td class="paramkey"></td>
166
<td class="paramtype">double </td>
167
<td class="paramname"> <em>t1</em>, </td>
170
<td class="paramkey"></td>
172
<td class="paramtype">double </td>
173
<td class="paramname"> <em>t2</em></td><td> </td>
178
<td></td><td></td><td><code> [inline, explicit]</code></td>
184
<p>Create matrix with given coefficients. </p>
188
<a class="anchor" id="a005dfee976861f7751b8960efaeb892a"></a><!-- doxytag: member="ipe::Matrix::Matrix" ref="a005dfee976861f7751b8960efaeb892a" args="(const Vector &v)" -->
189
<div class="memitem">
190
<div class="memproto">
191
<table class="memname">
193
<td class="memname">ipe::Matrix::Matrix </td>
195
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
196
<td class="paramname"> <em>v</em></td>
197
<td> ) </td>
198
<td><code> [inline, explicit]</code></td>
204
<p>Create translation matrix. </p>
208
<a class="anchor" id="a2f6597a38561a94724d4ff7c16a20bcf"></a><!-- doxytag: member="ipe::Matrix::Matrix" ref="a2f6597a38561a94724d4ff7c16a20bcf" args="(String str)" -->
209
<div class="memitem">
210
<div class="memproto">
211
<table class="memname">
213
<td class="memname">Matrix::Matrix </td>
215
<td class="paramtype"><a class="el" href="classipe_1_1_string.html">String</a> </td>
216
<td class="paramname"> <em>str</em></td>
217
<td> ) </td>
218
<td><code> [explicit]</code></td>
224
<p>Parse string. </p>
228
<hr/><h2>Member Function Documentation</h2>
229
<a class="anchor" id="a6783f936127313b660c4f67e4455ab05"></a><!-- doxytag: member="ipe::Matrix::inverse" ref="a6783f936127313b660c4f67e4455ab05" args="() const " -->
230
<div class="memitem">
231
<div class="memproto">
232
<table class="memname">
234
<td class="memname"><a class="el" href="classipe_1_1_matrix.html">Matrix</a> Matrix::inverse </td>
236
<td class="paramname"></td>
237
<td> ) </td>
244
<p>Return inverse. </p>
248
<a class="anchor" id="a7769b63f2523de3b362b3345de1bc4fa"></a><!-- doxytag: member="ipe::Matrix::operator*" ref="a7769b63f2523de3b362b3345de1bc4fa" args="(const Vector &rhs) const " -->
249
<div class="memitem">
250
<div class="memproto">
251
<table class="memname">
253
<td class="memname"><a class="el" href="classipe_1_1_vector.html">Vector</a> ipe::Matrix::operator* </td>
255
<td class="paramtype">const <a class="el" href="classipe_1_1_vector.html">Vector</a> & </td>
256
<td class="paramname"> <em>rhs</em></td>
257
<td> ) </td>
258
<td> const<code> [inline]</code></td>
266
<a class="anchor" id="a5df9d069c5c5adc4f87048fd9927a7ec"></a><!-- doxytag: member="ipe::Matrix::operator*" ref="a5df9d069c5c5adc4f87048fd9927a7ec" args="(const Bezier &rhs) const " -->
267
<div class="memitem">
268
<div class="memproto">
269
<table class="memname">
271
<td class="memname"><a class="el" href="classipe_1_1_bezier.html">Bezier</a> operator* </td>
273
<td class="paramtype">const <a class="el" href="classipe_1_1_bezier.html">Bezier</a> & </td>
274
<td class="paramname"> <em>rhs</em></td>
275
<td> ) </td>
276
<td> const<code> [inline]</code></td>
282
<p>Transform <a class="el" href="classipe_1_1_bezier.html" title="A cubic Bezier spline.">Bezier</a> spline. </p>
286
<a class="anchor" id="a1fae7b423770b85a1e45eb3e05ffc944"></a><!-- doxytag: member="ipe::Matrix::translation" ref="a1fae7b423770b85a1e45eb3e05ffc944" args="() const " -->
287
<div class="memitem">
288
<div class="memproto">
289
<table class="memname">
291
<td class="memname"><a class="el" href="classipe_1_1_vector.html">Vector</a> ipe::Matrix::translation </td>
293
<td class="paramname"></td>
294
<td> ) </td>
295
<td> const<code> [inline]</code></td>
301
<p>Return translation component. </p>
305
<a class="anchor" id="aa0f37215b35563b82c111cc3185f257a"></a><!-- doxytag: member="ipe::Matrix::linear" ref="aa0f37215b35563b82c111cc3185f257a" args="() const " -->
306
<div class="memitem">
307
<div class="memproto">
308
<table class="memname">
310
<td class="memname"><a class="el" href="classipe_1_1_linear.html">Linear</a> ipe::Matrix::linear </td>
312
<td class="paramname"></td>
313
<td> ) </td>
314
<td> const<code> [inline]</code></td>
320
<p>Return linear transformation component of this affine transformation. </p>
324
<a class="anchor" id="af71ffc2138ddfa547ec7cba132bcb875"></a><!-- doxytag: member="ipe::Matrix::isIdentity" ref="af71ffc2138ddfa547ec7cba132bcb875" args="() const " -->
325
<div class="memitem">
326
<div class="memproto">
327
<table class="memname">
329
<td class="memname">bool ipe::Matrix::isIdentity </td>
331
<td class="paramname"></td>
332
<td> ) </td>
333
<td> const<code> [inline]</code></td>
339
<p>Is this the identity matrix? </p>
343
<a class="anchor" id="a3d6c819cf0b2d73bf574cef415dcf9c3"></a><!-- doxytag: member="ipe::Matrix::operator==" ref="a3d6c819cf0b2d73bf574cef415dcf9c3" args="(const Matrix &rhs) const " -->
344
<div class="memitem">
345
<div class="memproto">
346
<table class="memname">
348
<td class="memname">bool ipe::Matrix::operator== </td>
350
<td class="paramtype">const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> & </td>
351
<td class="paramname"> <em>rhs</em></td>
352
<td> ) </td>
353
<td> const<code> [inline]</code></td>
359
<p>Check for equality of two matrices. </p>
363
<hr/><h2>Friends And Related Function Documentation</h2>
364
<a class="anchor" id="a8bc9790e754c37bd250a3a59d64f9b6e"></a><!-- doxytag: member="ipe::Matrix::operator*" ref="a8bc9790e754c37bd250a3a59d64f9b6e" args="(const Matrix &lhs, const Arc &rhs)" -->
365
<div class="memitem">
366
<div class="memproto">
367
<table class="memname">
369
<td class="memname"><a class="el" href="classipe_1_1_arc.html">Arc</a> operator* </td>
371
<td class="paramtype">const <a class="el" href="classipe_1_1_matrix.html">Matrix</a> & </td>
372
<td class="paramname"> <em>lhs</em>, </td>
375
<td class="paramkey"></td>
377
<td class="paramtype">const <a class="el" href="classipe_1_1_arc.html">Arc</a> & </td>
378
<td class="paramname"> <em>rhs</em></td><td> </td>
383
<td></td><td></td><td><code> [related]</code></td>
389
<p>Transform arc. </p>
393
<hr/><h2>Member Data Documentation</h2>
394
<a class="anchor" id="a4f6d09b1c43d7e8e01c494ccf0f7b7f3"></a><!-- doxytag: member="ipe::Matrix::a" ref="a4f6d09b1c43d7e8e01c494ccf0f7b7f3" args="[6]" -->
395
<div class="memitem">
396
<div class="memproto">
397
<table class="memname">
399
<td class="memname">double <a class="el" href="classipe_1_1_matrix.html#a4f6d09b1c43d7e8e01c494ccf0f7b7f3">ipe::Matrix::a</a>[6]</td>
407
<hr/>The documentation for this class was generated from the following files:<ul>