641 lines
33 KiB
HTML
641 lines
33 KiB
HTML
<!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.8.17"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>PicoVGA: cMat2Df Class Reference</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="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.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>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="custom.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">PicoVGA
|
|
 <span id="projectnumber">1.0-cmake</span>
|
|
</div>
|
|
<div id="projectbrief">VGA/TV display on Raspberry Pico</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.17 -->
|
|
<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');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('classcMat2Df.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- 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="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-attribs">Data Fields</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">cMat2Df Class Reference<div class="ingroups"><a class="el" href="group__CanvasGroup.html">Canvas</a></div></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>2D Transformation Matrix
|
|
<a href="classcMat2Df.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="mat2d_8h_source.html">mat2d.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for cMat2Df:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="classcMat2Df__inherit__graph.png" border="0" usemap="#cMat2Df_inherit__map" alt="Inheritance graph"/></div>
|
|
<map name="cMat2Df_inherit__map" id="cMat2Df_inherit__map">
|
|
<area shape="rect" title="2D Transformation Matrix" alt="" coords="32,80,109,107"/>
|
|
<area shape="rect" href="classcMat2D.html" title=" " alt="" coords="5,5,136,32"/>
|
|
</map>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
|
<div class="dynheader">
|
|
Collaboration diagram for cMat2Df:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="classcMat2Df__coll__graph.png" border="0" usemap="#cMat2Df_coll__map" alt="Collaboration graph"/></div>
|
|
<map name="cMat2Df_coll__map" id="cMat2Df_coll__map">
|
|
<area shape="rect" title="2D Transformation Matrix" alt="" coords="32,80,109,107"/>
|
|
<area shape="rect" href="classcMat2D.html" title=" " alt="" coords="5,5,136,32"/>
|
|
</map>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a529afacb6148a067dd3a5a488cb97e13"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2Df.html#a529afacb6148a067dd3a5a488cb97e13">PrepDrawImg</a> (int ws, int hs, int x0, int y0, int wd, int hd, float shearx, float sheary, float r, float tx, float ty)</td></tr>
|
|
<tr class="memdesc:a529afacb6148a067dd3a5a488cb97e13"><td class="mdescLeft"> </td><td class="mdescRight">Prepare transformation matrix (for <a class="el" href="group__CanvasGroup.html#ga5d1db92659f6c11713cd0fb9c45f3637" title="Draw 8-bit image with 2D transformation matrix.">DrawImgMat()</a> function) <a href="classcMat2Df.html#a529afacb6148a067dd3a5a488cb97e13">More...</a><br /></td></tr>
|
|
<tr class="separator:a529afacb6148a067dd3a5a488cb97e13"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3665cc793ee74c64da3186b9eaf86b57"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2Df.html#a3665cc793ee74c64da3186b9eaf86b57">ExportInt</a> (int *mat) const</td></tr>
|
|
<tr class="memdesc:a3665cc793ee74c64da3186b9eaf86b57"><td class="mdescLeft"> </td><td class="mdescRight">Export matrix to int array[6]. <a href="classcMat2Df.html#a3665cc793ee74c64da3186b9eaf86b57">More...</a><br /></td></tr>
|
|
<tr class="separator:a3665cc793ee74c64da3186b9eaf86b57"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aca9180cae53757382050e363b9d8eaa0"><td class="memItemLeft" align="right" valign="top"><a id="aca9180cae53757382050e363b9d8eaa0"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#aca9180cae53757382050e363b9d8eaa0">GetX</a> (float x, float y) const</td></tr>
|
|
<tr class="memdesc:aca9180cae53757382050e363b9d8eaa0"><td class="mdescLeft"> </td><td class="mdescRight">Transform X. <br /></td></tr>
|
|
<tr class="separator:aca9180cae53757382050e363b9d8eaa0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afa5390c7e164a77456d61477b5f152b1"><td class="memItemLeft" align="right" valign="top"><a id="afa5390c7e164a77456d61477b5f152b1"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#afa5390c7e164a77456d61477b5f152b1">GetY</a> (float x, float y) const</td></tr>
|
|
<tr class="memdesc:afa5390c7e164a77456d61477b5f152b1"><td class="mdescLeft"> </td><td class="mdescRight">Transform Y. <br /></td></tr>
|
|
<tr class="separator:afa5390c7e164a77456d61477b5f152b1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1b2ec49c61df84feb3dbcb410489588f"><td class="memItemLeft" align="right" valign="top"><a id="a1b2ec49c61df84feb3dbcb410489588f"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a1b2ec49c61df84feb3dbcb410489588f">Unit</a> ()</td></tr>
|
|
<tr class="memdesc:a1b2ec49c61df84feb3dbcb410489588f"><td class="mdescLeft"> </td><td class="mdescRight">Set unit matrix. <br /></td></tr>
|
|
<tr class="separator:a1b2ec49c61df84feb3dbcb410489588f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4127207cc8695b12793cc27f66cb9d7b"><td class="memItemLeft" align="right" valign="top"><a id="a4127207cc8695b12793cc27f66cb9d7b"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a4127207cc8695b12793cc27f66cb9d7b">Copy</a> (const <a class="el" href="classcMat2D.html">cMat2D</a> *m)</td></tr>
|
|
<tr class="memdesc:a4127207cc8695b12793cc27f66cb9d7b"><td class="mdescLeft"> </td><td class="mdescRight">Copy matrix. <br /></td></tr>
|
|
<tr class="separator:a4127207cc8695b12793cc27f66cb9d7b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a585eeb0380be7dd93270c9cc29a38b66"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a585eeb0380be7dd93270c9cc29a38b66">TransX</a> (float tx)</td></tr>
|
|
<tr class="memdesc:a585eeb0380be7dd93270c9cc29a38b66"><td class="mdescLeft"> </td><td class="mdescRight">Translate in X direction. <a href="classcMat2D.html#a585eeb0380be7dd93270c9cc29a38b66">More...</a><br /></td></tr>
|
|
<tr class="separator:a585eeb0380be7dd93270c9cc29a38b66"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a07273c2b2c4ed4bb8a85209454f3e35e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a07273c2b2c4ed4bb8a85209454f3e35e">TransY</a> (float ty)</td></tr>
|
|
<tr class="memdesc:a07273c2b2c4ed4bb8a85209454f3e35e"><td class="mdescLeft"> </td><td class="mdescRight">Translate in Y direction. <a href="classcMat2D.html#a07273c2b2c4ed4bb8a85209454f3e35e">More...</a><br /></td></tr>
|
|
<tr class="separator:a07273c2b2c4ed4bb8a85209454f3e35e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a32cc6bce7146c3c6a590fcfab9a8bea3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a32cc6bce7146c3c6a590fcfab9a8bea3">ScaleX</a> (float sx)</td></tr>
|
|
<tr class="memdesc:a32cc6bce7146c3c6a590fcfab9a8bea3"><td class="mdescLeft"> </td><td class="mdescRight">Scale in X direction. <a href="classcMat2D.html#a32cc6bce7146c3c6a590fcfab9a8bea3">More...</a><br /></td></tr>
|
|
<tr class="separator:a32cc6bce7146c3c6a590fcfab9a8bea3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acff590836167542b5337812c0691d1f8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#acff590836167542b5337812c0691d1f8">ScaleY</a> (float sy)</td></tr>
|
|
<tr class="memdesc:acff590836167542b5337812c0691d1f8"><td class="mdescLeft"> </td><td class="mdescRight">Scale in Y direction. <a href="classcMat2D.html#acff590836167542b5337812c0691d1f8">More...</a><br /></td></tr>
|
|
<tr class="separator:acff590836167542b5337812c0691d1f8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0f2893809c7da4e1e65ba83afdb39fbf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a0f2893809c7da4e1e65ba83afdb39fbf">RotSC</a> (float sina, float cosa)</td></tr>
|
|
<tr class="memdesc:a0f2893809c7da4e1e65ba83afdb39fbf"><td class="mdescLeft"> </td><td class="mdescRight">Rotate, using sin and cos. <a href="classcMat2D.html#a0f2893809c7da4e1e65ba83afdb39fbf">More...</a><br /></td></tr>
|
|
<tr class="separator:a0f2893809c7da4e1e65ba83afdb39fbf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4d08fd444c5bc11af5f69d69a9853454"><td class="memItemLeft" align="right" valign="top"><a id="a4d08fd444c5bc11af5f69d69a9853454"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a4d08fd444c5bc11af5f69d69a9853454">Rot</a> (float a)</td></tr>
|
|
<tr class="memdesc:a4d08fd444c5bc11af5f69d69a9853454"><td class="mdescLeft"> </td><td class="mdescRight">Rotate, using angle. <br /></td></tr>
|
|
<tr class="separator:a4d08fd444c5bc11af5f69d69a9853454"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ade219f1406c1ca8b55d3d7202636824a"><td class="memItemLeft" align="right" valign="top"><a id="ade219f1406c1ca8b55d3d7202636824a"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#ade219f1406c1ca8b55d3d7202636824a">Rot90</a> ()</td></tr>
|
|
<tr class="memdesc:ade219f1406c1ca8b55d3d7202636824a"><td class="mdescLeft"> </td><td class="mdescRight">Rotate by 90 deg (sina=1, cosa=0) <br /></td></tr>
|
|
<tr class="separator:ade219f1406c1ca8b55d3d7202636824a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4808e7a6806717eccd1bf783d13924fa"><td class="memItemLeft" align="right" valign="top"><a id="a4808e7a6806717eccd1bf783d13924fa"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#a4808e7a6806717eccd1bf783d13924fa">Rot180</a> ()</td></tr>
|
|
<tr class="memdesc:a4808e7a6806717eccd1bf783d13924fa"><td class="mdescLeft"> </td><td class="mdescRight">Rotate by 180 deg (=flipX and flipY) (sina=0, cosa=-1) <br /></td></tr>
|
|
<tr class="separator:a4808e7a6806717eccd1bf783d13924fa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab6801fcd2e70176ee42cea2dbb02d115"><td class="memItemLeft" align="right" valign="top"><a id="ab6801fcd2e70176ee42cea2dbb02d115"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#ab6801fcd2e70176ee42cea2dbb02d115">Rot270</a> ()</td></tr>
|
|
<tr class="memdesc:ab6801fcd2e70176ee42cea2dbb02d115"><td class="mdescLeft"> </td><td class="mdescRight">Rotate by 270 deg (sina=-1, cosa=0) <br /></td></tr>
|
|
<tr class="separator:ab6801fcd2e70176ee42cea2dbb02d115"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af12ccdd989e177278663981a9099557f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#af12ccdd989e177278663981a9099557f">ShearX</a> (float dx)</td></tr>
|
|
<tr class="memdesc:af12ccdd989e177278663981a9099557f"><td class="mdescLeft"> </td><td class="mdescRight">Shear in X direction. <a href="classcMat2D.html#af12ccdd989e177278663981a9099557f">More...</a><br /></td></tr>
|
|
<tr class="separator:af12ccdd989e177278663981a9099557f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adfd4450d81833a7f267bb9532e596616"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#adfd4450d81833a7f267bb9532e596616">ShearY</a> (float dy)</td></tr>
|
|
<tr class="memdesc:adfd4450d81833a7f267bb9532e596616"><td class="mdescLeft"> </td><td class="mdescRight">Shear in Y direction. <a href="classcMat2D.html#adfd4450d81833a7f267bb9532e596616">More...</a><br /></td></tr>
|
|
<tr class="separator:adfd4450d81833a7f267bb9532e596616"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aebb11b71a3767fed49c1cec087610814"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#aebb11b71a3767fed49c1cec087610814">FlipY</a> ()</td></tr>
|
|
<tr class="memdesc:aebb11b71a3767fed49c1cec087610814"><td class="mdescLeft"> </td><td class="mdescRight">Flip in Y direction. <a href="classcMat2D.html#aebb11b71a3767fed49c1cec087610814">More...</a><br /></td></tr>
|
|
<tr class="separator:aebb11b71a3767fed49c1cec087610814"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac08bd03c42e3a4d193f0bcdb04185f51"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcMat2D.html#ac08bd03c42e3a4d193f0bcdb04185f51">FlipX</a> ()</td></tr>
|
|
<tr class="memdesc:ac08bd03c42e3a4d193f0bcdb04185f51"><td class="mdescLeft"> </td><td class="mdescRight">Flip in X direction. <a href="classcMat2D.html#ac08bd03c42e3a4d193f0bcdb04185f51">More...</a><br /></td></tr>
|
|
<tr class="separator:ac08bd03c42e3a4d193f0bcdb04185f51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
|
Data Fields</h2></td></tr>
|
|
<tr class="memitem:a26972822f42b6a4973b469e9dfccbdcd"><td class="memItemLeft" align="right" valign="top"><a id="a26972822f42b6a4973b469e9dfccbdcd"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>m11</b></td></tr>
|
|
<tr class="separator:a26972822f42b6a4973b469e9dfccbdcd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afbae0640fecd3fa015a54ea192b2d527"><td class="memItemLeft" align="right" valign="top"><a id="afbae0640fecd3fa015a54ea192b2d527"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>m12</b></td></tr>
|
|
<tr class="separator:afbae0640fecd3fa015a54ea192b2d527"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3a8b2dbfd3df5007fd571a7e81261a96"><td class="memItemLeft" align="right" valign="top"><a id="a3a8b2dbfd3df5007fd571a7e81261a96"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>m13</b></td></tr>
|
|
<tr class="separator:a3a8b2dbfd3df5007fd571a7e81261a96"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad1820d59fe6d3495994bfabf20a8f1e0"><td class="memItemLeft" align="right" valign="top"><a id="ad1820d59fe6d3495994bfabf20a8f1e0"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>m21</b></td></tr>
|
|
<tr class="separator:ad1820d59fe6d3495994bfabf20a8f1e0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0f668702426f634886fd04f02959e26f"><td class="memItemLeft" align="right" valign="top"><a id="a0f668702426f634886fd04f02959e26f"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>m22</b></td></tr>
|
|
<tr class="separator:a0f668702426f634886fd04f02959e26f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1a23e9615e90e913448213ed6e8ed781"><td class="memItemLeft" align="right" valign="top"><a id="a1a23e9615e90e913448213ed6e8ed781"></a>
|
|
float </td><td class="memItemRight" valign="bottom"><b>m23</b></td></tr>
|
|
<tr class="separator:a1a23e9615e90e913448213ed6e8ed781"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>2D Transformation Matrix </p>
|
|
<p>Some rendering functions use the <a class="el" href="classcMat2Df.html" title="2D Transformation Matrix">cMat2Df</a> transformation matrix to define image transformation. The matrix has 6 numeric elements of float type. The transformation is prepared by setting the initial state with the Unit function and then entering the transformations one by one. Using the matrix, operations are performed on the image as if the operations were entered sequentially. </p>
|
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a529afacb6148a067dd3a5a488cb97e13"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a529afacb6148a067dd3a5a488cb97e13">◆ </a></span>PrepDrawImg()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void cMat2Df::PrepDrawImg </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>ws</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>hs</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>x0</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>y0</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>wd</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>hd</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>shearx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>sheary</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>tx</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>ty</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Prepare transformation matrix (for <a class="el" href="group__CanvasGroup.html#ga5d1db92659f6c11713cd0fb9c45f3637" title="Draw 8-bit image with 2D transformation matrix.">DrawImgMat()</a> function) </p>
|
|
<p>The order of operations is chosen as if the image is first moved to the point tx and ty, scaled, skewed, then rotated and finally moved to the target coordinates. </p><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ws</td><td>Source image width </td></tr>
|
|
<tr><td class="paramname">hs</td><td>Source image height </td></tr>
|
|
<tr><td class="paramname">x0</td><td>Reference point X on source image </td></tr>
|
|
<tr><td class="paramname">y0</td><td>Reference point Y on source image </td></tr>
|
|
<tr><td class="paramname">wd</td><td>Destination image width (negative = flip image in X direction) </td></tr>
|
|
<tr><td class="paramname">hd</td><td>Destination image height (negative = flip image in Y direction) </td></tr>
|
|
<tr><td class="paramname">shearx</td><td>Shear image in X direction </td></tr>
|
|
<tr><td class="paramname">sheary</td><td>Shear image in Y direction </td></tr>
|
|
<tr><td class="paramname">r</td><td>Rotate image (angle in radians) </td></tr>
|
|
<tr><td class="paramname">tx</td><td>Shift in X direction (ws = whole image width) </td></tr>
|
|
<tr><td class="paramname">ty</td><td>Shift in Y direction (hs = whole image height) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3665cc793ee74c64da3186b9eaf86b57"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3665cc793ee74c64da3186b9eaf86b57">◆ </a></span>ExportInt()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void cMat2Df::ExportInt </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"><em>mat</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Export matrix to int array[6]. </p>
|
|
<p>After transformation, the lower 12 bits of the number contain the decimal part of the number, the upper 20 bits contain the integer part of the number. Rendering functions require this integer form of the transformation matrix. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a585eeb0380be7dd93270c9cc29a38b66"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a585eeb0380be7dd93270c9cc29a38b66">◆ </a></span>TransX()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::TransX </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>tx</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Translate in X direction. </p>
|
|
<pre>
|
|
1 0 tx m11 m12 m13 m11 m12 m13+tx
|
|
0 1 0 * m21 m22 m23 = m21 m22 m23
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="a07273c2b2c4ed4bb8a85209454f3e35e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a07273c2b2c4ed4bb8a85209454f3e35e">◆ </a></span>TransY()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::TransY </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>ty</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Translate in Y direction. </p>
|
|
<pre>
|
|
1 0 0 m11 m12 m13 m11 m12 m13
|
|
0 1 ty * m21 m22 m23 = m21 m22 m23+ty
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="a32cc6bce7146c3c6a590fcfab9a8bea3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a32cc6bce7146c3c6a590fcfab9a8bea3">◆ </a></span>ScaleX()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::ScaleX </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>sx</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Scale in X direction. </p>
|
|
<pre>
|
|
sx 0 0 m11 m12 m13 m11*sx m12*sx m13*sx
|
|
0 1 0 * m21 m22 m23 = m21 m22 m23
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="acff590836167542b5337812c0691d1f8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acff590836167542b5337812c0691d1f8">◆ </a></span>ScaleY()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::ScaleY </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>sy</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Scale in Y direction. </p>
|
|
<pre>
|
|
1 0 0 m11 m12 m13 m11 m12 m13
|
|
0 sy 0 * m21 m22 m23 = m21*sy m22*sy m23*sy
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="a0f2893809c7da4e1e65ba83afdb39fbf"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0f2893809c7da4e1e65ba83afdb39fbf">◆ </a></span>RotSC()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::RotSC </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>sina</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>cosa</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Rotate, using sin and cos. </p>
|
|
<pre>
|
|
cosa -sina 0 m11 m12 m13 m11*cosa-m21*sina m12*cosa-m22*sina m13*cosa-m23*sina
|
|
sina cosa 0 * m21 m22 m23 = m11*sina+m21*cosa m12*sina+m22*cosa m13*sina+m23*cosa
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="af12ccdd989e177278663981a9099557f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af12ccdd989e177278663981a9099557f">◆ </a></span>ShearX()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::ShearX </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>dx</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Shear in X direction. </p>
|
|
<pre>
|
|
1 dx 0 m11 m12 m13 m11+m21*dx m12+m22*dx m13+m23*dx
|
|
0 1 0 * m21 m22 m23 = m21 m22 m23
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="adfd4450d81833a7f267bb9532e596616"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adfd4450d81833a7f267bb9532e596616">◆ </a></span>ShearY()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::ShearY </td>
|
|
<td>(</td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>dy</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Shear in Y direction. </p>
|
|
<pre>
|
|
1 0 0 m11 m12 m13 m11 m12 m13
|
|
dy 1 0 * m21 m22 m23 = m21+m11*dy m22+m12*dy m23+m13*dy
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="aebb11b71a3767fed49c1cec087610814"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aebb11b71a3767fed49c1cec087610814">◆ </a></span>FlipY()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::FlipY</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Flip in Y direction. </p>
|
|
<pre>
|
|
1 0 0 m11 m12 m13 m11 m12 m13
|
|
0 -1 0 * m21 m22 m23 = -m21 -m22 -m23
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="ac08bd03c42e3a4d193f0bcdb04185f51"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac08bd03c42e3a4d193f0bcdb04185f51">◆ </a></span>FlipX()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void <a class="el" href="classcMat2D.html">cMat2D</a>< float >::FlipX</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Flip in X direction. </p>
|
|
<pre>
|
|
-1 0 0 m11 m12 m13 -m11 -m12 -m13
|
|
0 1 0 * m21 m22 m23 = m21 m22 m23
|
|
0 0 1 0 0 1 0 0 1
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>src/util/<a class="el" href="mat2d_8h_source.html">mat2d.h</a></li>
|
|
<li>src/util/mat2d.cpp</li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="classcMat2Df.html">cMat2Df</a></li>
|
|
<li class="footer">Generated by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|