1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta name="generator" content="Doxygen 1.9.1" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="vulkan 2d vector drawing library." />
<title>VKVG: Matrices</title>
<link href="tabs.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="custom.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top">
<div id="titlearea">
<table id="titletable" cellspacing="0" cellpadding="0" style="width:100%">
<tr id="titlerow" >
<td id="projectlogo"><img alt="Logo" src="vkvg.svg" /></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">VKVG  </div>
<div id="projectbrief">Vulkan Vector Graphics</div>
</td>
<td align="right"><button style="font-size:16px" onclick="location.href='https://github.com/jpbruyere/vkvg'">View on GitHub <i class="fa fa-github"></i></button></td>
</tr>
</table>
</div>
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#define-members">Macros</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Matrices</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<p>This is the reference documentation for handling matrices to use as transformation in drawing operations. Matrix computations in vkvg are taken from the cairo library. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">vkvg matrix structure <a href="structvkvg__matrix__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga7a14d8e9fafcb47df7b52731622a15a3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga7a14d8e9fafcb47df7b52731622a15a3.html#ga7a14d8e9fafcb47df7b52731622a15a3">VKVG_IDENTITY_MATRIX</a>   (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a>){1,0,0,1,0,0}</td></tr>
<tr class="separator:ga7a14d8e9fafcb47df7b52731622a15a3"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga60cff46b3741569d302c19226b5f7340"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga60cff46b3741569d302c19226b5f7340.html#ga60cff46b3741569d302c19226b5f7340">vkvg_matrix_init_identity</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix)</td></tr>
<tr class="memdesc:ga60cff46b3741569d302c19226b5f7340"><td class="mdescLeft"> </td><td class="mdescRight">Set matrix to identity. <a href="group__matrix_ga60cff46b3741569d302c19226b5f7340.html#ga60cff46b3741569d302c19226b5f7340">More...</a><br /></td></tr>
<tr class="separator:ga60cff46b3741569d302c19226b5f7340"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadfb1c02e17804239c8a8f1c2f0f8a374"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_gadfb1c02e17804239c8a8f1c2f0f8a374.html#gadfb1c02e17804239c8a8f1c2f0f8a374">vkvg_matrix_init</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float xx, float yx, float xy, float yy, float x0, float y0)</td></tr>
<tr class="memdesc:gadfb1c02e17804239c8a8f1c2f0f8a374"><td class="mdescLeft"> </td><td class="mdescRight">Matrix initialization. <a href="group__matrix_gadfb1c02e17804239c8a8f1c2f0f8a374.html#gadfb1c02e17804239c8a8f1c2f0f8a374">More...</a><br /></td></tr>
<tr class="separator:gadfb1c02e17804239c8a8f1c2f0f8a374"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga471448472d025facf479dc1fbaa6f102"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga471448472d025facf479dc1fbaa6f102.html#ga471448472d025facf479dc1fbaa6f102">vkvg_matrix_init_translate</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float tx, float ty)</td></tr>
<tr class="memdesc:ga471448472d025facf479dc1fbaa6f102"><td class="mdescLeft"> </td><td class="mdescRight">Rotation matrix initialization. <a href="group__matrix_ga471448472d025facf479dc1fbaa6f102.html#ga471448472d025facf479dc1fbaa6f102">More...</a><br /></td></tr>
<tr class="separator:ga471448472d025facf479dc1fbaa6f102"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga824fa84193b12ef36fd11316b52edfb9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga824fa84193b12ef36fd11316b52edfb9.html#ga824fa84193b12ef36fd11316b52edfb9">vkvg_matrix_init_scale</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float sx, float sy)</td></tr>
<tr class="memdesc:ga824fa84193b12ef36fd11316b52edfb9"><td class="mdescLeft"> </td><td class="mdescRight">scaling matrix initialization <a href="group__matrix_ga824fa84193b12ef36fd11316b52edfb9.html#ga824fa84193b12ef36fd11316b52edfb9">More...</a><br /></td></tr>
<tr class="separator:ga824fa84193b12ef36fd11316b52edfb9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7565d3c1202c2aa88d06210e4e880c15"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga7565d3c1202c2aa88d06210e4e880c15.html#ga7565d3c1202c2aa88d06210e4e880c15">vkvg_matrix_init_rotate</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float radians)</td></tr>
<tr class="memdesc:ga7565d3c1202c2aa88d06210e4e880c15"><td class="mdescLeft"> </td><td class="mdescRight">rotation matrix initialization <a href="group__matrix_ga7565d3c1202c2aa88d06210e4e880c15.html#ga7565d3c1202c2aa88d06210e4e880c15">More...</a><br /></td></tr>
<tr class="separator:ga7565d3c1202c2aa88d06210e4e880c15"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa9cd565c5f9ad461d8ece37459c5757c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_gaa9cd565c5f9ad461d8ece37459c5757c.html#gaa9cd565c5f9ad461d8ece37459c5757c">vkvg_matrix_translate</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float tx, float ty)</td></tr>
<tr class="memdesc:gaa9cd565c5f9ad461d8ece37459c5757c"><td class="mdescLeft"> </td><td class="mdescRight">apply translation on matrix <a href="group__matrix_gaa9cd565c5f9ad461d8ece37459c5757c.html#gaa9cd565c5f9ad461d8ece37459c5757c">More...</a><br /></td></tr>
<tr class="separator:gaa9cd565c5f9ad461d8ece37459c5757c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2af9ac82c85388031d206e5e59b00ab9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga2af9ac82c85388031d206e5e59b00ab9.html#ga2af9ac82c85388031d206e5e59b00ab9">vkvg_matrix_scale</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float sx, float sy)</td></tr>
<tr class="memdesc:ga2af9ac82c85388031d206e5e59b00ab9"><td class="mdescLeft"> </td><td class="mdescRight">apply scale on matrix <a href="group__matrix_ga2af9ac82c85388031d206e5e59b00ab9.html#ga2af9ac82c85388031d206e5e59b00ab9">More...</a><br /></td></tr>
<tr class="separator:ga2af9ac82c85388031d206e5e59b00ab9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga00b8f362ab4e337c2ec219dbee840a76"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga00b8f362ab4e337c2ec219dbee840a76.html#ga00b8f362ab4e337c2ec219dbee840a76">vkvg_matrix_rotate</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float radians)</td></tr>
<tr class="memdesc:ga00b8f362ab4e337c2ec219dbee840a76"><td class="mdescLeft"> </td><td class="mdescRight">apply rotation on matrix <a href="group__matrix_ga00b8f362ab4e337c2ec219dbee840a76.html#ga00b8f362ab4e337c2ec219dbee840a76">More...</a><br /></td></tr>
<tr class="separator:ga00b8f362ab4e337c2ec219dbee840a76"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga696338f6b5986e8cde51cab3bd6f2050"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga696338f6b5986e8cde51cab3bd6f2050.html#ga696338f6b5986e8cde51cab3bd6f2050">vkvg_matrix_multiply</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *result, const <a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *a, const <a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *b)</td></tr>
<tr class="memdesc:ga696338f6b5986e8cde51cab3bd6f2050"><td class="mdescLeft"> </td><td class="mdescRight">matrices multiplication <a href="group__matrix_ga696338f6b5986e8cde51cab3bd6f2050.html#ga696338f6b5986e8cde51cab3bd6f2050">More...</a><br /></td></tr>
<tr class="separator:ga696338f6b5986e8cde51cab3bd6f2050"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaef5dcf4dab69857a4516cfa3770a6201"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_gaef5dcf4dab69857a4516cfa3770a6201.html#gaef5dcf4dab69857a4516cfa3770a6201">vkvg_matrix_transform_distance</a> (const <a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float *dx, float *dy)</td></tr>
<tr class="memdesc:gaef5dcf4dab69857a4516cfa3770a6201"><td class="mdescLeft"> </td><td class="mdescRight">transform distances <a href="group__matrix_gaef5dcf4dab69857a4516cfa3770a6201.html#gaef5dcf4dab69857a4516cfa3770a6201">More...</a><br /></td></tr>
<tr class="separator:gaef5dcf4dab69857a4516cfa3770a6201"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa329c7a6282aa4eb6f39b8bcc9547c1c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_gaa329c7a6282aa4eb6f39b8bcc9547c1c.html#gaa329c7a6282aa4eb6f39b8bcc9547c1c">vkvg_matrix_transform_point</a> (const <a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float *x, float *y)</td></tr>
<tr class="memdesc:gaa329c7a6282aa4eb6f39b8bcc9547c1c"><td class="mdescLeft"> </td><td class="mdescRight">transform point <a href="group__matrix_gaa329c7a6282aa4eb6f39b8bcc9547c1c.html#gaa329c7a6282aa4eb6f39b8bcc9547c1c">More...</a><br /></td></tr>
<tr class="separator:gaa329c7a6282aa4eb6f39b8bcc9547c1c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8b27d7aa1c35c520efa197e44da84ef9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vkvg_8h_a0cf53c292fd50abe53343d71673c9354.html#a0cf53c292fd50abe53343d71673c9354">vkvg_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_ga8b27d7aa1c35c520efa197e44da84ef9.html#ga8b27d7aa1c35c520efa197e44da84ef9">vkvg_matrix_invert</a> (<a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix)</td></tr>
<tr class="memdesc:ga8b27d7aa1c35c520efa197e44da84ef9"><td class="mdescLeft"> </td><td class="mdescRight">invert matrix <a href="group__matrix_ga8b27d7aa1c35c520efa197e44da84ef9.html#ga8b27d7aa1c35c520efa197e44da84ef9">More...</a><br /></td></tr>
<tr class="separator:ga8b27d7aa1c35c520efa197e44da84ef9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacd251d9fac997b79ca3060dd2d575f0e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix_gacd251d9fac997b79ca3060dd2d575f0e.html#gacd251d9fac997b79ca3060dd2d575f0e">vkvg_matrix_get_scale</a> (const <a class="el" href="structvkvg__matrix__t.html">vkvg_matrix_t</a> *matrix, float *sx, float *sy)</td></tr>
<tr class="separator:gacd251d9fac997b79ca3060dd2d575f0e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
|