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
|
<!-- 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" />
<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">
<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>
</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>
|