Testing out the PPD42 Air Quality Sensor, with an MSP430 Launchpad and graphing the data with GNUplot.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1998 lines
53 KiB

5 years ago
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico">
  5. <script type="text/javascript">
  6. var codesite_token = "c6974bcd72eb95455827185f7306e1fa";
  7. var logged_in_user_email = "Dung.Dang@gmail.com";
  8. var relative_base_url = "";
  9. </script>
  10. <title>PMatrix.java -
  11. processing -
  12. Project Hosting on Google Code</title>
  13. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
  14. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
  15. <meta name="ROBOTS" content="NOARCHIVE">
  16. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_core.css">
  17. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_detail.css" >
  18. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_sb_20080522.css" >
  19. <!--[if IE]>
  20. <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_ie.css" >
  21. <![endif]-->
  22. <style type="text/css">
  23. .menuIcon.off { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -42px }
  24. .menuIcon.on { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -28px }
  25. .menuIcon.down { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 0; }
  26. tr.inline_comment {
  27. background: #fff;
  28. vertical-align: top;
  29. }
  30. div.draft, div.published {
  31. padding: .3em;
  32. border: 1px solid #999;
  33. margin-bottom: .1em;
  34. font-family: arial, sans-serif;
  35. max-width: 60em;
  36. }
  37. div.draft {
  38. background: #ffa;
  39. }
  40. div.published {
  41. background: #e5ecf9;
  42. }
  43. div.published .body, div.draft .body {
  44. padding: .5em .1em .1em .1em;
  45. max-width: 60em;
  46. white-space: pre-wrap;
  47. white-space: -moz-pre-wrap;
  48. white-space: -pre-wrap;
  49. white-space: -o-pre-wrap;
  50. word-wrap: break-word;
  51. font-size: 1em;
  52. }
  53. div.draft .actions {
  54. margin-left: 1em;
  55. font-size: 90%;
  56. }
  57. div.draft form {
  58. padding: .5em .5em .5em 0;
  59. }
  60. div.draft textarea, div.published textarea {
  61. width: 95%;
  62. height: 10em;
  63. font-family: arial, sans-serif;
  64. margin-bottom: .5em;
  65. }
  66. .nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
  67. background-color: white;
  68. height: 2px;
  69. }
  70. .cursor, .cursor td {
  71. background-color: darkblue;
  72. height: 2px;
  73. display: '';
  74. }
  75. .list {
  76. border: 1px solid white;
  77. margin-bottom:0;
  78. }
  79. </style>
  80. </head>
  81. <body class="t4">
  82. <script type="text/javascript">
  83. var _gaq = _gaq || [];
  84. _gaq.push(
  85. ['siteTracker._setAccount', 'UA-18071-1'],
  86. ['siteTracker._trackPageview']);
  87. (function() {
  88. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  89. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  90. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
  91. })();
  92. </script>
  93. <div class="headbg">
  94. <div id="gaia">
  95. <span>
  96. <b>Dung.Dang@gmail.com</b>
  97. | <a href="/u/@VhVRRVJYBRNNWwl6/" id="projects-dropdown" onclick="return false;"
  98. ><u>My favorites</u> <small>&#9660;</small></a>
  99. | <a href="/u/@VhVRRVJYBRNNWwl6/" onclick="_CS_click('/gb/ph/profile');"
  100. title="Profile, Updates, and Settings"
  101. ><u>Profile</u></a>
  102. | <a href="https://www.google.com/accounts/Logout?continue=http%3A%2F%2Fcode.google.com%2Fp%2Fprocessing%2Fsource%2Fbrowse%2Ftrunk%2Fprocessing%2Fcore%2Fsrc%2Fprocessing%2Fcore%2FPMatrix.java"
  103. onclick="_CS_click('/gb/ph/signout');"
  104. ><u>Sign out</u></a>
  105. </span>
  106. </div>
  107. <div class="gbh" style="left: 0pt;"></div>
  108. <div class="gbh" style="right: 0pt;"></div>
  109. <div style="height: 1px"></div>
  110. <!--[if lte IE 7]>
  111. <div style="text-align:center;">
  112. Your version of Internet Explorer is not supported. Try a browser that
  113. contributes to open source, such as <a href="http://www.firefox.com">Firefox</a>,
  114. <a href="http://www.google.com/chrome">Google Chrome</a>, or
  115. <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>.
  116. </div>
  117. <![endif]-->
  118. <table style="padding:0px; margin: 0px 0px 10px 0px; width:100%" cellpadding="0" cellspacing="0">
  119. <tr style="height: 58px;">
  120. <td id="plogo">
  121. <a href="/p/processing/">
  122. <img src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="Logo">
  123. </a>
  124. </td>
  125. <td style="padding-left: 0.5em">
  126. <div id="pname">
  127. <a href="/p/processing/">processing</a>
  128. </div>
  129. <div id="psum">
  130. <a id="project_summary_link" href="/p/processing/" >An open source programming language and environment for images, animation, and interactions.</a>
  131. </div>
  132. </td>
  133. <td style="white-space:nowrap;text-align:right; vertical-align:bottom;">
  134. <form action="/hosting/search">
  135. <input size="30" name="q" value="" type="text">
  136. <input type="submit" name="projectsearch" value="Search projects" >
  137. </form>
  138. </tr>
  139. </table>
  140. </div>
  141. <div id="mt" class="gtb">
  142. <a href="/p/processing/" class="tab ">Project&nbsp;Home</a>
  143. <a href="/p/processing/downloads/list" class="tab ">Downloads</a>
  144. <a href="/p/processing/w/list" class="tab ">Wiki</a>
  145. <a href="/p/processing/issues/list"
  146. class="tab ">Issues</a>
  147. <a href="/p/processing/source/checkout"
  148. class="tab active">Source</a>
  149. <div class=gtbc></div>
  150. </div>
  151. <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
  152. <tr>
  153. <td class="subt">
  154. <div class="st2">
  155. <div class="isf">
  156. <span class="inst1"><a href="/p/processing/source/checkout">Checkout</a></span> &nbsp;
  157. <span class="inst2"><a href="/p/processing/source/browse/trunk/processing">Browse</a></span> &nbsp;
  158. <span class="inst3"><a href="/p/processing/source/list">Changes</a></span> &nbsp;
  159. <form action="http://www.google.com/codesearch" method="get" style="display:inline"
  160. onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://processing\\.googlecode\\.com'">
  161. <input type="hidden" name="q" id="codesearchq" value="">
  162. <input type="text" maxlength="2048" size="38" id="origq" name="origq" value="" title="Google Code Search" style="font-size:92%">&nbsp;<input type="submit" value="Search Trunk" name="btnG" style="font-size:92%">
  163. </form>
  164. </div>
  165. </div>
  166. </td>
  167. <td align="right" valign="top" class="bevel-right"></td>
  168. </tr>
  169. </table>
  170. <script type="text/javascript">
  171. var cancelBubble = false;
  172. function _go(url) { document.location = url; }
  173. </script>
  174. <div id="maincol"
  175. >
  176. <!-- IE -->
  177. <div class="expand">
  178. <div id="colcontrol">
  179. <style type="text/css">
  180. #file_flipper { white-space: nowrap; padding-right: 2em; }
  181. #file_flipper.hidden { display: none; }
  182. #file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
  183. #file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
  184. </style>
  185. <table id="nav_and_rev" class="list"
  186. cellpadding="0" cellspacing="0" width="100%">
  187. <tr>
  188. <td nowrap="nowrap" class="src_crumbs src_nav" width="33%">
  189. <strong class="src_nav">Source path:&nbsp;</strong>
  190. <span id="crumb_root">
  191. <a href="/p/processing/source/browse/">svn</a>/&nbsp;</span>
  192. <span id="crumb_links" class="ifClosed"><a href="/p/processing/source/browse/trunk/">trunk</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/">processing</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/">core</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/">src</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/processing/">processing</a><span class="sp">/&nbsp;</span><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/">core</a><span class="sp">/&nbsp;</span>PMatrix.java</span>
  193. </td>
  194. <td nowrap="nowrap" width="33%" align="center">
  195. <a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?edit=1"
  196. ><img src="http://www.gstatic.com/codesite/ph/images/pencil-y14.png"
  197. class="edit_icon">Edit file</a>
  198. </td>
  199. <td nowrap="nowrap" width="33%" align="right">
  200. <table cellpadding="0" cellspacing="0" style="font-size: 100%"><tr>
  201. <td class="flipper">
  202. <ul class="leftside">
  203. <li><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?r=4997" title="Previous">&lsaquo;r4997</a></li>
  204. </ul>
  205. </td>
  206. <td class="flipper"><b>r7768</b></td>
  207. </tr></table>
  208. </td>
  209. </tr>
  210. </table>
  211. <div class="fc">
  212. <style type="text/css">
  213. .undermouse span {
  214. background-image: url(http://www.gstatic.com/codesite/ph/images/comments.gif); }
  215. </style>
  216. <table class="opened" id="review_comment_area"
  217. ><tr>
  218. <td id="nums">
  219. <pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
  220. <pre><table width="100%" id="nums_table_0"><tr id="gr_svn7768_1"
  221. ><td id="1"><a href="#1">1</a></td></tr
  222. ><tr id="gr_svn7768_2"
  223. ><td id="2"><a href="#2">2</a></td></tr
  224. ><tr id="gr_svn7768_3"
  225. ><td id="3"><a href="#3">3</a></td></tr
  226. ><tr id="gr_svn7768_4"
  227. ><td id="4"><a href="#4">4</a></td></tr
  228. ><tr id="gr_svn7768_5"
  229. ><td id="5"><a href="#5">5</a></td></tr
  230. ><tr id="gr_svn7768_6"
  231. ><td id="6"><a href="#6">6</a></td></tr
  232. ><tr id="gr_svn7768_7"
  233. ><td id="7"><a href="#7">7</a></td></tr
  234. ><tr id="gr_svn7768_8"
  235. ><td id="8"><a href="#8">8</a></td></tr
  236. ><tr id="gr_svn7768_9"
  237. ><td id="9"><a href="#9">9</a></td></tr
  238. ><tr id="gr_svn7768_10"
  239. ><td id="10"><a href="#10">10</a></td></tr
  240. ><tr id="gr_svn7768_11"
  241. ><td id="11"><a href="#11">11</a></td></tr
  242. ><tr id="gr_svn7768_12"
  243. ><td id="12"><a href="#12">12</a></td></tr
  244. ><tr id="gr_svn7768_13"
  245. ><td id="13"><a href="#13">13</a></td></tr
  246. ><tr id="gr_svn7768_14"
  247. ><td id="14"><a href="#14">14</a></td></tr
  248. ><tr id="gr_svn7768_15"
  249. ><td id="15"><a href="#15">15</a></td></tr
  250. ><tr id="gr_svn7768_16"
  251. ><td id="16"><a href="#16">16</a></td></tr
  252. ><tr id="gr_svn7768_17"
  253. ><td id="17"><a href="#17">17</a></td></tr
  254. ><tr id="gr_svn7768_18"
  255. ><td id="18"><a href="#18">18</a></td></tr
  256. ><tr id="gr_svn7768_19"
  257. ><td id="19"><a href="#19">19</a></td></tr
  258. ><tr id="gr_svn7768_20"
  259. ><td id="20"><a href="#20">20</a></td></tr
  260. ><tr id="gr_svn7768_21"
  261. ><td id="21"><a href="#21">21</a></td></tr
  262. ><tr id="gr_svn7768_22"
  263. ><td id="22"><a href="#22">22</a></td></tr
  264. ><tr id="gr_svn7768_23"
  265. ><td id="23"><a href="#23">23</a></td></tr
  266. ><tr id="gr_svn7768_24"
  267. ><td id="24"><a href="#24">24</a></td></tr
  268. ><tr id="gr_svn7768_25"
  269. ><td id="25"><a href="#25">25</a></td></tr
  270. ><tr id="gr_svn7768_26"
  271. ><td id="26"><a href="#26">26</a></td></tr
  272. ><tr id="gr_svn7768_27"
  273. ><td id="27"><a href="#27">27</a></td></tr
  274. ><tr id="gr_svn7768_28"
  275. ><td id="28"><a href="#28">28</a></td></tr
  276. ><tr id="gr_svn7768_29"
  277. ><td id="29"><a href="#29">29</a></td></tr
  278. ><tr id="gr_svn7768_30"
  279. ><td id="30"><a href="#30">30</a></td></tr
  280. ><tr id="gr_svn7768_31"
  281. ><td id="31"><a href="#31">31</a></td></tr
  282. ><tr id="gr_svn7768_32"
  283. ><td id="32"><a href="#32">32</a></td></tr
  284. ><tr id="gr_svn7768_33"
  285. ><td id="33"><a href="#33">33</a></td></tr
  286. ><tr id="gr_svn7768_34"
  287. ><td id="34"><a href="#34">34</a></td></tr
  288. ><tr id="gr_svn7768_35"
  289. ><td id="35"><a href="#35">35</a></td></tr
  290. ><tr id="gr_svn7768_36"
  291. ><td id="36"><a href="#36">36</a></td></tr
  292. ><tr id="gr_svn7768_37"
  293. ><td id="37"><a href="#37">37</a></td></tr
  294. ><tr id="gr_svn7768_38"
  295. ><td id="38"><a href="#38">38</a></td></tr
  296. ><tr id="gr_svn7768_39"
  297. ><td id="39"><a href="#39">39</a></td></tr
  298. ><tr id="gr_svn7768_40"
  299. ><td id="40"><a href="#40">40</a></td></tr
  300. ><tr id="gr_svn7768_41"
  301. ><td id="41"><a href="#41">41</a></td></tr
  302. ><tr id="gr_svn7768_42"
  303. ><td id="42"><a href="#42">42</a></td></tr
  304. ><tr id="gr_svn7768_43"
  305. ><td id="43"><a href="#43">43</a></td></tr
  306. ><tr id="gr_svn7768_44"
  307. ><td id="44"><a href="#44">44</a></td></tr
  308. ><tr id="gr_svn7768_45"
  309. ><td id="45"><a href="#45">45</a></td></tr
  310. ><tr id="gr_svn7768_46"
  311. ><td id="46"><a href="#46">46</a></td></tr
  312. ><tr id="gr_svn7768_47"
  313. ><td id="47"><a href="#47">47</a></td></tr
  314. ><tr id="gr_svn7768_48"
  315. ><td id="48"><a href="#48">48</a></td></tr
  316. ><tr id="gr_svn7768_49"
  317. ><td id="49"><a href="#49">49</a></td></tr
  318. ><tr id="gr_svn7768_50"
  319. ><td id="50"><a href="#50">50</a></td></tr
  320. ><tr id="gr_svn7768_51"
  321. ><td id="51"><a href="#51">51</a></td></tr
  322. ><tr id="gr_svn7768_52"
  323. ><td id="52"><a href="#52">52</a></td></tr
  324. ><tr id="gr_svn7768_53"
  325. ><td id="53"><a href="#53">53</a></td></tr
  326. ><tr id="gr_svn7768_54"
  327. ><td id="54"><a href="#54">54</a></td></tr
  328. ><tr id="gr_svn7768_55"
  329. ><td id="55"><a href="#55">55</a></td></tr
  330. ><tr id="gr_svn7768_56"
  331. ><td id="56"><a href="#56">56</a></td></tr
  332. ><tr id="gr_svn7768_57"
  333. ><td id="57"><a href="#57">57</a></td></tr
  334. ><tr id="gr_svn7768_58"
  335. ><td id="58"><a href="#58">58</a></td></tr
  336. ><tr id="gr_svn7768_59"
  337. ><td id="59"><a href="#59">59</a></td></tr
  338. ><tr id="gr_svn7768_60"
  339. ><td id="60"><a href="#60">60</a></td></tr
  340. ><tr id="gr_svn7768_61"
  341. ><td id="61"><a href="#61">61</a></td></tr
  342. ><tr id="gr_svn7768_62"
  343. ><td id="62"><a href="#62">62</a></td></tr
  344. ><tr id="gr_svn7768_63"
  345. ><td id="63"><a href="#63">63</a></td></tr
  346. ><tr id="gr_svn7768_64"
  347. ><td id="64"><a href="#64">64</a></td></tr
  348. ><tr id="gr_svn7768_65"
  349. ><td id="65"><a href="#65">65</a></td></tr
  350. ><tr id="gr_svn7768_66"
  351. ><td id="66"><a href="#66">66</a></td></tr
  352. ><tr id="gr_svn7768_67"
  353. ><td id="67"><a href="#67">67</a></td></tr
  354. ><tr id="gr_svn7768_68"
  355. ><td id="68"><a href="#68">68</a></td></tr
  356. ><tr id="gr_svn7768_69"
  357. ><td id="69"><a href="#69">69</a></td></tr
  358. ><tr id="gr_svn7768_70"
  359. ><td id="70"><a href="#70">70</a></td></tr
  360. ><tr id="gr_svn7768_71"
  361. ><td id="71"><a href="#71">71</a></td></tr
  362. ><tr id="gr_svn7768_72"
  363. ><td id="72"><a href="#72">72</a></td></tr
  364. ><tr id="gr_svn7768_73"
  365. ><td id="73"><a href="#73">73</a></td></tr
  366. ><tr id="gr_svn7768_74"
  367. ><td id="74"><a href="#74">74</a></td></tr
  368. ><tr id="gr_svn7768_75"
  369. ><td id="75"><a href="#75">75</a></td></tr
  370. ><tr id="gr_svn7768_76"
  371. ><td id="76"><a href="#76">76</a></td></tr
  372. ><tr id="gr_svn7768_77"
  373. ><td id="77"><a href="#77">77</a></td></tr
  374. ><tr id="gr_svn7768_78"
  375. ><td id="78"><a href="#78">78</a></td></tr
  376. ><tr id="gr_svn7768_79"
  377. ><td id="79"><a href="#79">79</a></td></tr
  378. ><tr id="gr_svn7768_80"
  379. ><td id="80"><a href="#80">80</a></td></tr
  380. ><tr id="gr_svn7768_81"
  381. ><td id="81"><a href="#81">81</a></td></tr
  382. ><tr id="gr_svn7768_82"
  383. ><td id="82"><a href="#82">82</a></td></tr
  384. ><tr id="gr_svn7768_83"
  385. ><td id="83"><a href="#83">83</a></td></tr
  386. ><tr id="gr_svn7768_84"
  387. ><td id="84"><a href="#84">84</a></td></tr
  388. ><tr id="gr_svn7768_85"
  389. ><td id="85"><a href="#85">85</a></td></tr
  390. ><tr id="gr_svn7768_86"
  391. ><td id="86"><a href="#86">86</a></td></tr
  392. ><tr id="gr_svn7768_87"
  393. ><td id="87"><a href="#87">87</a></td></tr
  394. ><tr id="gr_svn7768_88"
  395. ><td id="88"><a href="#88">88</a></td></tr
  396. ><tr id="gr_svn7768_89"
  397. ><td id="89"><a href="#89">89</a></td></tr
  398. ><tr id="gr_svn7768_90"
  399. ><td id="90"><a href="#90">90</a></td></tr
  400. ><tr id="gr_svn7768_91"
  401. ><td id="91"><a href="#91">91</a></td></tr
  402. ><tr id="gr_svn7768_92"
  403. ><td id="92"><a href="#92">92</a></td></tr
  404. ><tr id="gr_svn7768_93"
  405. ><td id="93"><a href="#93">93</a></td></tr
  406. ><tr id="gr_svn7768_94"
  407. ><td id="94"><a href="#94">94</a></td></tr
  408. ><tr id="gr_svn7768_95"
  409. ><td id="95"><a href="#95">95</a></td></tr
  410. ><tr id="gr_svn7768_96"
  411. ><td id="96"><a href="#96">96</a></td></tr
  412. ><tr id="gr_svn7768_97"
  413. ><td id="97"><a href="#97">97</a></td></tr
  414. ><tr id="gr_svn7768_98"
  415. ><td id="98"><a href="#98">98</a></td></tr
  416. ><tr id="gr_svn7768_99"
  417. ><td id="99"><a href="#99">99</a></td></tr
  418. ><tr id="gr_svn7768_100"
  419. ><td id="100"><a href="#100">100</a></td></tr
  420. ><tr id="gr_svn7768_101"
  421. ><td id="101"><a href="#101">101</a></td></tr
  422. ><tr id="gr_svn7768_102"
  423. ><td id="102"><a href="#102">102</a></td></tr
  424. ><tr id="gr_svn7768_103"
  425. ><td id="103"><a href="#103">103</a></td></tr
  426. ><tr id="gr_svn7768_104"
  427. ><td id="104"><a href="#104">104</a></td></tr
  428. ><tr id="gr_svn7768_105"
  429. ><td id="105"><a href="#105">105</a></td></tr
  430. ><tr id="gr_svn7768_106"
  431. ><td id="106"><a href="#106">106</a></td></tr
  432. ><tr id="gr_svn7768_107"
  433. ><td id="107"><a href="#107">107</a></td></tr
  434. ><tr id="gr_svn7768_108"
  435. ><td id="108"><a href="#108">108</a></td></tr
  436. ><tr id="gr_svn7768_109"
  437. ><td id="109"><a href="#109">109</a></td></tr
  438. ><tr id="gr_svn7768_110"
  439. ><td id="110"><a href="#110">110</a></td></tr
  440. ><tr id="gr_svn7768_111"
  441. ><td id="111"><a href="#111">111</a></td></tr
  442. ><tr id="gr_svn7768_112"
  443. ><td id="112"><a href="#112">112</a></td></tr
  444. ><tr id="gr_svn7768_113"
  445. ><td id="113"><a href="#113">113</a></td></tr
  446. ><tr id="gr_svn7768_114"
  447. ><td id="114"><a href="#114">114</a></td></tr
  448. ><tr id="gr_svn7768_115"
  449. ><td id="115"><a href="#115">115</a></td></tr
  450. ><tr id="gr_svn7768_116"
  451. ><td id="116"><a href="#116">116</a></td></tr
  452. ><tr id="gr_svn7768_117"
  453. ><td id="117"><a href="#117">117</a></td></tr
  454. ><tr id="gr_svn7768_118"
  455. ><td id="118"><a href="#118">118</a></td></tr
  456. ><tr id="gr_svn7768_119"
  457. ><td id="119"><a href="#119">119</a></td></tr
  458. ><tr id="gr_svn7768_120"
  459. ><td id="120"><a href="#120">120</a></td></tr
  460. ><tr id="gr_svn7768_121"
  461. ><td id="121"><a href="#121">121</a></td></tr
  462. ><tr id="gr_svn7768_122"
  463. ><td id="122"><a href="#122">122</a></td></tr
  464. ><tr id="gr_svn7768_123"
  465. ><td id="123"><a href="#123">123</a></td></tr
  466. ><tr id="gr_svn7768_124"
  467. ><td id="124"><a href="#124">124</a></td></tr
  468. ><tr id="gr_svn7768_125"
  469. ><td id="125"><a href="#125">125</a></td></tr
  470. ><tr id="gr_svn7768_126"
  471. ><td id="126"><a href="#126">126</a></td></tr
  472. ><tr id="gr_svn7768_127"
  473. ><td id="127"><a href="#127">127</a></td></tr
  474. ><tr id="gr_svn7768_128"
  475. ><td id="128"><a href="#128">128</a></td></tr
  476. ><tr id="gr_svn7768_129"
  477. ><td id="129"><a href="#129">129</a></td></tr
  478. ><tr id="gr_svn7768_130"
  479. ><td id="130"><a href="#130">130</a></td></tr
  480. ><tr id="gr_svn7768_131"
  481. ><td id="131"><a href="#131">131</a></td></tr
  482. ><tr id="gr_svn7768_132"
  483. ><td id="132"><a href="#132">132</a></td></tr
  484. ><tr id="gr_svn7768_133"
  485. ><td id="133"><a href="#133">133</a></td></tr
  486. ><tr id="gr_svn7768_134"
  487. ><td id="134"><a href="#134">134</a></td></tr
  488. ><tr id="gr_svn7768_135"
  489. ><td id="135"><a href="#135">135</a></td></tr
  490. ><tr id="gr_svn7768_136"
  491. ><td id="136"><a href="#136">136</a></td></tr
  492. ><tr id="gr_svn7768_137"
  493. ><td id="137"><a href="#137">137</a></td></tr
  494. ><tr id="gr_svn7768_138"
  495. ><td id="138"><a href="#138">138</a></td></tr
  496. ><tr id="gr_svn7768_139"
  497. ><td id="139"><a href="#139">139</a></td></tr
  498. ><tr id="gr_svn7768_140"
  499. ><td id="140"><a href="#140">140</a></td></tr
  500. ><tr id="gr_svn7768_141"
  501. ><td id="141"><a href="#141">141</a></td></tr
  502. ><tr id="gr_svn7768_142"
  503. ><td id="142"><a href="#142">142</a></td></tr
  504. ><tr id="gr_svn7768_143"
  505. ><td id="143"><a href="#143">143</a></td></tr
  506. ><tr id="gr_svn7768_144"
  507. ><td id="144"><a href="#144">144</a></td></tr
  508. ><tr id="gr_svn7768_145"
  509. ><td id="145"><a href="#145">145</a></td></tr
  510. ><tr id="gr_svn7768_146"
  511. ><td id="146"><a href="#146">146</a></td></tr
  512. ><tr id="gr_svn7768_147"
  513. ><td id="147"><a href="#147">147</a></td></tr
  514. ><tr id="gr_svn7768_148"
  515. ><td id="148"><a href="#148">148</a></td></tr
  516. ><tr id="gr_svn7768_149"
  517. ><td id="149"><a href="#149">149</a></td></tr
  518. ><tr id="gr_svn7768_150"
  519. ><td id="150"><a href="#150">150</a></td></tr
  520. ></table></pre>
  521. <pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
  522. </td>
  523. <td id="lines">
  524. <pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
  525. <pre class="prettyprint lang-java"><table id="src_table_0"><tr
  526. id=sl_svn7768_1
  527. ><td class="source">/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */<br></td></tr
  528. ><tr
  529. id=sl_svn7768_2
  530. ><td class="source"><br></td></tr
  531. ><tr
  532. id=sl_svn7768_3
  533. ><td class="source">/*<br></td></tr
  534. ><tr
  535. id=sl_svn7768_4
  536. ><td class="source"> Part of the Processing project - http://processing.org<br></td></tr
  537. ><tr
  538. id=sl_svn7768_5
  539. ><td class="source"><br></td></tr
  540. ><tr
  541. id=sl_svn7768_6
  542. ><td class="source"> Copyright (c) 2005-08 Ben Fry and Casey Reas<br></td></tr
  543. ><tr
  544. id=sl_svn7768_7
  545. ><td class="source"><br></td></tr
  546. ><tr
  547. id=sl_svn7768_8
  548. ><td class="source"> This library is free software; you can redistribute it and/or<br></td></tr
  549. ><tr
  550. id=sl_svn7768_9
  551. ><td class="source"> modify it under the terms of the GNU Lesser General Public<br></td></tr
  552. ><tr
  553. id=sl_svn7768_10
  554. ><td class="source"> License as published by the Free Software Foundation; either<br></td></tr
  555. ><tr
  556. id=sl_svn7768_11
  557. ><td class="source"> version 2.1 of the License, or (at your option) any later version.<br></td></tr
  558. ><tr
  559. id=sl_svn7768_12
  560. ><td class="source"><br></td></tr
  561. ><tr
  562. id=sl_svn7768_13
  563. ><td class="source"> This library is distributed in the hope that it will be useful,<br></td></tr
  564. ><tr
  565. id=sl_svn7768_14
  566. ><td class="source"> but WITHOUT ANY WARRANTY; without even the implied warranty of<br></td></tr
  567. ><tr
  568. id=sl_svn7768_15
  569. ><td class="source"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br></td></tr
  570. ><tr
  571. id=sl_svn7768_16
  572. ><td class="source"> Lesser General Public License for more details.<br></td></tr
  573. ><tr
  574. id=sl_svn7768_17
  575. ><td class="source"><br></td></tr
  576. ><tr
  577. id=sl_svn7768_18
  578. ><td class="source"> You should have received a copy of the GNU Lesser General<br></td></tr
  579. ><tr
  580. id=sl_svn7768_19
  581. ><td class="source"> Public License along with this library; if not, write to the<br></td></tr
  582. ><tr
  583. id=sl_svn7768_20
  584. ><td class="source"> Free Software Foundation, Inc., 59 Temple Place, Suite 330,<br></td></tr
  585. ><tr
  586. id=sl_svn7768_21
  587. ><td class="source"> Boston, MA 02111-1307 USA<br></td></tr
  588. ><tr
  589. id=sl_svn7768_22
  590. ><td class="source">*/<br></td></tr
  591. ><tr
  592. id=sl_svn7768_23
  593. ><td class="source"><br></td></tr
  594. ><tr
  595. id=sl_svn7768_24
  596. ><td class="source">package processing.core;<br></td></tr
  597. ><tr
  598. id=sl_svn7768_25
  599. ><td class="source"><br></td></tr
  600. ><tr
  601. id=sl_svn7768_26
  602. ><td class="source"><br></td></tr
  603. ><tr
  604. id=sl_svn7768_27
  605. ><td class="source">public interface PMatrix {<br></td></tr
  606. ><tr
  607. id=sl_svn7768_28
  608. ><td class="source"> <br></td></tr
  609. ><tr
  610. id=sl_svn7768_29
  611. ><td class="source"> public void reset();<br></td></tr
  612. ><tr
  613. id=sl_svn7768_30
  614. ><td class="source"> <br></td></tr
  615. ><tr
  616. id=sl_svn7768_31
  617. ><td class="source"> /**<br></td></tr
  618. ><tr
  619. id=sl_svn7768_32
  620. ><td class="source"> * Returns a copy of this PMatrix.<br></td></tr
  621. ><tr
  622. id=sl_svn7768_33
  623. ><td class="source"> */<br></td></tr
  624. ><tr
  625. id=sl_svn7768_34
  626. ><td class="source"> public PMatrix get(); <br></td></tr
  627. ><tr
  628. id=sl_svn7768_35
  629. ><td class="source"><br></td></tr
  630. ><tr
  631. id=sl_svn7768_36
  632. ><td class="source"> /**<br></td></tr
  633. ><tr
  634. id=sl_svn7768_37
  635. ><td class="source"> * Copies the matrix contents into a float array.<br></td></tr
  636. ><tr
  637. id=sl_svn7768_38
  638. ><td class="source"> * If target is null (or not the correct size), a new array will be created.<br></td></tr
  639. ><tr
  640. id=sl_svn7768_39
  641. ><td class="source"> */<br></td></tr
  642. ><tr
  643. id=sl_svn7768_40
  644. ><td class="source"> public float[] get(float[] target);<br></td></tr
  645. ><tr
  646. id=sl_svn7768_41
  647. ><td class="source"> <br></td></tr
  648. ><tr
  649. id=sl_svn7768_42
  650. ><td class="source"> <br></td></tr
  651. ><tr
  652. id=sl_svn7768_43
  653. ><td class="source"> public void set(PMatrix src);<br></td></tr
  654. ><tr
  655. id=sl_svn7768_44
  656. ><td class="source"><br></td></tr
  657. ><tr
  658. id=sl_svn7768_45
  659. ><td class="source"> public void set(float[] source);<br></td></tr
  660. ><tr
  661. id=sl_svn7768_46
  662. ><td class="source"><br></td></tr
  663. ><tr
  664. id=sl_svn7768_47
  665. ><td class="source"> public void set(float m00, float m01, float m02, <br></td></tr
  666. ><tr
  667. id=sl_svn7768_48
  668. ><td class="source"> float m10, float m11, float m12);<br></td></tr
  669. ><tr
  670. id=sl_svn7768_49
  671. ><td class="source"><br></td></tr
  672. ><tr
  673. id=sl_svn7768_50
  674. ><td class="source"> public void set(float m00, float m01, float m02, float m03,<br></td></tr
  675. ><tr
  676. id=sl_svn7768_51
  677. ><td class="source"> float m10, float m11, float m12, float m13,<br></td></tr
  678. ><tr
  679. id=sl_svn7768_52
  680. ><td class="source"> float m20, float m21, float m22, float m23,<br></td></tr
  681. ><tr
  682. id=sl_svn7768_53
  683. ><td class="source"> float m30, float m31, float m32, float m33);<br></td></tr
  684. ><tr
  685. id=sl_svn7768_54
  686. ><td class="source"><br></td></tr
  687. ><tr
  688. id=sl_svn7768_55
  689. ><td class="source"> <br></td></tr
  690. ><tr
  691. id=sl_svn7768_56
  692. ><td class="source"> public void translate(float tx, float ty);<br></td></tr
  693. ><tr
  694. id=sl_svn7768_57
  695. ><td class="source"> <br></td></tr
  696. ><tr
  697. id=sl_svn7768_58
  698. ><td class="source"> public void translate(float tx, float ty, float tz);<br></td></tr
  699. ><tr
  700. id=sl_svn7768_59
  701. ><td class="source"><br></td></tr
  702. ><tr
  703. id=sl_svn7768_60
  704. ><td class="source"> public void rotate(float angle);<br></td></tr
  705. ><tr
  706. id=sl_svn7768_61
  707. ><td class="source"><br></td></tr
  708. ><tr
  709. id=sl_svn7768_62
  710. ><td class="source"> public void rotateX(float angle);<br></td></tr
  711. ><tr
  712. id=sl_svn7768_63
  713. ><td class="source"><br></td></tr
  714. ><tr
  715. id=sl_svn7768_64
  716. ><td class="source"> public void rotateY(float angle);<br></td></tr
  717. ><tr
  718. id=sl_svn7768_65
  719. ><td class="source"><br></td></tr
  720. ><tr
  721. id=sl_svn7768_66
  722. ><td class="source"> public void rotateZ(float angle);<br></td></tr
  723. ><tr
  724. id=sl_svn7768_67
  725. ><td class="source"><br></td></tr
  726. ><tr
  727. id=sl_svn7768_68
  728. ><td class="source"> public void rotate(float angle, float v0, float v1, float v2);<br></td></tr
  729. ><tr
  730. id=sl_svn7768_69
  731. ><td class="source"><br></td></tr
  732. ><tr
  733. id=sl_svn7768_70
  734. ><td class="source"> public void scale(float s);<br></td></tr
  735. ><tr
  736. id=sl_svn7768_71
  737. ><td class="source"><br></td></tr
  738. ><tr
  739. id=sl_svn7768_72
  740. ><td class="source"> public void scale(float sx, float sy);<br></td></tr
  741. ><tr
  742. id=sl_svn7768_73
  743. ><td class="source"><br></td></tr
  744. ><tr
  745. id=sl_svn7768_74
  746. ><td class="source"> public void scale(float x, float y, float z);<br></td></tr
  747. ><tr
  748. id=sl_svn7768_75
  749. ><td class="source"> <br></td></tr
  750. ><tr
  751. id=sl_svn7768_76
  752. ><td class="source"> public void shearX(float angle);<br></td></tr
  753. ><tr
  754. id=sl_svn7768_77
  755. ><td class="source"> <br></td></tr
  756. ><tr
  757. id=sl_svn7768_78
  758. ><td class="source"> public void shearY(float angle);<br></td></tr
  759. ><tr
  760. id=sl_svn7768_79
  761. ><td class="source"><br></td></tr
  762. ><tr
  763. id=sl_svn7768_80
  764. ><td class="source"> /** <br></td></tr
  765. ><tr
  766. id=sl_svn7768_81
  767. ><td class="source"> * Multiply this matrix by another.<br></td></tr
  768. ><tr
  769. id=sl_svn7768_82
  770. ><td class="source"> */<br></td></tr
  771. ><tr
  772. id=sl_svn7768_83
  773. ><td class="source"> public void apply(PMatrix source);<br></td></tr
  774. ><tr
  775. id=sl_svn7768_84
  776. ><td class="source"><br></td></tr
  777. ><tr
  778. id=sl_svn7768_85
  779. ><td class="source"> public void apply(PMatrix2D source);<br></td></tr
  780. ><tr
  781. id=sl_svn7768_86
  782. ><td class="source"><br></td></tr
  783. ><tr
  784. id=sl_svn7768_87
  785. ><td class="source"> public void apply(PMatrix3D source);<br></td></tr
  786. ><tr
  787. id=sl_svn7768_88
  788. ><td class="source"><br></td></tr
  789. ><tr
  790. id=sl_svn7768_89
  791. ><td class="source"> public void apply(float n00, float n01, float n02, <br></td></tr
  792. ><tr
  793. id=sl_svn7768_90
  794. ><td class="source"> float n10, float n11, float n12);<br></td></tr
  795. ><tr
  796. id=sl_svn7768_91
  797. ><td class="source"><br></td></tr
  798. ><tr
  799. id=sl_svn7768_92
  800. ><td class="source"> public void apply(float n00, float n01, float n02, float n03,<br></td></tr
  801. ><tr
  802. id=sl_svn7768_93
  803. ><td class="source"> float n10, float n11, float n12, float n13,<br></td></tr
  804. ><tr
  805. id=sl_svn7768_94
  806. ><td class="source"> float n20, float n21, float n22, float n23,<br></td></tr
  807. ><tr
  808. id=sl_svn7768_95
  809. ><td class="source"> float n30, float n31, float n32, float n33);<br></td></tr
  810. ><tr
  811. id=sl_svn7768_96
  812. ><td class="source"><br></td></tr
  813. ><tr
  814. id=sl_svn7768_97
  815. ><td class="source"> /**<br></td></tr
  816. ><tr
  817. id=sl_svn7768_98
  818. ><td class="source"> * Apply another matrix to the left of this one.<br></td></tr
  819. ><tr
  820. id=sl_svn7768_99
  821. ><td class="source"> */<br></td></tr
  822. ><tr
  823. id=sl_svn7768_100
  824. ><td class="source"> public void preApply(PMatrix2D left);<br></td></tr
  825. ><tr
  826. id=sl_svn7768_101
  827. ><td class="source"><br></td></tr
  828. ><tr
  829. id=sl_svn7768_102
  830. ><td class="source"> public void preApply(PMatrix3D left);<br></td></tr
  831. ><tr
  832. id=sl_svn7768_103
  833. ><td class="source"><br></td></tr
  834. ><tr
  835. id=sl_svn7768_104
  836. ><td class="source"> public void preApply(float n00, float n01, float n02, <br></td></tr
  837. ><tr
  838. id=sl_svn7768_105
  839. ><td class="source"> float n10, float n11, float n12);<br></td></tr
  840. ><tr
  841. id=sl_svn7768_106
  842. ><td class="source"><br></td></tr
  843. ><tr
  844. id=sl_svn7768_107
  845. ><td class="source"> public void preApply(float n00, float n01, float n02, float n03,<br></td></tr
  846. ><tr
  847. id=sl_svn7768_108
  848. ><td class="source"> float n10, float n11, float n12, float n13,<br></td></tr
  849. ><tr
  850. id=sl_svn7768_109
  851. ><td class="source"> float n20, float n21, float n22, float n23,<br></td></tr
  852. ><tr
  853. id=sl_svn7768_110
  854. ><td class="source"> float n30, float n31, float n32, float n33);<br></td></tr
  855. ><tr
  856. id=sl_svn7768_111
  857. ><td class="source"><br></td></tr
  858. ><tr
  859. id=sl_svn7768_112
  860. ><td class="source"> <br></td></tr
  861. ><tr
  862. id=sl_svn7768_113
  863. ><td class="source"> /** <br></td></tr
  864. ><tr
  865. id=sl_svn7768_114
  866. ><td class="source"> * Multiply a PVector by this matrix. <br></td></tr
  867. ><tr
  868. id=sl_svn7768_115
  869. ><td class="source"> */<br></td></tr
  870. ><tr
  871. id=sl_svn7768_116
  872. ><td class="source"> public PVector mult(PVector source, PVector target);<br></td></tr
  873. ><tr
  874. id=sl_svn7768_117
  875. ><td class="source"> <br></td></tr
  876. ><tr
  877. id=sl_svn7768_118
  878. ><td class="source"> <br></td></tr
  879. ><tr
  880. id=sl_svn7768_119
  881. ><td class="source"> /** <br></td></tr
  882. ><tr
  883. id=sl_svn7768_120
  884. ><td class="source"> * Multiply a multi-element vector against this matrix. <br></td></tr
  885. ><tr
  886. id=sl_svn7768_121
  887. ><td class="source"> */<br></td></tr
  888. ><tr
  889. id=sl_svn7768_122
  890. ><td class="source"> public float[] mult(float[] source, float[] target);<br></td></tr
  891. ><tr
  892. id=sl_svn7768_123
  893. ><td class="source"> <br></td></tr
  894. ><tr
  895. id=sl_svn7768_124
  896. ><td class="source"> <br></td></tr
  897. ><tr
  898. id=sl_svn7768_125
  899. ><td class="source">// public float multX(float x, float y);<br></td></tr
  900. ><tr
  901. id=sl_svn7768_126
  902. ><td class="source">// public float multY(float x, float y);<br></td></tr
  903. ><tr
  904. id=sl_svn7768_127
  905. ><td class="source"> <br></td></tr
  906. ><tr
  907. id=sl_svn7768_128
  908. ><td class="source">// public float multX(float x, float y, float z);<br></td></tr
  909. ><tr
  910. id=sl_svn7768_129
  911. ><td class="source">// public float multY(float x, float y, float z);<br></td></tr
  912. ><tr
  913. id=sl_svn7768_130
  914. ><td class="source">// public float multZ(float x, float y, float z); <br></td></tr
  915. ><tr
  916. id=sl_svn7768_131
  917. ><td class="source"> <br></td></tr
  918. ><tr
  919. id=sl_svn7768_132
  920. ><td class="source"> <br></td></tr
  921. ><tr
  922. id=sl_svn7768_133
  923. ><td class="source"> /**<br></td></tr
  924. ><tr
  925. id=sl_svn7768_134
  926. ><td class="source"> * Transpose this matrix.<br></td></tr
  927. ><tr
  928. id=sl_svn7768_135
  929. ><td class="source"> */<br></td></tr
  930. ><tr
  931. id=sl_svn7768_136
  932. ><td class="source"> public void transpose();<br></td></tr
  933. ><tr
  934. id=sl_svn7768_137
  935. ><td class="source"><br></td></tr
  936. ><tr
  937. id=sl_svn7768_138
  938. ><td class="source"> <br></td></tr
  939. ><tr
  940. id=sl_svn7768_139
  941. ><td class="source"> /**<br></td></tr
  942. ><tr
  943. id=sl_svn7768_140
  944. ><td class="source"> * Invert this matrix.<br></td></tr
  945. ><tr
  946. id=sl_svn7768_141
  947. ><td class="source"> * @return true if successful<br></td></tr
  948. ><tr
  949. id=sl_svn7768_142
  950. ><td class="source"> */<br></td></tr
  951. ><tr
  952. id=sl_svn7768_143
  953. ><td class="source"> public boolean invert();<br></td></tr
  954. ><tr
  955. id=sl_svn7768_144
  956. ><td class="source"> <br></td></tr
  957. ><tr
  958. id=sl_svn7768_145
  959. ><td class="source"> <br></td></tr
  960. ><tr
  961. id=sl_svn7768_146
  962. ><td class="source"> /**<br></td></tr
  963. ><tr
  964. id=sl_svn7768_147
  965. ><td class="source"> * @return the determinant of the matrix<br></td></tr
  966. ><tr
  967. id=sl_svn7768_148
  968. ><td class="source"> */<br></td></tr
  969. ><tr
  970. id=sl_svn7768_149
  971. ><td class="source"> public float determinant();<br></td></tr
  972. ><tr
  973. id=sl_svn7768_150
  974. ><td class="source">}<br></td></tr
  975. ></table></pre>
  976. <pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
  977. </td>
  978. </tr></table>
  979. <script type="text/javascript">
  980. var lineNumUnderMouse = -1;
  981. function gutterOver(num) {
  982. gutterOut();
  983. var newTR = document.getElementById('gr_svn7768_' + num);
  984. if (newTR) {
  985. newTR.className = 'undermouse';
  986. }
  987. lineNumUnderMouse = num;
  988. }
  989. function gutterOut() {
  990. if (lineNumUnderMouse != -1) {
  991. var oldTR = document.getElementById(
  992. 'gr_svn7768_' + lineNumUnderMouse);
  993. if (oldTR) {
  994. oldTR.className = '';
  995. }
  996. lineNumUnderMouse = -1;
  997. }
  998. }
  999. var numsGenState = {table_base_id: 'nums_table_'};
  1000. var srcGenState = {table_base_id: 'src_table_'};
  1001. var alignerRunning = false;
  1002. var startOver = false;
  1003. function setLineNumberHeights() {
  1004. if (alignerRunning) {
  1005. startOver = true;
  1006. return;
  1007. }
  1008. numsGenState.chunk_id = 0;
  1009. numsGenState.table = document.getElementById('nums_table_0');
  1010. numsGenState.row_num = 0;
  1011. srcGenState.chunk_id = 0;
  1012. srcGenState.table = document.getElementById('src_table_0');
  1013. srcGenState.row_num = 0;
  1014. alignerRunning = true;
  1015. continueToSetLineNumberHeights();
  1016. }
  1017. function rowGenerator(genState) {
  1018. if (genState.row_num < genState.table.rows.length) {
  1019. var currentRow = genState.table.rows[genState.row_num];
  1020. genState.row_num++;
  1021. return currentRow;
  1022. }
  1023. var newTable = document.getElementById(
  1024. genState.table_base_id + (genState.chunk_id + 1));
  1025. if (newTable) {
  1026. genState.chunk_id++;
  1027. genState.row_num = 0;
  1028. genState.table = newTable;
  1029. return genState.table.rows[0];
  1030. }
  1031. return null;
  1032. }
  1033. var MAX_ROWS_PER_PASS = 1000;
  1034. function continueToSetLineNumberHeights() {
  1035. var rowsInThisPass = 0;
  1036. var numRow = 1;
  1037. var srcRow = 1;
  1038. while (numRow && srcRow && rowsInThisPass < MAX_ROWS_PER_PASS) {
  1039. numRow = rowGenerator(numsGenState);
  1040. srcRow = rowGenerator(srcGenState);
  1041. rowsInThisPass++;
  1042. if (numRow && srcRow) {
  1043. if (numRow.offsetHeight != srcRow.offsetHeight) {
  1044. numRow.firstChild.style.height = srcRow.offsetHeight + 'px';
  1045. }
  1046. }
  1047. }
  1048. if (rowsInThisPass >= MAX_ROWS_PER_PASS) {
  1049. setTimeout(continueToSetLineNumberHeights, 10);
  1050. } else {
  1051. alignerRunning = false;
  1052. if (startOver) {
  1053. startOver = false;
  1054. setTimeout(setLineNumberHeights, 500);
  1055. }
  1056. }
  1057. }
  1058. // Do 2 complete passes, because there can be races
  1059. // between this code and prettify.
  1060. startOver = true;
  1061. setTimeout(setLineNumberHeights, 250);
  1062. window.onresize = setLineNumberHeights;
  1063. </script>
  1064. <div id="log">
  1065. <div style="text-align:right">
  1066. <a class="ifCollapse" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Show details</a>
  1067. <a class="ifExpand" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Hide details</a>
  1068. </div>
  1069. <div class="ifExpand">
  1070. <div class="pmeta_bubble_bg" style="border:1px solid white">
  1071. <div class="round4"></div>
  1072. <div class="round2"></div>
  1073. <div class="round1"></div>
  1074. <div class="box-inner">
  1075. <div id="changelog">
  1076. <p>Change log</p>
  1077. <div>
  1078. <a href="/p/processing/source/detail?spec=svn7768&r=7133">r7133</a>
  1079. by f...@processing.org
  1080. on Jul 18, 2010
  1081. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=7133&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old_path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old=4997">Diff</a>
  1082. </div>
  1083. <pre>change skewX/Y to shearX/Y</pre>
  1084. </div>
  1085. <script type="text/javascript">
  1086. var detail_url = '/p/processing/source/detail?r=7133&spec=svn7768';
  1087. var publish_url = '/p/processing/source/detail?r=7133&spec=svn7768#publish';
  1088. // describe the paths of this revision in javascript.
  1089. var changed_paths = [];
  1090. var changed_urls = [];
  1091. changed_paths.push('/trunk/processing/android/core/src/processing/core/PApplet.java');
  1092. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PApplet.java?r\x3d7133\x26spec\x3dsvn7768');
  1093. changed_paths.push('/trunk/processing/android/core/src/processing/core/PGraphics.java');
  1094. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphics.java?r\x3d7133\x26spec\x3dsvn7768');
  1095. changed_paths.push('/trunk/processing/android/core/src/processing/core/PGraphicsAndroid2D.java');
  1096. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid2D.java?r\x3d7133\x26spec\x3dsvn7768');
  1097. changed_paths.push('/trunk/processing/android/core/src/processing/core/PGraphicsAndroid3D.java');
  1098. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid3D.java?r\x3d7133\x26spec\x3dsvn7768');
  1099. changed_paths.push('/trunk/processing/android/core/src/processing/core/PMatrix.java');
  1100. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix.java?r\x3d7133\x26spec\x3dsvn7768');
  1101. changed_paths.push('/trunk/processing/android/core/src/processing/core/PMatrix2D.java');
  1102. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix2D.java?r\x3d7133\x26spec\x3dsvn7768');
  1103. changed_paths.push('/trunk/processing/android/core/src/processing/core/PMatrix3D.java');
  1104. changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix3D.java?r\x3d7133\x26spec\x3dsvn7768');
  1105. changed_paths.push('/trunk/processing/android/todo.txt');
  1106. changed_urls.push('/p/processing/source/browse/trunk/processing/android/todo.txt?r\x3d7133\x26spec\x3dsvn7768');
  1107. changed_paths.push('/trunk/processing/core/src/processing/core/PApplet.java');
  1108. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PApplet.java?r\x3d7133\x26spec\x3dsvn7768');
  1109. changed_paths.push('/trunk/processing/core/src/processing/core/PGraphics.java');
  1110. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics.java?r\x3d7133\x26spec\x3dsvn7768');
  1111. changed_paths.push('/trunk/processing/core/src/processing/core/PGraphics3D.java');
  1112. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics3D.java?r\x3d7133\x26spec\x3dsvn7768');
  1113. changed_paths.push('/trunk/processing/core/src/processing/core/PMatrix.java');
  1114. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?r\x3d7133\x26spec\x3dsvn7768');
  1115. var selected_path = '/trunk/processing/core/src/processing/core/PMatrix.java';
  1116. changed_paths.push('/trunk/processing/core/src/processing/core/PMatrix2D.java');
  1117. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix2D.java?r\x3d7133\x26spec\x3dsvn7768');
  1118. changed_paths.push('/trunk/processing/core/src/processing/core/PMatrix3D.java');
  1119. changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix3D.java?r\x3d7133\x26spec\x3dsvn7768');
  1120. changed_paths.push('/trunk/processing/core/todo.txt');
  1121. changed_urls.push('/p/processing/source/browse/trunk/processing/core/todo.txt?r\x3d7133\x26spec\x3dsvn7768');
  1122. function getCurrentPageIndex() {
  1123. for (var i = 0; i < changed_paths.length; i++) {
  1124. if (selected_path == changed_paths[i]) {
  1125. return i;
  1126. }
  1127. }
  1128. }
  1129. function getNextPage() {
  1130. var i = getCurrentPageIndex();
  1131. if (i < changed_paths.length - 1) {
  1132. return changed_urls[i + 1];
  1133. }
  1134. return null;
  1135. }
  1136. function getPreviousPage() {
  1137. var i = getCurrentPageIndex();
  1138. if (i > 0) {
  1139. return changed_urls[i - 1];
  1140. }
  1141. return null;
  1142. }
  1143. function gotoNextPage() {
  1144. var page = getNextPage();
  1145. if (!page) {
  1146. page = detail_url;
  1147. }
  1148. window.location = page;
  1149. }
  1150. function gotoPreviousPage() {
  1151. var page = getPreviousPage();
  1152. if (!page) {
  1153. page = detail_url;
  1154. }
  1155. window.location = page;
  1156. }
  1157. function gotoDetailPage() {
  1158. window.location = detail_url;
  1159. }
  1160. function gotoPublishPage() {
  1161. window.location = publish_url;
  1162. }
  1163. </script>
  1164. <style type="text/css">
  1165. #review_nav {
  1166. border-top: 3px solid white;
  1167. padding-top: 6px;
  1168. margin-top: 1em;
  1169. }
  1170. #review_nav td {
  1171. vertical-align: middle;
  1172. }
  1173. #review_nav select {
  1174. margin: .5em 0;
  1175. }
  1176. </style>
  1177. <div id="review_nav">
  1178. <table><tr><td>Go to:&nbsp;</td><td>
  1179. <select name="files_in_rev" onchange="window.location=this.value">
  1180. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PApplet.java?r=7133&amp;spec=svn7768"
  1181. >...src/processing/core/PApplet.java</option>
  1182. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphics.java?r=7133&amp;spec=svn7768"
  1183. >...c/processing/core/PGraphics.java</option>
  1184. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid2D.java?r=7133&amp;spec=svn7768"
  1185. >...ing/core/PGraphicsAndroid2D.java</option>
  1186. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid3D.java?r=7133&amp;spec=svn7768"
  1187. >...ing/core/PGraphicsAndroid3D.java</option>
  1188. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix.java?r=7133&amp;spec=svn7768"
  1189. >...src/processing/core/PMatrix.java</option>
  1190. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix2D.java?r=7133&amp;spec=svn7768"
  1191. >...c/processing/core/PMatrix2D.java</option>
  1192. <option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix3D.java?r=7133&amp;spec=svn7768"
  1193. >...c/processing/core/PMatrix3D.java</option>
  1194. <option value="/p/processing/source/browse/trunk/processing/android/todo.txt?r=7133&amp;spec=svn7768"
  1195. >/trunk/processing/android/todo.txt</option>
  1196. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PApplet.java?r=7133&amp;spec=svn7768"
  1197. >...src/processing/core/PApplet.java</option>
  1198. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics.java?r=7133&amp;spec=svn7768"
  1199. >...c/processing/core/PGraphics.java</option>
  1200. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics3D.java?r=7133&amp;spec=svn7768"
  1201. >...processing/core/PGraphics3D.java</option>
  1202. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?r=7133&amp;spec=svn7768"
  1203. selected="selected"
  1204. >...src/processing/core/PMatrix.java</option>
  1205. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix2D.java?r=7133&amp;spec=svn7768"
  1206. >...c/processing/core/PMatrix2D.java</option>
  1207. <option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix3D.java?r=7133&amp;spec=svn7768"
  1208. >...c/processing/core/PMatrix3D.java</option>
  1209. <option value="/p/processing/source/browse/trunk/processing/core/todo.txt?r=7133&amp;spec=svn7768"
  1210. >/trunk/processing/core/todo.txt</option>
  1211. </select>
  1212. </td></tr></table>
  1213. </div>
  1214. </div>
  1215. <div class="round1"></div>
  1216. <div class="round2"></div>
  1217. <div class="round4"></div>
  1218. </div>
  1219. <div class="pmeta_bubble_bg" style="border:1px solid white">
  1220. <div class="round4"></div>
  1221. <div class="round2"></div>
  1222. <div class="round1"></div>
  1223. <div class="box-inner">
  1224. <div id="older_bubble">
  1225. <p>Older revisions</p>
  1226. <div class="closed" style="margin-bottom:3px;" >
  1227. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  1228. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  1229. <a href="/p/processing/source/detail?spec=svn7768&r=4997">r4997</a>
  1230. by fry
  1231. on Oct 21, 2008
  1232. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=4997&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old_path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old=4731">Diff</a>
  1233. <br>
  1234. <pre class="ifOpened">adding style attributes for svg, also
  1235. fix the spacing in the file
  1236. </pre>
  1237. </div>
  1238. <div class="closed" style="margin-bottom:3px;" >
  1239. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  1240. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  1241. <a href="/p/processing/source/detail?spec=svn7768&r=4731">r4731</a>
  1242. by fry
  1243. on Oct 08, 2008
  1244. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=4731&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old_path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old=4712">Diff</a>
  1245. <br>
  1246. <pre class="ifOpened">more work on matrix functions,
  1247. implement matrices for PShape, addl
  1248. note in
  1249. PGraphics
  1250. </pre>
  1251. </div>
  1252. <div class="closed" style="margin-bottom:3px;" >
  1253. <img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
  1254. <img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
  1255. <a href="/p/processing/source/detail?spec=svn7768&r=4712">r4712</a>
  1256. by fry
  1257. on Oct 02, 2008
  1258. &nbsp; <a href="/p/processing/source/diff?spec=svn7768&r=4712&amp;format=side&amp;path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old_path=/trunk/processing/core/src/processing/core/PMatrix.java&amp;old=4704">Diff</a>
  1259. <br>
  1260. <pre class="ifOpened">give up on wrapping AffineTransform
  1261. and other matrices
  1262. </pre>
  1263. </div>
  1264. <a href="/p/processing/source/list?path=/trunk/processing/core/src/processing/core/PMatrix.java&start=7133">All revisions of this file</a>
  1265. </div>
  1266. </div>
  1267. <div class="round1"></div>
  1268. <div class="round2"></div>
  1269. <div class="round4"></div>
  1270. </div>
  1271. <div class="pmeta_bubble_bg" style="border:1px solid white">
  1272. <div class="round4"></div>
  1273. <div class="round2"></div>
  1274. <div class="round1"></div>
  1275. <div class="box-inner">
  1276. <div id="fileinfo_bubble">
  1277. <p>File info</p>
  1278. <div>Size: 4016 bytes,
  1279. 150 lines</div>
  1280. <div><a href="http://processing.googlecode.com/svn/trunk/processing/core/src/processing/core/PMatrix.java">View raw file</a></div>
  1281. </div>
  1282. </div>
  1283. <div class="round1"></div>
  1284. <div class="round2"></div>
  1285. <div class="round4"></div>
  1286. </div>
  1287. </div>
  1288. </div>
  1289. </div>
  1290. </div>
  1291. </div>
  1292. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/prettify/prettify.js"></script>
  1293. <script type="text/javascript">prettyPrint();</script>
  1294. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/source_file_scripts.js"></script>
  1295. <script type="text/javascript" src="https://kibbles.googlecode.com/files/kibbles-1.3.3.comp.js"></script>
  1296. <script type="text/javascript">
  1297. var lastStop = null;
  1298. var initilized = false;
  1299. function updateCursor(next, prev) {
  1300. if (prev && prev.element) {
  1301. prev.element.className = 'cursor_stop cursor_hidden';
  1302. }
  1303. if (next && next.element) {
  1304. next.element.className = 'cursor_stop cursor';
  1305. lastStop = next.index;
  1306. }
  1307. }
  1308. function pubRevealed(data) {
  1309. updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
  1310. if (initilized) {
  1311. reloadCursors();
  1312. }
  1313. }
  1314. function draftRevealed(data) {
  1315. updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
  1316. if (initilized) {
  1317. reloadCursors();
  1318. }
  1319. }
  1320. function draftDestroyed(data) {
  1321. updateCursorForCell(data.cellId, 'nocursor');
  1322. if (initilized) {
  1323. reloadCursors();
  1324. }
  1325. }
  1326. function reloadCursors() {
  1327. kibbles.skipper.reset();
  1328. loadCursors();
  1329. if (lastStop != null) {
  1330. kibbles.skipper.setCurrentStop(lastStop);
  1331. }
  1332. }
  1333. // possibly the simplest way to insert any newly added comments
  1334. // is to update the class of the corresponding cursor row,
  1335. // then refresh the entire list of rows.
  1336. function updateCursorForCell(cellId, className) {
  1337. var cell = document.getElementById(cellId);
  1338. // we have to go two rows back to find the cursor location
  1339. var row = getPreviousElement(cell.parentNode);
  1340. row.className = className;
  1341. }
  1342. // returns the previous element, ignores text nodes.
  1343. function getPreviousElement(e) {
  1344. var element = e.previousSibling;
  1345. if (element.nodeType == 3) {
  1346. element = element.previousSibling;
  1347. }
  1348. if (element && element.tagName) {
  1349. return element;
  1350. }
  1351. }
  1352. function loadCursors() {
  1353. // register our elements with skipper
  1354. var elements = CR_getElements('*', 'cursor_stop');
  1355. var len = elements.length;
  1356. for (var i = 0; i < len; i++) {
  1357. var element = elements[i];
  1358. element.className = 'cursor_stop cursor_hidden';
  1359. kibbles.skipper.append(element);
  1360. }
  1361. }
  1362. function toggleComments() {
  1363. CR_toggleCommentDisplay();
  1364. reloadCursors();
  1365. }
  1366. function keysOnLoadHandler() {
  1367. // setup skipper
  1368. kibbles.skipper.addStopListener(
  1369. kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
  1370. // Set the 'offset' option to return the middle of the client area
  1371. // an option can be a static value, or a callback
  1372. kibbles.skipper.setOption('padding_top', 50);
  1373. // Set the 'offset' option to return the middle of the client area
  1374. // an option can be a static value, or a callback
  1375. kibbles.skipper.setOption('padding_bottom', 100);
  1376. // Register our keys
  1377. kibbles.skipper.addFwdKey("n");
  1378. kibbles.skipper.addRevKey("p");
  1379. kibbles.keys.addKeyPressListener(
  1380. 'u', function() { window.location = detail_url; });
  1381. kibbles.keys.addKeyPressListener(
  1382. 'r', function() { window.location = detail_url + '#publish'; });
  1383. kibbles.keys.addKeyPressListener('j', gotoNextPage);
  1384. kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
  1385. }
  1386. </script>
  1387. <script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/code_review_scripts.js"></script>
  1388. <script type="text/javascript">
  1389. // the comment form template
  1390. var form = '<div class="draft"><div class="header"><span class="title">Draft comment:</span></div>' +
  1391. '<div class="body"><form onsubmit="return false;"><textarea id="$ID">$BODY</textarea><br>$ACTIONS</form></div>' +
  1392. '</div>';
  1393. // the comment "plate" template used for both draft and published comment "plates".
  1394. var draft_comment = '<div class="draft" ondblclick="$ONDBLCLICK">' +
  1395. '<div class="header"><span class="title">Draft comment:</span><span class="actions">$ACTIONS</span></div>' +
  1396. '<pre id="$ID" class="body">$BODY</pre>' +
  1397. '</div>';
  1398. var published_comment = '<div class="published">' +
  1399. '<div class="header"><span class="title"><a href="$PROFILE_URL">$AUTHOR:</a></span><div>' +
  1400. '<pre id="$ID" class="body">$BODY</pre>' +
  1401. '</div>';
  1402. function showPublishInstructions() {
  1403. var element = document.getElementById('review_instr');
  1404. if (element) {
  1405. element.className = 'opened';
  1406. }
  1407. }
  1408. function revsOnLoadHandler() {
  1409. // register our source container with the commenting code
  1410. var paths = {'svn7768': '/trunk/processing/core/src/processing/core/PMatrix.java'}
  1411. CR_setup('', 'p', 'processing', '', 'svn7768', paths,
  1412. 'c6974bcd72eb95455827185f7306e1fa', CR_BrowseIntegrationFactory);
  1413. // register our hidden ui elements with the code commenting code ui builder.
  1414. CR_registerLayoutElement('form', form);
  1415. CR_registerLayoutElement('draft_comment', draft_comment);
  1416. CR_registerLayoutElement('published_comment', published_comment);
  1417. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, showPublishInstructions);
  1418. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_PUB_PLATE, pubRevealed);
  1419. CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, draftRevealed);
  1420. CR_registerActivityListener(CR_ACTIVITY_TYPE.DISCARD_DRAFT_COMMENT, draftDestroyed);
  1421. var initilized = true;
  1422. reloadCursors();
  1423. }
  1424. window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};
  1425. </script>
  1426. <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/dit_scripts.js"></script>
  1427. <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/core_scripts_20081103.js"></script>
  1428. <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
  1429. </div>
  1430. <div id="footer" dir="ltr">
  1431. <div class="text">
  1432. &copy;2010 Google -
  1433. <a href="/projecthosting/terms.html">Terms</a> -
  1434. <a href="http://www.google.com/privacy.html">Privacy</a> -
  1435. <a href="/p/support/">Project Hosting Help</a>
  1436. </div>
  1437. </div>
  1438. <div class="hostedBy" style="margin-top: -20px;">
  1439. <span style="vertical-align: top;">Powered by <a href="http://code.google.com/projecthosting/">Google Project Hosting</a></span>
  1440. </div>
  1441. </body>
  1442. </html>