libctru/structQtmTrackingData.html
2024-11-03 20:36:34 +00:00

181 lines
14 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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libctru: QtmTrackingData Struct 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="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" />
</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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libctru
&#160;<span id="projectnumber">v2.4.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @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&amp;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>
<!-- 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><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle">
<div class="title">QtmTrackingData Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>QTM processed eye tracking data, suitable for 3D programming.
<a href="structQtmTrackingData.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="qtm_8h_source.html">qtm.h</a>&gt;</code></p>
<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:a81c86ec24c8151b02bfa0c0845502759"><td class="memItemLeft" align="right" valign="top"><a id="a81c86ec24c8151b02bfa0c0845502759"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a81c86ec24c8151b02bfa0c0845502759">eyesTracked</a></td></tr>
<tr class="memdesc:a81c86ec24c8151b02bfa0c0845502759"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eye position detected or tracked with some confidence, equals (confidenceLevel &gt; 0). Even if false, QTM may make a guess. <br /></td></tr>
<tr class="separator:a81c86ec24c8151b02bfa0c0845502759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a130574dee2dff12768d1db1ac618d0a3"><td class="memItemLeft" align="right" valign="top"><a id="a130574dee2dff12768d1db1ac618d0a3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a130574dee2dff12768d1db1ac618d0a3">faceDetected</a></td></tr>
<tr class="memdesc:a130574dee2dff12768d1db1ac618d0a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether or not the entirety of the user's face has been detected with good confidence. <br /></td></tr>
<tr class="separator:a130574dee2dff12768d1db1ac618d0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0422797ffd767ce2bd87243564b3b5ed"><td class="memItemLeft" align="right" valign="top"><a id="a0422797ffd767ce2bd87243564b3b5ed"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a0422797ffd767ce2bd87243564b3b5ed">eyesDetected</a></td></tr>
<tr class="memdesc:a0422797ffd767ce2bd87243564b3b5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether or not the user's eyes have actually been detected with full confidence. <br /></td></tr>
<tr class="separator:a0422797ffd767ce2bd87243564b3b5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3cb37a2088c153c19bd224b4e4093c"><td class="memItemLeft" align="right" valign="top"><a id="a8a3cb37a2088c153c19bd224b4e4093c"></a>
<a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a8a3cb37a2088c153c19bd224b4e4093c">_unused</a></td></tr>
<tr class="memdesc:a8a3cb37a2088c153c19bd224b4e4093c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unused. <br /></td></tr>
<tr class="separator:a8a3cb37a2088c153c19bd224b4e4093c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ec9f7b0d8ab8552cb4dc7d6ea6b890a"><td class="memItemLeft" align="right" valign="top"><a id="a6ec9f7b0d8ab8552cb4dc7d6ea6b890a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a6ec9f7b0d8ab8552cb4dc7d6ea6b890a">clamped</a></td></tr>
<tr class="memdesc:a6ec9f7b0d8ab8552cb4dc7d6ea6b890a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether or not the normalized eye coordinates have been clamped after accounting for lens distortion. <br /></td></tr>
<tr class="separator:a6ec9f7b0d8ab8552cb4dc7d6ea6b890a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15438aec0e15924173c9e6efa6e4147d"><td class="memItemLeft" align="right" valign="top"><a id="a15438aec0e15924173c9e6efa6e4147d"></a>
<a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a15438aec0e15924173c9e6efa6e4147d">_padding</a> [3]</td></tr>
<tr class="memdesc:a15438aec0e15924173c9e6efa6e4147d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Padding. <br /></td></tr>
<tr class="separator:a15438aec0e15924173c9e6efa6e4147d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cd07b8b66dc647b2955c2a625f89c50"><td class="memItemLeft" align="right" valign="top"><a id="a5cd07b8b66dc647b2955c2a625f89c50"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a5cd07b8b66dc647b2955c2a625f89c50">confidenceLevel</a></td></tr>
<tr class="memdesc:a5cd07b8b66dc647b2955c2a625f89c50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eye tracking confidence level (0 to 1). <br /></td></tr>
<tr class="separator:a5cd07b8b66dc647b2955c2a625f89c50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeae1a19ff589dca16c78d5aa628f7c41"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#aeae1a19ff589dca16c78d5aa628f7c41">eyeCameraCoordinates</a> [<a class="el" href="qtm_8h.html#ae9d5eee1a0307d78bf728c1491422717ab0084cc2cfc9928b4d6d98d584f4cb68">QTM_EYE_NUM</a>][2]</td></tr>
<tr class="memdesc:aeae1a19ff589dca16c78d5aa628f7c41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalized eye coordinates, for each eye, after accounting for lens distortion, centered around camera. <a href="structQtmTrackingData.html#aeae1a19ff589dca16c78d5aa628f7c41">More...</a><br /></td></tr>
<tr class="separator:aeae1a19ff589dca16c78d5aa628f7c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d5ce7c6318dd42a8ddfe9fb5c64f040"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a5d5ce7c6318dd42a8ddfe9fb5c64f040">eyeWorldCoordinates</a> [<a class="el" href="qtm_8h.html#ae9d5eee1a0307d78bf728c1491422717ab0084cc2cfc9928b4d6d98d584f4cb68">QTM_EYE_NUM</a>][2]</td></tr>
<tr class="memdesc:a5d5ce7c6318dd42a8ddfe9fb5c64f040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalized eye coordinates, for each eye, in world space. <a href="structQtmTrackingData.html#a5d5ce7c6318dd42a8ddfe9fb5c64f040">More...</a><br /></td></tr>
<tr class="separator:a5d5ce7c6318dd42a8ddfe9fb5c64f040"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3eb6c70d25c1b87af7a41b473e2450e6"><td class="memItemLeft" align="right" valign="top"><a id="a3eb6c70d25c1b87af7a41b473e2450e6"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a3eb6c70d25c1b87af7a41b473e2450e6">dPitch</a></td></tr>
<tr class="memdesc:a3eb6c70d25c1b87af7a41b473e2450e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference in gyro pitch from position at console boot. <br /></td></tr>
<tr class="separator:a3eb6c70d25c1b87af7a41b473e2450e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83257168960f6fcaadc0d569e0dbf1ae"><td class="memItemLeft" align="right" valign="top"><a id="a83257168960f6fcaadc0d569e0dbf1ae"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#a83257168960f6fcaadc0d569e0dbf1ae">dYaw</a></td></tr>
<tr class="memdesc:a83257168960f6fcaadc0d569e0dbf1ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference in gyro yaw from position at console boot. <br /></td></tr>
<tr class="separator:a83257168960f6fcaadc0d569e0dbf1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affe5182f24a5e77895382e987e3f65b4"><td class="memItemLeft" align="right" valign="top"><a id="affe5182f24a5e77895382e987e3f65b4"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#affe5182f24a5e77895382e987e3f65b4">dRoll</a></td></tr>
<tr class="memdesc:affe5182f24a5e77895382e987e3f65b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference in gyro roll from position at console boot. <br /></td></tr>
<tr class="separator:affe5182f24a5e77895382e987e3f65b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf0b2752e501507f8a51e16c689c2032"><td class="memItemLeft" align="right" valign="top"><a id="abf0b2752e501507f8a51e16c689c2032"></a>
<a class="el" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structQtmTrackingData.html#abf0b2752e501507f8a51e16c689c2032">samplingTick</a></td></tr>
<tr class="memdesc:abf0b2752e501507f8a51e16c689c2032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time point the current measurements were made. <br /></td></tr>
<tr class="separator:abf0b2752e501507f8a51e16c689c2032"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>QTM processed eye tracking data, suitable for 3D programming. </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="aeae1a19ff589dca16c78d5aa628f7c41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeae1a19ff589dca16c78d5aa628f7c41">&#9670;&nbsp;</a></span>eyeCameraCoordinates</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float QtmTrackingData::eyeCameraCoordinates[<a class="el" href="qtm_8h.html#ae9d5eee1a0307d78bf728c1491422717ab0084cc2cfc9928b4d6d98d584f4cb68">QTM_EYE_NUM</a>][2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>Normalized eye coordinates, for each eye, after accounting for lens distortion, centered around camera. </p>
<p>X coord is in the -1 to 1 range, and Y coord range depends on inverse aspect ratio (-0.75 to 0.75 on real hardware). </p><dl class="section note"><dt>Note</dt><dd>On real hardware, X coord equals <code>((rawX / 160.0) - 1.00) * 1.0639</code> before clamping. </dd>
<dd>
On real hardware, Y coord equals <code>((rawY / 160.0) - 0.75) * 1.0637</code> before clamping. </dd></dl>
</div>
</div>
<a id="a5d5ce7c6318dd42a8ddfe9fb5c64f040"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d5ce7c6318dd42a8ddfe9fb5c64f040">&#9670;&nbsp;</a></span>eyeWorldCoordinates</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">float QtmTrackingData::eyeWorldCoordinates[<a class="el" href="qtm_8h.html#ae9d5eee1a0307d78bf728c1491422717ab0084cc2cfc9928b4d6d98d584f4cb68">QTM_EYE_NUM</a>][2]</td>
</tr>
</table>
</div><div class="memdoc">
<p>Normalized eye coordinates, for each eye, in world space. </p>
<p>Corresponds to <a class="el" href="structQtmTrackingData.html#aeae1a19ff589dca16c78d5aa628f7c41">eyeCameraCoordinates</a> multiplied by tangent of field of view. </p><dl class="section note"><dt>Note</dt><dd>On real hardware, X coord equals <code>eyeCameraCoordinates.x * tan(64.9 deg / 2)</code>. </dd>
<dd>
On real hardware, Y coord equals <code>eyeCameraCoordinates.x * tan(51.0 deg / 2)</code>. </dd></dl>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/3ds/services/<a class="el" href="qtm_8h_source.html">qtm.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<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>