summaryrefslogtreecommitdiffstats
path: root/dev/MinGfx/docs/html/graphics__app_8h_source.html
blob: 2353eb843cce14f0de8d0d07c3accc237b19d6d0 (plain) (blame)
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>MinGfx Toolkit: src/graphics_app.h Source File</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/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.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 style="padding-left: 0.5em;">
   <div id="projectname">MinGfx Toolkit
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">A minimal library for writing cross-platform (Windows, OSX, linux) graphics programs.</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 id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">graphics_app.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="graphics__app_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> This file is part of the MinGfx Project.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> Copyright (c) 2017,2018 Regents of the University of Minnesota.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> All Rights Reserved.</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> Original Author(s) of this File:</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">    Dan Keefe, 2017, University of Minnesota</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">    </span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> Author(s) of Significant Updates/Modifications to the File:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">    ... </span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#ifndef SRC_GRAPHICS_APP_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#define SRC_GRAPHICS_APP_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// disable warnings for this 3rd party code</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#pragma warning ( push, 0 )</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;nanogui/nanogui.h&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#pragma warning ( pop )</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="point2_8h.html">point2.h</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="vector2_8h.html">vector2.h</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemingfx.html">mingfx</a> {</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html">  135</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmingfx_1_1_graphics_app.html">GraphicsApp</a> {</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#abf0b48c7d8e5325ab038fddbe1c38b5b">  144</a></span>&#160;    <a class="code" href="classmingfx_1_1_graphics_app.html#abf0b48c7d8e5325ab038fddbe1c38b5b">GraphicsApp</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keyword">const</span> std::string &amp;caption);</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#aab7925c6b844e6bef428feacf4aa9afb">  148</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmingfx_1_1_graphics_app.html#aab7925c6b844e6bef428feacf4aa9afb">~GraphicsApp</a>();</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="comment">// Callback methods -- override these and fill in to respond to user</span></div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="comment">// input events.</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a23a780feda9b52eea7319a53b204ce8f">  165</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a23a780feda9b52eea7319a53b204ce8f">OnMouseMove</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos, <span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;delta) {}</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#ae12d9b192a2167a71e0c103405addb17">  174</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#ae12d9b192a2167a71e0c103405addb17">OnLeftMouseDown</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {}</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a56d350a8b030998709a51630753d509b">  187</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a56d350a8b030998709a51630753d509b">OnLeftMouseDrag</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos, <span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;delta) {}</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    </div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a536dbadf0b8a11ef59d7e855ca43f613">  196</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a536dbadf0b8a11ef59d7e855ca43f613">OnLeftMouseUp</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {}</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    </div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a588315d5c45490b440a764af2bc5bd48">  200</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a588315d5c45490b440a764af2bc5bd48">OnMiddleMouseDown</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {}</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    </div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#ac7628fece754c0ac4875791e19712dc6">  203</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#ac7628fece754c0ac4875791e19712dc6">OnMiddleMouseDrag</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos, <span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;delta) {}</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a378b8a102775eeb01a6da9dd68482d08">  206</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a378b8a102775eeb01a6da9dd68482d08">OnMiddleMouseUp</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {}</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    </div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    </div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a903f94b82cc10f32039ff3f2ba368a9c">  210</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a903f94b82cc10f32039ff3f2ba368a9c">OnRightMouseDown</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {}</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a00ad5039af2f428a08fe45751a9731c7">  213</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a00ad5039af2f428a08fe45751a9731c7">OnRightMouseDrag</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos, <span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;delta) {}</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    </div>
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#ad7c33791c44afc87ce789874f3002ca3">  216</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#ad7c33791c44afc87ce789874f3002ca3">OnRightMouseUp</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {}</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    </div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a002560456139e537877d079978db4b01">  225</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a002560456139e537877d079978db4b01">OnKeyDown</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *c, <span class="keywordtype">int</span> modifiers) {}</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a1d5831953b37fae615fbd1bf527214b0">  233</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a1d5831953b37fae615fbd1bf527214b0">OnKeyRepeat</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *c, <span class="keywordtype">int</span> modifiers) {}</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    </div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a8376ef8eb0840b229a2301f995db3f6c">  241</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a8376ef8eb0840b229a2301f995db3f6c">OnKeyUp</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *c, <span class="keywordtype">int</span> modifiers) {}</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    </div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    </div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#abcf1935e92550bcda311cac62f312952">  247</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#abcf1935e92550bcda311cac62f312952">OnSpecialKeyDown</a>(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> modifiers) {}</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a8362762489e287edfa59617a6602db22">  251</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a8362762489e287edfa59617a6602db22">OnSpecialKeyRepeat</a>(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> modifiers) {}</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    </div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a0deb6da45fc0d3980e44556a861c7a14">  255</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a0deb6da45fc0d3980e44556a861c7a14">OnSpecialKeyUp</a>(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> modifiers) {}</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#adafdc4631db256fefce3c4ffdfd5086a">  261</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#adafdc4631db256fefce3c4ffdfd5086a">OnWindowResize</a>(<span class="keywordtype">int</span> new_width, <span class="keywordtype">int</span> new_height) {}</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    </div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    </div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a5ee9ae3d14e76c949979a8008687d6c9">  271</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a5ee9ae3d14e76c949979a8008687d6c9">Run</a>();</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    </div>
<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#adfe77d841f43961b299ea6159477968a">  284</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#adfe77d841f43961b299ea6159477968a">InitNanoGUI</a>() {}</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    </div>
<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a96196b37f8b488b64072ec74b5d2b0b3">  297</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a96196b37f8b488b64072ec74b5d2b0b3">InitOpenGL</a>() {}</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a9e2b4cd7eeabe1ace9d5e9220349fbaa">  306</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a9e2b4cd7eeabe1ace9d5e9220349fbaa">UpdateSimulation</a>(<span class="keywordtype">double</span> dt) {}</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    </div>
<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a688f12675da58210e8ec2ffcda4923d0">  311</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a688f12675da58210e8ec2ffcda4923d0">DrawUsingNanoVG</a>(NVGcontext *ctx) {}</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    </div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a5a858fd10651f7617491f37b49dbf8ca">  317</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a5a858fd10651f7617491f37b49dbf8ca">DrawUsingOpenGL</a>() {}</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    </div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a60688614e5dfeaabf57f8825cdaa08ac">  322</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a60688614e5dfeaabf57f8825cdaa08ac">IsKeyDown</a>(<span class="keywordtype">int</span> key);</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    </div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a5b78d79192180a6ef5271d2a2b2d1cc7">  325</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a5b78d79192180a6ef5271d2a2b2d1cc7">IsLeftMouseDown</a>();</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    </div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a941f7598400073bfa93aa194a3773434">  328</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a941f7598400073bfa93aa194a3773434">IsMiddleMouseDown</a>();</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    </div>
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a4aa30e3d33731178a9162454a81be08d">  331</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a4aa30e3d33731178a9162454a81be08d">IsRightMouseDown</a>();</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    </div>
<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a1c682fa2dd0bce855e1e32ffeac532b0">  334</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a1c682fa2dd0bce855e1e32ffeac532b0">window_width</a>();</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    </div>
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#ad7a641f7ccf174cd0a059347b623e016">  337</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classmingfx_1_1_graphics_app.html#ad7a641f7ccf174cd0a059347b623e016">window_height</a>();</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    </div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#ad596e69d030e7689ad91eaaec6975696">  343</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classmingfx_1_1_graphics_app.html#ad596e69d030e7689ad91eaaec6975696">framebuffer_width</a>();</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    </div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#af58153eb104f53216a3e67de2a472f32">  349</a></span>&#160;    <span class="keyword">virtual</span>  <span class="keywordtype">int</span> <a class="code" href="classmingfx_1_1_graphics_app.html#af58153eb104f53216a3e67de2a472f32">framebuffer_height</a>();</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160; </div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#ac682691ee96ea32037abafd74d144a23">  352</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="classmingfx_1_1_graphics_app.html#ac682691ee96ea32037abafd74d144a23">aspect_ratio</a>();</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    </div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    </div>
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a94b19404e61411ef64c0ddde8ad6c07a">  359</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> <a class="code" href="classmingfx_1_1_graphics_app.html#a94b19404e61411ef64c0ddde8ad6c07a">PixelsToNormalizedDeviceCoords</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pointInPixels);</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    </div>
<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a6141ec6adc29572ee99ca26cf90e6248">  365</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> <a class="code" href="classmingfx_1_1_graphics_app.html#a6141ec6adc29572ee99ca26cf90e6248">NormalizedDeviceCoordsToPixels</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pointInNDC);</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    </div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    </div>
<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a4e8ac965474de9046448b8811bf25dd1">  372</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> <a class="code" href="classmingfx_1_1_graphics_app.html#a4e8ac965474de9046448b8811bf25dd1">PixelsToNormalizedDeviceCoords</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;vectorInPixels);</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    </div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a45596da36aa3905e7c752826a7fd9f93">  378</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> <a class="code" href="classmingfx_1_1_graphics_app.html#a45596da36aa3905e7c752826a7fd9f93">NormalizedDeviceCoordsToPixels</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;pointInNDC);</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    </div>
<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a471951dbf45ffa88027cb92707443646">  382</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a471951dbf45ffa88027cb92707443646">ReadZValueAtPixel</a>(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pointInPixels, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> whichBuffer = GL_BACK);</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#adc68196c3f03bd0608c41f6e4d7dad16">  385</a></span>&#160;    <span class="keyword">virtual</span> nanogui::Screen* <a class="code" href="classmingfx_1_1_graphics_app.html#adc68196c3f03bd0608c41f6e4d7dad16">screen</a>();</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; </div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#abd0ee14f7e12146000cdb3532d54ba94">  388</a></span>&#160;    <span class="keyword">virtual</span> GLFWwindow* <a class="code" href="classmingfx_1_1_graphics_app.html#abd0ee14f7e12146000cdb3532d54ba94">window</a>();</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160; </div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a0db71b2465e12a8aef4eefbe8b9fcee5">  393</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a0db71b2465e12a8aef4eefbe8b9fcee5">ResizeWindow</a>(<span class="keywordtype">int</span> new_width, <span class="keywordtype">int</span> new_height);</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    </div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    </div>
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classmingfx_1_1_graphics_app.html#a04beb462aa04371dc86d807838f999e1">  403</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmingfx_1_1_graphics_app.html#a04beb462aa04371dc86d807838f999e1">InitGraphicsContext</a>();</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; </div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keywordtype">bool</span> cursor_pos_glfw_cb(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y);</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    <span class="keywordtype">bool</span> mouse_button_glfw_cb(<span class="keywordtype">int</span> button, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> modifiers);</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="keywordtype">bool</span> key_glfw_cb(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods);</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keywordtype">bool</span> char_glfw_cb(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codepoint);</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordtype">bool</span> drop_glfw_cb(<span class="keywordtype">int</span> count, <span class="keyword">const</span> <span class="keywordtype">char</span> **filenames);</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keywordtype">bool</span> scroll_glfw_cb(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y);</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <span class="keywordtype">bool</span> resize_glfw_cb(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    </div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> mouse_move(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos, <span class="keyword">const</span> <a class="code" href="classmingfx_1_1_vector2.html">Vector2</a> &amp;delta) {</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a23a780feda9b52eea7319a53b204ce8f">OnMouseMove</a>(pos, delta);</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    }</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> left_mouse_down(<span class="keyword">const</span> <a class="code" href="classmingfx_1_1_point2.html">Point2</a> &amp;pos) {</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#ae12d9b192a2167a71e0c103405addb17">OnLeftMouseDown</a>(pos);</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    }</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> left_mouse_drag(<span class="keyword">const</span> Point2 &amp;pos, <span class="keyword">const</span> Vector2 &amp;delta) {</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a56d350a8b030998709a51630753d509b">OnLeftMouseDrag</a>(pos, delta);</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    }</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> left_mouse_up(<span class="keyword">const</span> Point2 &amp;pos) {</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a536dbadf0b8a11ef59d7e855ca43f613">OnLeftMouseUp</a>(pos);</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    }</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> middle_mouse_down(<span class="keyword">const</span> Point2 &amp;pos) {</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a588315d5c45490b440a764af2bc5bd48">OnMiddleMouseDown</a>(pos);</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    }</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> middle_mouse_drag(<span class="keyword">const</span> Point2 &amp;pos, <span class="keyword">const</span> Vector2 &amp;delta) {</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#ac7628fece754c0ac4875791e19712dc6">OnMiddleMouseDrag</a>(pos, delta);</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    }</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> middle_mouse_up(<span class="keyword">const</span> Point2 &amp;pos) {</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a378b8a102775eeb01a6da9dd68482d08">OnMiddleMouseUp</a>(pos);</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    }</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> right_mouse_down(<span class="keyword">const</span> Point2 &amp;pos) {</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a903f94b82cc10f32039ff3f2ba368a9c">OnRightMouseDown</a>(pos);</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    }</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> right_mouse_drag(<span class="keyword">const</span> Point2 &amp;pos, <span class="keyword">const</span> Vector2 &amp;delta) {</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a00ad5039af2f428a08fe45751a9731c7">OnRightMouseDrag</a>(pos, delta);</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    }</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> right_mouse_up(<span class="keyword">const</span> Point2 &amp;pos) {</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#ad7c33791c44afc87ce789874f3002ca3">OnRightMouseUp</a>(pos);</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    }</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> key_down(<span class="keyword">const</span> <span class="keywordtype">char</span> *c, <span class="keywordtype">int</span> modifiers) {</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a002560456139e537877d079978db4b01">OnKeyDown</a>(c, modifiers);</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    }</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> key_repeat(<span class="keyword">const</span> <span class="keywordtype">char</span> *c, <span class="keywordtype">int</span> modifiers) {</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a1d5831953b37fae615fbd1bf527214b0">OnKeyRepeat</a>(c, modifiers);</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    }</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> key_up(<span class="keyword">const</span> <span class="keywordtype">char</span> *c, <span class="keywordtype">int</span> modifiers) {</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a8376ef8eb0840b229a2301f995db3f6c">OnKeyUp</a>(c, modifiers);</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    }</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> special_key_down(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> modifiers) {</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#abcf1935e92550bcda311cac62f312952">OnSpecialKeyDown</a>(key, scancode, modifiers);</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    }</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> special_key_repeat(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> modifiers) {</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a8362762489e287edfa59617a6602db22">OnSpecialKeyRepeat</a>(key, scancode, modifiers);</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    }</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> special_key_up(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> modifiers) {</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <a class="code" href="classmingfx_1_1_graphics_app.html#a0deb6da45fc0d3980e44556a861c7a14">OnSpecialKeyUp</a>(key, scancode, modifiers);</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    }</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    <span class="keywordtype">bool</span> graphicsInitialized_;</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <span class="keywordtype">int</span> width_;</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    <span class="keywordtype">int</span> height_;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    <span class="keyword">const</span> std::string caption_;</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    nanogui::Screen *screen_;</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    GLFWwindow* window_;</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="keywordtype">double</span> lastDrawT_;</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    Point2 lastMouse_;</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="keywordtype">bool</span> leftDown_;</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordtype">bool</span> middleDown_;</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordtype">bool</span> rightDown_;</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;};</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160; </div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;} <span class="comment">// end namespace</span></div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160; </div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html">mingfx::GraphicsApp</a></div><div class="ttdoc">This is the main application base class for the MinGfx Toolkit.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00135">graphics_app.h:135</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a002560456139e537877d079978db4b01"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a002560456139e537877d079978db4b01">mingfx::GraphicsApp::OnKeyDown</a></div><div class="ttdeci">virtual void OnKeyDown(const char *c, int modifiers)</div><div class="ttdoc">Transforms a keyboard down event into the actual character typed.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00225">graphics_app.h:225</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a00ad5039af2f428a08fe45751a9731c7"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a00ad5039af2f428a08fe45751a9731c7">mingfx::GraphicsApp::OnRightMouseDrag</a></div><div class="ttdeci">virtual void OnRightMouseDrag(const Point2 &amp;pos, const Vector2 &amp;delta)</div><div class="ttdoc">If the mouse button is held down and the mouse has moved in the past frame then this function will be...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00213">graphics_app.h:213</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a04beb462aa04371dc86d807838f999e1"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a04beb462aa04371dc86d807838f999e1">mingfx::GraphicsApp::InitGraphicsContext</a></div><div class="ttdeci">virtual void InitGraphicsContext()</div><div class="ttdoc">Users cannot make any graphics calls (e.g., setting the clear color, saving mesh data to the GPU) unt...</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a0db71b2465e12a8aef4eefbe8b9fcee5"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a0db71b2465e12a8aef4eefbe8b9fcee5">mingfx::GraphicsApp::ResizeWindow</a></div><div class="ttdeci">virtual void ResizeWindow(int new_width, int new_height)</div><div class="ttdoc">Cause the graphics windows to resize programmatically rather than by dragging on the corner manually.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a0deb6da45fc0d3980e44556a861c7a14"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a0deb6da45fc0d3980e44556a861c7a14">mingfx::GraphicsApp::OnSpecialKeyUp</a></div><div class="ttdeci">virtual void OnSpecialKeyUp(int key, int scancode, int modifiers)</div><div class="ttdoc">The values for key, scancode, and modifiers are documented here: http://www.glfw.org/docs/latest/grou...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00255">graphics_app.h:255</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a1c682fa2dd0bce855e1e32ffeac532b0"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a1c682fa2dd0bce855e1e32ffeac532b0">mingfx::GraphicsApp::window_width</a></div><div class="ttdeci">virtual int window_width()</div><div class="ttdoc">Returns the current width of the client area of the window in pixels.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a1d5831953b37fae615fbd1bf527214b0"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a1d5831953b37fae615fbd1bf527214b0">mingfx::GraphicsApp::OnKeyRepeat</a></div><div class="ttdeci">virtual void OnKeyRepeat(const char *c, int modifiers)</div><div class="ttdoc">Transforms a keyboard repeat event into the actual character typed.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00233">graphics_app.h:233</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a23a780feda9b52eea7319a53b204ce8f"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a23a780feda9b52eea7319a53b204ce8f">mingfx::GraphicsApp::OnMouseMove</a></div><div class="ttdeci">virtual void OnMouseMove(const Point2 &amp;pos, const Vector2 &amp;delta)</div><div class="ttdoc">If the mouse has moved in the past frame and no mouse buttons are currently pressed,...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00165">graphics_app.h:165</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a378b8a102775eeb01a6da9dd68482d08"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a378b8a102775eeb01a6da9dd68482d08">mingfx::GraphicsApp::OnMiddleMouseUp</a></div><div class="ttdeci">virtual void OnMiddleMouseUp(const Point2 &amp;pos)</div><div class="ttdoc">If the mouse button was released since the last frame, then this function will be called to notify yo...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00206">graphics_app.h:206</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a45596da36aa3905e7c752826a7fd9f93"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a45596da36aa3905e7c752826a7fd9f93">mingfx::GraphicsApp::NormalizedDeviceCoordsToPixels</a></div><div class="ttdeci">virtual Vector2 NormalizedDeviceCoordsToPixels(const Vector2 &amp;pointInNDC)</div><div class="ttdoc">Transforms a vector in normalized device coordinates (top left = (-1,1) bottom right (1,...</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a471951dbf45ffa88027cb92707443646"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a471951dbf45ffa88027cb92707443646">mingfx::GraphicsApp::ReadZValueAtPixel</a></div><div class="ttdeci">virtual float ReadZValueAtPixel(const Point2 &amp;pointInPixels, unsigned int whichBuffer=GL_BACK)</div><div class="ttdoc">Returns the z buffer value under the specified pixel. z will be 0 at the near plane and +1 at the far...</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a4aa30e3d33731178a9162454a81be08d"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a4aa30e3d33731178a9162454a81be08d">mingfx::GraphicsApp::IsRightMouseDown</a></div><div class="ttdeci">virtual bool IsRightMouseDown()</div><div class="ttdoc">True if the right mouse button is currently held down.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a4e8ac965474de9046448b8811bf25dd1"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a4e8ac965474de9046448b8811bf25dd1">mingfx::GraphicsApp::PixelsToNormalizedDeviceCoords</a></div><div class="ttdeci">virtual Vector2 PixelsToNormalizedDeviceCoords(const Vector2 &amp;vectorInPixels)</div><div class="ttdoc">Transforms a vector in viewport coordinates (pixels where top left = (0,0) and bottom right = (window...</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a536dbadf0b8a11ef59d7e855ca43f613"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a536dbadf0b8a11ef59d7e855ca43f613">mingfx::GraphicsApp::OnLeftMouseUp</a></div><div class="ttdeci">virtual void OnLeftMouseUp(const Point2 &amp;pos)</div><div class="ttdoc">If the mouse button was released since the last frame, then this function will be called to notify yo...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00196">graphics_app.h:196</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a56d350a8b030998709a51630753d509b"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a56d350a8b030998709a51630753d509b">mingfx::GraphicsApp::OnLeftMouseDrag</a></div><div class="ttdeci">virtual void OnLeftMouseDrag(const Point2 &amp;pos, const Vector2 &amp;delta)</div><div class="ttdoc">If the mouse button is held down and the mouse has moved in the past frame then this function will be...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00187">graphics_app.h:187</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a588315d5c45490b440a764af2bc5bd48"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a588315d5c45490b440a764af2bc5bd48">mingfx::GraphicsApp::OnMiddleMouseDown</a></div><div class="ttdeci">virtual void OnMiddleMouseDown(const Point2 &amp;pos)</div><div class="ttdoc">If the mouse button was pressed down since the last frame, then this function will be called to notif...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00200">graphics_app.h:200</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a5a858fd10651f7617491f37b49dbf8ca"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a5a858fd10651f7617491f37b49dbf8ca">mingfx::GraphicsApp::DrawUsingOpenGL</a></div><div class="ttdeci">virtual void DrawUsingOpenGL()</div><div class="ttdoc">Override this to draw graphics using raw OpenGL 2D or 3D graphics calls.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00317">graphics_app.h:317</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a5b78d79192180a6ef5271d2a2b2d1cc7"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a5b78d79192180a6ef5271d2a2b2d1cc7">mingfx::GraphicsApp::IsLeftMouseDown</a></div><div class="ttdeci">virtual bool IsLeftMouseDown()</div><div class="ttdoc">True if the left mouse button is currently held down.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a5ee9ae3d14e76c949979a8008687d6c9"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a5ee9ae3d14e76c949979a8008687d6c9">mingfx::GraphicsApp::Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdoc">After creating a new GraphicsApp, call this to start the app's mainloop.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a60688614e5dfeaabf57f8825cdaa08ac"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a60688614e5dfeaabf57f8825cdaa08ac">mingfx::GraphicsApp::IsKeyDown</a></div><div class="ttdeci">virtual bool IsKeyDown(int key)</div><div class="ttdoc">True if the specified is is currently held down. Uses the GLFW key codes found here: http://www....</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a6141ec6adc29572ee99ca26cf90e6248"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a6141ec6adc29572ee99ca26cf90e6248">mingfx::GraphicsApp::NormalizedDeviceCoordsToPixels</a></div><div class="ttdeci">virtual Point2 NormalizedDeviceCoordsToPixels(const Point2 &amp;pointInNDC)</div><div class="ttdoc">Transforms a point in normalized device coordinates (top left = (-1,1) bottom right (1,...</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a688f12675da58210e8ec2ffcda4923d0"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a688f12675da58210e8ec2ffcda4923d0">mingfx::GraphicsApp::DrawUsingNanoVG</a></div><div class="ttdeci">virtual void DrawUsingNanoVG(NVGcontext *ctx)</div><div class="ttdoc">Override this to draw graphics using the nanovg vector graphics library, which provides an easy way t...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00311">graphics_app.h:311</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a8362762489e287edfa59617a6602db22"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a8362762489e287edfa59617a6602db22">mingfx::GraphicsApp::OnSpecialKeyRepeat</a></div><div class="ttdeci">virtual void OnSpecialKeyRepeat(int key, int scancode, int modifiers)</div><div class="ttdoc">The values for key, scancode, and modifiers are documented here: http://www.glfw.org/docs/latest/grou...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00251">graphics_app.h:251</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a8376ef8eb0840b229a2301f995db3f6c"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a8376ef8eb0840b229a2301f995db3f6c">mingfx::GraphicsApp::OnKeyUp</a></div><div class="ttdeci">virtual void OnKeyUp(const char *c, int modifiers)</div><div class="ttdoc">Transforms a keyboard up event into the actual character typed.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00241">graphics_app.h:241</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a903f94b82cc10f32039ff3f2ba368a9c"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a903f94b82cc10f32039ff3f2ba368a9c">mingfx::GraphicsApp::OnRightMouseDown</a></div><div class="ttdeci">virtual void OnRightMouseDown(const Point2 &amp;pos)</div><div class="ttdoc">If the mouse button was pressed down since the last frame, then this function will be called to notif...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00210">graphics_app.h:210</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a941f7598400073bfa93aa194a3773434"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a941f7598400073bfa93aa194a3773434">mingfx::GraphicsApp::IsMiddleMouseDown</a></div><div class="ttdeci">virtual bool IsMiddleMouseDown()</div><div class="ttdoc">True if the middle mouse button is currently held down.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a94b19404e61411ef64c0ddde8ad6c07a"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a94b19404e61411ef64c0ddde8ad6c07a">mingfx::GraphicsApp::PixelsToNormalizedDeviceCoords</a></div><div class="ttdeci">virtual Point2 PixelsToNormalizedDeviceCoords(const Point2 &amp;pointInPixels)</div><div class="ttdoc">Transforms a point in viewport coordinates (pixels where top left = (0,0) and bottom right = (window_...</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a96196b37f8b488b64072ec74b5d2b0b3"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a96196b37f8b488b64072ec74b5d2b0b3">mingfx::GraphicsApp::InitOpenGL</a></div><div class="ttdeci">virtual void InitOpenGL()</div><div class="ttdoc">Override this to initialize the OpenGL context with textures, vertex buffers, etc.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00297">graphics_app.h:297</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_a9e2b4cd7eeabe1ace9d5e9220349fbaa"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#a9e2b4cd7eeabe1ace9d5e9220349fbaa">mingfx::GraphicsApp::UpdateSimulation</a></div><div class="ttdeci">virtual void UpdateSimulation(double dt)</div><div class="ttdoc">Called once per frame.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00306">graphics_app.h:306</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_aab7925c6b844e6bef428feacf4aa9afb"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#aab7925c6b844e6bef428feacf4aa9afb">mingfx::GraphicsApp::~GraphicsApp</a></div><div class="ttdeci">virtual ~GraphicsApp()</div><div class="ttdoc">The destructor will shutdown the graphics system and window.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_abcf1935e92550bcda311cac62f312952"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#abcf1935e92550bcda311cac62f312952">mingfx::GraphicsApp::OnSpecialKeyDown</a></div><div class="ttdeci">virtual void OnSpecialKeyDown(int key, int scancode, int modifiers)</div><div class="ttdoc">The values for key, scancode, and modifiers are documented here: http://www.glfw.org/docs/latest/grou...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00247">graphics_app.h:247</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_abd0ee14f7e12146000cdb3532d54ba94"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#abd0ee14f7e12146000cdb3532d54ba94">mingfx::GraphicsApp::window</a></div><div class="ttdeci">virtual GLFWwindow * window()</div><div class="ttdoc">Access to the underlying GLFWwindow object.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_abf0b48c7d8e5325ab038fddbe1c38b5b"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#abf0b48c7d8e5325ab038fddbe1c38b5b">mingfx::GraphicsApp::GraphicsApp</a></div><div class="ttdeci">GraphicsApp(int width, int height, const std::string &amp;caption)</div><div class="ttdoc">Constructs a new app but does not yet run it.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_ac682691ee96ea32037abafd74d144a23"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#ac682691ee96ea32037abafd74d144a23">mingfx::GraphicsApp::aspect_ratio</a></div><div class="ttdeci">virtual float aspect_ratio()</div><div class="ttdoc">Returns width/height for the current shape of the window.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_ac7628fece754c0ac4875791e19712dc6"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#ac7628fece754c0ac4875791e19712dc6">mingfx::GraphicsApp::OnMiddleMouseDrag</a></div><div class="ttdeci">virtual void OnMiddleMouseDrag(const Point2 &amp;pos, const Vector2 &amp;delta)</div><div class="ttdoc">If the mouse button is held down and the mouse has moved in the past frame then this function will be...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00203">graphics_app.h:203</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_ad596e69d030e7689ad91eaaec6975696"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#ad596e69d030e7689ad91eaaec6975696">mingfx::GraphicsApp::framebuffer_width</a></div><div class="ttdeci">virtual int framebuffer_width()</div><div class="ttdoc">Returns the current width of the framebuffer in pixels.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_ad7a641f7ccf174cd0a059347b623e016"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#ad7a641f7ccf174cd0a059347b623e016">mingfx::GraphicsApp::window_height</a></div><div class="ttdeci">virtual int window_height()</div><div class="ttdoc">Returns the current height of the client area of the window in pixels.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_ad7c33791c44afc87ce789874f3002ca3"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#ad7c33791c44afc87ce789874f3002ca3">mingfx::GraphicsApp::OnRightMouseUp</a></div><div class="ttdeci">virtual void OnRightMouseUp(const Point2 &amp;pos)</div><div class="ttdoc">If the mouse button was released since the last frame, then this function will be called to notify yo...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00216">graphics_app.h:216</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_adafdc4631db256fefce3c4ffdfd5086a"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#adafdc4631db256fefce3c4ffdfd5086a">mingfx::GraphicsApp::OnWindowResize</a></div><div class="ttdeci">virtual void OnWindowResize(int new_width, int new_height)</div><div class="ttdoc">Override this to respond when the graphics window and/or framebuffer are resized, either by the user ...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00261">graphics_app.h:261</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_adc68196c3f03bd0608c41f6e4d7dad16"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#adc68196c3f03bd0608c41f6e4d7dad16">mingfx::GraphicsApp::screen</a></div><div class="ttdeci">virtual nanogui::Screen * screen()</div><div class="ttdoc">Access to the underlying NanoGUI Screen object.</div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_adfe77d841f43961b299ea6159477968a"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#adfe77d841f43961b299ea6159477968a">mingfx::GraphicsApp::InitNanoGUI</a></div><div class="ttdeci">virtual void InitNanoGUI()</div><div class="ttdoc">Called at the beginning of the Run() method.</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00284">graphics_app.h:284</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_ae12d9b192a2167a71e0c103405addb17"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#ae12d9b192a2167a71e0c103405addb17">mingfx::GraphicsApp::OnLeftMouseDown</a></div><div class="ttdeci">virtual void OnLeftMouseDown(const Point2 &amp;pos)</div><div class="ttdoc">If the mouse button was pressed down since the last frame, then this function will be called to notif...</div><div class="ttdef"><b>Definition:</b> <a href="graphics__app_8h_source.html#l00174">graphics_app.h:174</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_graphics_app_html_af58153eb104f53216a3e67de2a472f32"><div class="ttname"><a href="classmingfx_1_1_graphics_app.html#af58153eb104f53216a3e67de2a472f32">mingfx::GraphicsApp::framebuffer_height</a></div><div class="ttdeci">virtual int framebuffer_height()</div><div class="ttdoc">Returns the current height of the framebuffer in pixels.</div></div>
<div class="ttc" id="aclassmingfx_1_1_point2_html"><div class="ttname"><a href="classmingfx_1_1_point2.html">mingfx::Point2</a></div><div class="ttdoc">A 2D Point with floating point coordinates, used for storing 2D texture coordinates,...</div><div class="ttdef"><b>Definition:</b> <a href="point2_8h_source.html#l00028">point2.h:28</a></div></div>
<div class="ttc" id="aclassmingfx_1_1_vector2_html"><div class="ttname"><a href="classmingfx_1_1_vector2.html">mingfx::Vector2</a></div><div class="ttdoc">A 2D Vector with floating point coordinates, used for storing 2D translations, mouse movements,...</div><div class="ttdef"><b>Definition:</b> <a href="vector2_8h_source.html#l00028">vector2.h:28</a></div></div>
<div class="ttc" id="anamespacemingfx_html"><div class="ttname"><a href="namespacemingfx.html">mingfx</a></div><div class="ttdoc">Namespace for the MinGfx Toolkit.</div><div class="ttdef"><b>Definition:</b> <a href="aabb_8h_source.html#l00021">aabb.h:21</a></div></div>
<div class="ttc" id="apoint2_8h_html"><div class="ttname"><a href="point2_8h.html">point2.h</a></div></div>
<div class="ttc" id="avector2_8h_html"><div class="ttname"><a href="vector2_8h.html">vector2.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.9.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.9.1
</small></address>
</body>
</html>