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

<!DOCTYPE html>
<html>
<head>
<link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico">
<script type="text/javascript">
var codesite_token = "c6974bcd72eb95455827185f7306e1fa";
var logged_in_user_email = "Dung.Dang@gmail.com";
var relative_base_url = "";
</script>
<title>PMatrix.java -
processing -
Project Hosting on Google Code</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
<meta name="ROBOTS" content="NOARCHIVE">
<link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_core.css">
<link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/ph_detail.css" >
<link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_sb_20080522.css" >
<!--[if IE]>
<link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/10276742928614796628/css/d_ie.css" >
<![endif]-->
<style type="text/css">
.menuIcon.off { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -42px }
.menuIcon.on { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -28px }
.menuIcon.down { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 0; }
tr.inline_comment {
background: #fff;
vertical-align: top;
}
div.draft, div.published {
padding: .3em;
border: 1px solid #999;
margin-bottom: .1em;
font-family: arial, sans-serif;
max-width: 60em;
}
div.draft {
background: #ffa;
}
div.published {
background: #e5ecf9;
}
div.published .body, div.draft .body {
padding: .5em .1em .1em .1em;
max-width: 60em;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;
font-size: 1em;
}
div.draft .actions {
margin-left: 1em;
font-size: 90%;
}
div.draft form {
padding: .5em .5em .5em 0;
}
div.draft textarea, div.published textarea {
width: 95%;
height: 10em;
font-family: arial, sans-serif;
margin-bottom: .5em;
}
.nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
background-color: white;
height: 2px;
}
.cursor, .cursor td {
background-color: darkblue;
height: 2px;
display: '';
}
.list {
border: 1px solid white;
margin-bottom:0;
}
</style>
</head>
<body class="t4">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(
['siteTracker._setAccount', 'UA-18071-1'],
['siteTracker._trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
</script>
<div class="headbg">
<div id="gaia">
<span>
<b>Dung.Dang@gmail.com</b>
| <a href="/u/@VhVRRVJYBRNNWwl6/" id="projects-dropdown" onclick="return false;"
><u>My favorites</u> <small>&#9660;</small></a>
| <a href="/u/@VhVRRVJYBRNNWwl6/" onclick="_CS_click('/gb/ph/profile');"
title="Profile, Updates, and Settings"
><u>Profile</u></a>
| <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"
onclick="_CS_click('/gb/ph/signout');"
><u>Sign out</u></a>
</span>
</div>
<div class="gbh" style="left: 0pt;"></div>
<div class="gbh" style="right: 0pt;"></div>
<div style="height: 1px"></div>
<!--[if lte IE 7]>
<div style="text-align:center;">
Your version of Internet Explorer is not supported. Try a browser that
contributes to open source, such as <a href="http://www.firefox.com">Firefox</a>,
<a href="http://www.google.com/chrome">Google Chrome</a>, or
<a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>.
</div>
<![endif]-->
<table style="padding:0px; margin: 0px 0px 10px 0px; width:100%" cellpadding="0" cellspacing="0">
<tr style="height: 58px;">
<td id="plogo">
<a href="/p/processing/">
<img src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="Logo">
</a>
</td>
<td style="padding-left: 0.5em">
<div id="pname">
<a href="/p/processing/">processing</a>
</div>
<div id="psum">
<a id="project_summary_link" href="/p/processing/" >An open source programming language and environment for images, animation, and interactions.</a>
</div>
</td>
<td style="white-space:nowrap;text-align:right; vertical-align:bottom;">
<form action="/hosting/search">
<input size="30" name="q" value="" type="text">
<input type="submit" name="projectsearch" value="Search projects" >
</form>
</tr>
</table>
</div>
<div id="mt" class="gtb">
<a href="/p/processing/" class="tab ">Project&nbsp;Home</a>
<a href="/p/processing/downloads/list" class="tab ">Downloads</a>
<a href="/p/processing/w/list" class="tab ">Wiki</a>
<a href="/p/processing/issues/list"
class="tab ">Issues</a>
<a href="/p/processing/source/checkout"
class="tab active">Source</a>
<div class=gtbc></div>
</div>
<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
<tr>
<td class="subt">
<div class="st2">
<div class="isf">
<span class="inst1"><a href="/p/processing/source/checkout">Checkout</a></span> &nbsp;
<span class="inst2"><a href="/p/processing/source/browse/trunk/processing">Browse</a></span> &nbsp;
<span class="inst3"><a href="/p/processing/source/list">Changes</a></span> &nbsp;
<form action="http://www.google.com/codesearch" method="get" style="display:inline"
onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://processing\\.googlecode\\.com'">
<input type="hidden" name="q" id="codesearchq" value="">
<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%">
</form>
</div>
</div>
</td>
<td align="right" valign="top" class="bevel-right"></td>
</tr>
</table>
<script type="text/javascript">
var cancelBubble = false;
function _go(url) { document.location = url; }
</script>
<div id="maincol"
>
<!-- IE -->
<div class="expand">
<div id="colcontrol">
<style type="text/css">
#file_flipper { white-space: nowrap; padding-right: 2em; }
#file_flipper.hidden { display: none; }
#file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
#file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
</style>
<table id="nav_and_rev" class="list"
cellpadding="0" cellspacing="0" width="100%">
<tr>
<td nowrap="nowrap" class="src_crumbs src_nav" width="33%">
<strong class="src_nav">Source path:&nbsp;</strong>
<span id="crumb_root">
<a href="/p/processing/source/browse/">svn</a>/&nbsp;</span>
<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>
</td>
<td nowrap="nowrap" width="33%" align="center">
<a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?edit=1"
><img src="http://www.gstatic.com/codesite/ph/images/pencil-y14.png"
class="edit_icon">Edit file</a>
</td>
<td nowrap="nowrap" width="33%" align="right">
<table cellpadding="0" cellspacing="0" style="font-size: 100%"><tr>
<td class="flipper">
<ul class="leftside">
<li><a href="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?r=4997" title="Previous">&lsaquo;r4997</a></li>
</ul>
</td>
<td class="flipper"><b>r7768</b></td>
</tr></table>
</td>
</tr>
</table>
<div class="fc">
<style type="text/css">
.undermouse span {
background-image: url(http://www.gstatic.com/codesite/ph/images/comments.gif); }
</style>
<table class="opened" id="review_comment_area"
><tr>
<td id="nums">
<pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
<pre><table width="100%" id="nums_table_0"><tr id="gr_svn7768_1"
><td id="1"><a href="#1">1</a></td></tr
><tr id="gr_svn7768_2"
><td id="2"><a href="#2">2</a></td></tr
><tr id="gr_svn7768_3"
><td id="3"><a href="#3">3</a></td></tr
><tr id="gr_svn7768_4"
><td id="4"><a href="#4">4</a></td></tr
><tr id="gr_svn7768_5"
><td id="5"><a href="#5">5</a></td></tr
><tr id="gr_svn7768_6"
><td id="6"><a href="#6">6</a></td></tr
><tr id="gr_svn7768_7"
><td id="7"><a href="#7">7</a></td></tr
><tr id="gr_svn7768_8"
><td id="8"><a href="#8">8</a></td></tr
><tr id="gr_svn7768_9"
><td id="9"><a href="#9">9</a></td></tr
><tr id="gr_svn7768_10"
><td id="10"><a href="#10">10</a></td></tr
><tr id="gr_svn7768_11"
><td id="11"><a href="#11">11</a></td></tr
><tr id="gr_svn7768_12"
><td id="12"><a href="#12">12</a></td></tr
><tr id="gr_svn7768_13"
><td id="13"><a href="#13">13</a></td></tr
><tr id="gr_svn7768_14"
><td id="14"><a href="#14">14</a></td></tr
><tr id="gr_svn7768_15"
><td id="15"><a href="#15">15</a></td></tr
><tr id="gr_svn7768_16"
><td id="16"><a href="#16">16</a></td></tr
><tr id="gr_svn7768_17"
><td id="17"><a href="#17">17</a></td></tr
><tr id="gr_svn7768_18"
><td id="18"><a href="#18">18</a></td></tr
><tr id="gr_svn7768_19"
><td id="19"><a href="#19">19</a></td></tr
><tr id="gr_svn7768_20"
><td id="20"><a href="#20">20</a></td></tr
><tr id="gr_svn7768_21"
><td id="21"><a href="#21">21</a></td></tr
><tr id="gr_svn7768_22"
><td id="22"><a href="#22">22</a></td></tr
><tr id="gr_svn7768_23"
><td id="23"><a href="#23">23</a></td></tr
><tr id="gr_svn7768_24"
><td id="24"><a href="#24">24</a></td></tr
><tr id="gr_svn7768_25"
><td id="25"><a href="#25">25</a></td></tr
><tr id="gr_svn7768_26"
><td id="26"><a href="#26">26</a></td></tr
><tr id="gr_svn7768_27"
><td id="27"><a href="#27">27</a></td></tr
><tr id="gr_svn7768_28"
><td id="28"><a href="#28">28</a></td></tr
><tr id="gr_svn7768_29"
><td id="29"><a href="#29">29</a></td></tr
><tr id="gr_svn7768_30"
><td id="30"><a href="#30">30</a></td></tr
><tr id="gr_svn7768_31"
><td id="31"><a href="#31">31</a></td></tr
><tr id="gr_svn7768_32"
><td id="32"><a href="#32">32</a></td></tr
><tr id="gr_svn7768_33"
><td id="33"><a href="#33">33</a></td></tr
><tr id="gr_svn7768_34"
><td id="34"><a href="#34">34</a></td></tr
><tr id="gr_svn7768_35"
><td id="35"><a href="#35">35</a></td></tr
><tr id="gr_svn7768_36"
><td id="36"><a href="#36">36</a></td></tr
><tr id="gr_svn7768_37"
><td id="37"><a href="#37">37</a></td></tr
><tr id="gr_svn7768_38"
><td id="38"><a href="#38">38</a></td></tr
><tr id="gr_svn7768_39"
><td id="39"><a href="#39">39</a></td></tr
><tr id="gr_svn7768_40"
><td id="40"><a href="#40">40</a></td></tr
><tr id="gr_svn7768_41"
><td id="41"><a href="#41">41</a></td></tr
><tr id="gr_svn7768_42"
><td id="42"><a href="#42">42</a></td></tr
><tr id="gr_svn7768_43"
><td id="43"><a href="#43">43</a></td></tr
><tr id="gr_svn7768_44"
><td id="44"><a href="#44">44</a></td></tr
><tr id="gr_svn7768_45"
><td id="45"><a href="#45">45</a></td></tr
><tr id="gr_svn7768_46"
><td id="46"><a href="#46">46</a></td></tr
><tr id="gr_svn7768_47"
><td id="47"><a href="#47">47</a></td></tr
><tr id="gr_svn7768_48"
><td id="48"><a href="#48">48</a></td></tr
><tr id="gr_svn7768_49"
><td id="49"><a href="#49">49</a></td></tr
><tr id="gr_svn7768_50"
><td id="50"><a href="#50">50</a></td></tr
><tr id="gr_svn7768_51"
><td id="51"><a href="#51">51</a></td></tr
><tr id="gr_svn7768_52"
><td id="52"><a href="#52">52</a></td></tr
><tr id="gr_svn7768_53"
><td id="53"><a href="#53">53</a></td></tr
><tr id="gr_svn7768_54"
><td id="54"><a href="#54">54</a></td></tr
><tr id="gr_svn7768_55"
><td id="55"><a href="#55">55</a></td></tr
><tr id="gr_svn7768_56"
><td id="56"><a href="#56">56</a></td></tr
><tr id="gr_svn7768_57"
><td id="57"><a href="#57">57</a></td></tr
><tr id="gr_svn7768_58"
><td id="58"><a href="#58">58</a></td></tr
><tr id="gr_svn7768_59"
><td id="59"><a href="#59">59</a></td></tr
><tr id="gr_svn7768_60"
><td id="60"><a href="#60">60</a></td></tr
><tr id="gr_svn7768_61"
><td id="61"><a href="#61">61</a></td></tr
><tr id="gr_svn7768_62"
><td id="62"><a href="#62">62</a></td></tr
><tr id="gr_svn7768_63"
><td id="63"><a href="#63">63</a></td></tr
><tr id="gr_svn7768_64"
><td id="64"><a href="#64">64</a></td></tr
><tr id="gr_svn7768_65"
><td id="65"><a href="#65">65</a></td></tr
><tr id="gr_svn7768_66"
><td id="66"><a href="#66">66</a></td></tr
><tr id="gr_svn7768_67"
><td id="67"><a href="#67">67</a></td></tr
><tr id="gr_svn7768_68"
><td id="68"><a href="#68">68</a></td></tr
><tr id="gr_svn7768_69"
><td id="69"><a href="#69">69</a></td></tr
><tr id="gr_svn7768_70"
><td id="70"><a href="#70">70</a></td></tr
><tr id="gr_svn7768_71"
><td id="71"><a href="#71">71</a></td></tr
><tr id="gr_svn7768_72"
><td id="72"><a href="#72">72</a></td></tr
><tr id="gr_svn7768_73"
><td id="73"><a href="#73">73</a></td></tr
><tr id="gr_svn7768_74"
><td id="74"><a href="#74">74</a></td></tr
><tr id="gr_svn7768_75"
><td id="75"><a href="#75">75</a></td></tr
><tr id="gr_svn7768_76"
><td id="76"><a href="#76">76</a></td></tr
><tr id="gr_svn7768_77"
><td id="77"><a href="#77">77</a></td></tr
><tr id="gr_svn7768_78"
><td id="78"><a href="#78">78</a></td></tr
><tr id="gr_svn7768_79"
><td id="79"><a href="#79">79</a></td></tr
><tr id="gr_svn7768_80"
><td id="80"><a href="#80">80</a></td></tr
><tr id="gr_svn7768_81"
><td id="81"><a href="#81">81</a></td></tr
><tr id="gr_svn7768_82"
><td id="82"><a href="#82">82</a></td></tr
><tr id="gr_svn7768_83"
><td id="83"><a href="#83">83</a></td></tr
><tr id="gr_svn7768_84"
><td id="84"><a href="#84">84</a></td></tr
><tr id="gr_svn7768_85"
><td id="85"><a href="#85">85</a></td></tr
><tr id="gr_svn7768_86"
><td id="86"><a href="#86">86</a></td></tr
><tr id="gr_svn7768_87"
><td id="87"><a href="#87">87</a></td></tr
><tr id="gr_svn7768_88"
><td id="88"><a href="#88">88</a></td></tr
><tr id="gr_svn7768_89"
><td id="89"><a href="#89">89</a></td></tr
><tr id="gr_svn7768_90"
><td id="90"><a href="#90">90</a></td></tr
><tr id="gr_svn7768_91"
><td id="91"><a href="#91">91</a></td></tr
><tr id="gr_svn7768_92"
><td id="92"><a href="#92">92</a></td></tr
><tr id="gr_svn7768_93"
><td id="93"><a href="#93">93</a></td></tr
><tr id="gr_svn7768_94"
><td id="94"><a href="#94">94</a></td></tr
><tr id="gr_svn7768_95"
><td id="95"><a href="#95">95</a></td></tr
><tr id="gr_svn7768_96"
><td id="96"><a href="#96">96</a></td></tr
><tr id="gr_svn7768_97"
><td id="97"><a href="#97">97</a></td></tr
><tr id="gr_svn7768_98"
><td id="98"><a href="#98">98</a></td></tr
><tr id="gr_svn7768_99"
><td id="99"><a href="#99">99</a></td></tr
><tr id="gr_svn7768_100"
><td id="100"><a href="#100">100</a></td></tr
><tr id="gr_svn7768_101"
><td id="101"><a href="#101">101</a></td></tr
><tr id="gr_svn7768_102"
><td id="102"><a href="#102">102</a></td></tr
><tr id="gr_svn7768_103"
><td id="103"><a href="#103">103</a></td></tr
><tr id="gr_svn7768_104"
><td id="104"><a href="#104">104</a></td></tr
><tr id="gr_svn7768_105"
><td id="105"><a href="#105">105</a></td></tr
><tr id="gr_svn7768_106"
><td id="106"><a href="#106">106</a></td></tr
><tr id="gr_svn7768_107"
><td id="107"><a href="#107">107</a></td></tr
><tr id="gr_svn7768_108"
><td id="108"><a href="#108">108</a></td></tr
><tr id="gr_svn7768_109"
><td id="109"><a href="#109">109</a></td></tr
><tr id="gr_svn7768_110"
><td id="110"><a href="#110">110</a></td></tr
><tr id="gr_svn7768_111"
><td id="111"><a href="#111">111</a></td></tr
><tr id="gr_svn7768_112"
><td id="112"><a href="#112">112</a></td></tr
><tr id="gr_svn7768_113"
><td id="113"><a href="#113">113</a></td></tr
><tr id="gr_svn7768_114"
><td id="114"><a href="#114">114</a></td></tr
><tr id="gr_svn7768_115"
><td id="115"><a href="#115">115</a></td></tr
><tr id="gr_svn7768_116"
><td id="116"><a href="#116">116</a></td></tr
><tr id="gr_svn7768_117"
><td id="117"><a href="#117">117</a></td></tr
><tr id="gr_svn7768_118"
><td id="118"><a href="#118">118</a></td></tr
><tr id="gr_svn7768_119"
><td id="119"><a href="#119">119</a></td></tr
><tr id="gr_svn7768_120"
><td id="120"><a href="#120">120</a></td></tr
><tr id="gr_svn7768_121"
><td id="121"><a href="#121">121</a></td></tr
><tr id="gr_svn7768_122"
><td id="122"><a href="#122">122</a></td></tr
><tr id="gr_svn7768_123"
><td id="123"><a href="#123">123</a></td></tr
><tr id="gr_svn7768_124"
><td id="124"><a href="#124">124</a></td></tr
><tr id="gr_svn7768_125"
><td id="125"><a href="#125">125</a></td></tr
><tr id="gr_svn7768_126"
><td id="126"><a href="#126">126</a></td></tr
><tr id="gr_svn7768_127"
><td id="127"><a href="#127">127</a></td></tr
><tr id="gr_svn7768_128"
><td id="128"><a href="#128">128</a></td></tr
><tr id="gr_svn7768_129"
><td id="129"><a href="#129">129</a></td></tr
><tr id="gr_svn7768_130"
><td id="130"><a href="#130">130</a></td></tr
><tr id="gr_svn7768_131"
><td id="131"><a href="#131">131</a></td></tr
><tr id="gr_svn7768_132"
><td id="132"><a href="#132">132</a></td></tr
><tr id="gr_svn7768_133"
><td id="133"><a href="#133">133</a></td></tr
><tr id="gr_svn7768_134"
><td id="134"><a href="#134">134</a></td></tr
><tr id="gr_svn7768_135"
><td id="135"><a href="#135">135</a></td></tr
><tr id="gr_svn7768_136"
><td id="136"><a href="#136">136</a></td></tr
><tr id="gr_svn7768_137"
><td id="137"><a href="#137">137</a></td></tr
><tr id="gr_svn7768_138"
><td id="138"><a href="#138">138</a></td></tr
><tr id="gr_svn7768_139"
><td id="139"><a href="#139">139</a></td></tr
><tr id="gr_svn7768_140"
><td id="140"><a href="#140">140</a></td></tr
><tr id="gr_svn7768_141"
><td id="141"><a href="#141">141</a></td></tr
><tr id="gr_svn7768_142"
><td id="142"><a href="#142">142</a></td></tr
><tr id="gr_svn7768_143"
><td id="143"><a href="#143">143</a></td></tr
><tr id="gr_svn7768_144"
><td id="144"><a href="#144">144</a></td></tr
><tr id="gr_svn7768_145"
><td id="145"><a href="#145">145</a></td></tr
><tr id="gr_svn7768_146"
><td id="146"><a href="#146">146</a></td></tr
><tr id="gr_svn7768_147"
><td id="147"><a href="#147">147</a></td></tr
><tr id="gr_svn7768_148"
><td id="148"><a href="#148">148</a></td></tr
><tr id="gr_svn7768_149"
><td id="149"><a href="#149">149</a></td></tr
><tr id="gr_svn7768_150"
><td id="150"><a href="#150">150</a></td></tr
></table></pre>
<pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
</td>
<td id="lines">
<pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
<pre class="prettyprint lang-java"><table id="src_table_0"><tr
id=sl_svn7768_1
><td class="source">/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */<br></td></tr
><tr
id=sl_svn7768_2
><td class="source"><br></td></tr
><tr
id=sl_svn7768_3
><td class="source">/*<br></td></tr
><tr
id=sl_svn7768_4
><td class="source"> Part of the Processing project - http://processing.org<br></td></tr
><tr
id=sl_svn7768_5
><td class="source"><br></td></tr
><tr
id=sl_svn7768_6
><td class="source"> Copyright (c) 2005-08 Ben Fry and Casey Reas<br></td></tr
><tr
id=sl_svn7768_7
><td class="source"><br></td></tr
><tr
id=sl_svn7768_8
><td class="source"> This library is free software; you can redistribute it and/or<br></td></tr
><tr
id=sl_svn7768_9
><td class="source"> modify it under the terms of the GNU Lesser General Public<br></td></tr
><tr
id=sl_svn7768_10
><td class="source"> License as published by the Free Software Foundation; either<br></td></tr
><tr
id=sl_svn7768_11
><td class="source"> version 2.1 of the License, or (at your option) any later version.<br></td></tr
><tr
id=sl_svn7768_12
><td class="source"><br></td></tr
><tr
id=sl_svn7768_13
><td class="source"> This library is distributed in the hope that it will be useful,<br></td></tr
><tr
id=sl_svn7768_14
><td class="source"> but WITHOUT ANY WARRANTY; without even the implied warranty of<br></td></tr
><tr
id=sl_svn7768_15
><td class="source"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br></td></tr
><tr
id=sl_svn7768_16
><td class="source"> Lesser General Public License for more details.<br></td></tr
><tr
id=sl_svn7768_17
><td class="source"><br></td></tr
><tr
id=sl_svn7768_18
><td class="source"> You should have received a copy of the GNU Lesser General<br></td></tr
><tr
id=sl_svn7768_19
><td class="source"> Public License along with this library; if not, write to the<br></td></tr
><tr
id=sl_svn7768_20
><td class="source"> Free Software Foundation, Inc., 59 Temple Place, Suite 330,<br></td></tr
><tr
id=sl_svn7768_21
><td class="source"> Boston, MA 02111-1307 USA<br></td></tr
><tr
id=sl_svn7768_22
><td class="source">*/<br></td></tr
><tr
id=sl_svn7768_23
><td class="source"><br></td></tr
><tr
id=sl_svn7768_24
><td class="source">package processing.core;<br></td></tr
><tr
id=sl_svn7768_25
><td class="source"><br></td></tr
><tr
id=sl_svn7768_26
><td class="source"><br></td></tr
><tr
id=sl_svn7768_27
><td class="source">public interface PMatrix {<br></td></tr
><tr
id=sl_svn7768_28
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_29
><td class="source"> public void reset();<br></td></tr
><tr
id=sl_svn7768_30
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_31
><td class="source"> /**<br></td></tr
><tr
id=sl_svn7768_32
><td class="source"> * Returns a copy of this PMatrix.<br></td></tr
><tr
id=sl_svn7768_33
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_34
><td class="source"> public PMatrix get(); <br></td></tr
><tr
id=sl_svn7768_35
><td class="source"><br></td></tr
><tr
id=sl_svn7768_36
><td class="source"> /**<br></td></tr
><tr
id=sl_svn7768_37
><td class="source"> * Copies the matrix contents into a float array.<br></td></tr
><tr
id=sl_svn7768_38
><td class="source"> * If target is null (or not the correct size), a new array will be created.<br></td></tr
><tr
id=sl_svn7768_39
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_40
><td class="source"> public float[] get(float[] target);<br></td></tr
><tr
id=sl_svn7768_41
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_42
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_43
><td class="source"> public void set(PMatrix src);<br></td></tr
><tr
id=sl_svn7768_44
><td class="source"><br></td></tr
><tr
id=sl_svn7768_45
><td class="source"> public void set(float[] source);<br></td></tr
><tr
id=sl_svn7768_46
><td class="source"><br></td></tr
><tr
id=sl_svn7768_47
><td class="source"> public void set(float m00, float m01, float m02, <br></td></tr
><tr
id=sl_svn7768_48
><td class="source"> float m10, float m11, float m12);<br></td></tr
><tr
id=sl_svn7768_49
><td class="source"><br></td></tr
><tr
id=sl_svn7768_50
><td class="source"> public void set(float m00, float m01, float m02, float m03,<br></td></tr
><tr
id=sl_svn7768_51
><td class="source"> float m10, float m11, float m12, float m13,<br></td></tr
><tr
id=sl_svn7768_52
><td class="source"> float m20, float m21, float m22, float m23,<br></td></tr
><tr
id=sl_svn7768_53
><td class="source"> float m30, float m31, float m32, float m33);<br></td></tr
><tr
id=sl_svn7768_54
><td class="source"><br></td></tr
><tr
id=sl_svn7768_55
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_56
><td class="source"> public void translate(float tx, float ty);<br></td></tr
><tr
id=sl_svn7768_57
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_58
><td class="source"> public void translate(float tx, float ty, float tz);<br></td></tr
><tr
id=sl_svn7768_59
><td class="source"><br></td></tr
><tr
id=sl_svn7768_60
><td class="source"> public void rotate(float angle);<br></td></tr
><tr
id=sl_svn7768_61
><td class="source"><br></td></tr
><tr
id=sl_svn7768_62
><td class="source"> public void rotateX(float angle);<br></td></tr
><tr
id=sl_svn7768_63
><td class="source"><br></td></tr
><tr
id=sl_svn7768_64
><td class="source"> public void rotateY(float angle);<br></td></tr
><tr
id=sl_svn7768_65
><td class="source"><br></td></tr
><tr
id=sl_svn7768_66
><td class="source"> public void rotateZ(float angle);<br></td></tr
><tr
id=sl_svn7768_67
><td class="source"><br></td></tr
><tr
id=sl_svn7768_68
><td class="source"> public void rotate(float angle, float v0, float v1, float v2);<br></td></tr
><tr
id=sl_svn7768_69
><td class="source"><br></td></tr
><tr
id=sl_svn7768_70
><td class="source"> public void scale(float s);<br></td></tr
><tr
id=sl_svn7768_71
><td class="source"><br></td></tr
><tr
id=sl_svn7768_72
><td class="source"> public void scale(float sx, float sy);<br></td></tr
><tr
id=sl_svn7768_73
><td class="source"><br></td></tr
><tr
id=sl_svn7768_74
><td class="source"> public void scale(float x, float y, float z);<br></td></tr
><tr
id=sl_svn7768_75
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_76
><td class="source"> public void shearX(float angle);<br></td></tr
><tr
id=sl_svn7768_77
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_78
><td class="source"> public void shearY(float angle);<br></td></tr
><tr
id=sl_svn7768_79
><td class="source"><br></td></tr
><tr
id=sl_svn7768_80
><td class="source"> /** <br></td></tr
><tr
id=sl_svn7768_81
><td class="source"> * Multiply this matrix by another.<br></td></tr
><tr
id=sl_svn7768_82
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_83
><td class="source"> public void apply(PMatrix source);<br></td></tr
><tr
id=sl_svn7768_84
><td class="source"><br></td></tr
><tr
id=sl_svn7768_85
><td class="source"> public void apply(PMatrix2D source);<br></td></tr
><tr
id=sl_svn7768_86
><td class="source"><br></td></tr
><tr
id=sl_svn7768_87
><td class="source"> public void apply(PMatrix3D source);<br></td></tr
><tr
id=sl_svn7768_88
><td class="source"><br></td></tr
><tr
id=sl_svn7768_89
><td class="source"> public void apply(float n00, float n01, float n02, <br></td></tr
><tr
id=sl_svn7768_90
><td class="source"> float n10, float n11, float n12);<br></td></tr
><tr
id=sl_svn7768_91
><td class="source"><br></td></tr
><tr
id=sl_svn7768_92
><td class="source"> public void apply(float n00, float n01, float n02, float n03,<br></td></tr
><tr
id=sl_svn7768_93
><td class="source"> float n10, float n11, float n12, float n13,<br></td></tr
><tr
id=sl_svn7768_94
><td class="source"> float n20, float n21, float n22, float n23,<br></td></tr
><tr
id=sl_svn7768_95
><td class="source"> float n30, float n31, float n32, float n33);<br></td></tr
><tr
id=sl_svn7768_96
><td class="source"><br></td></tr
><tr
id=sl_svn7768_97
><td class="source"> /**<br></td></tr
><tr
id=sl_svn7768_98
><td class="source"> * Apply another matrix to the left of this one.<br></td></tr
><tr
id=sl_svn7768_99
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_100
><td class="source"> public void preApply(PMatrix2D left);<br></td></tr
><tr
id=sl_svn7768_101
><td class="source"><br></td></tr
><tr
id=sl_svn7768_102
><td class="source"> public void preApply(PMatrix3D left);<br></td></tr
><tr
id=sl_svn7768_103
><td class="source"><br></td></tr
><tr
id=sl_svn7768_104
><td class="source"> public void preApply(float n00, float n01, float n02, <br></td></tr
><tr
id=sl_svn7768_105
><td class="source"> float n10, float n11, float n12);<br></td></tr
><tr
id=sl_svn7768_106
><td class="source"><br></td></tr
><tr
id=sl_svn7768_107
><td class="source"> public void preApply(float n00, float n01, float n02, float n03,<br></td></tr
><tr
id=sl_svn7768_108
><td class="source"> float n10, float n11, float n12, float n13,<br></td></tr
><tr
id=sl_svn7768_109
><td class="source"> float n20, float n21, float n22, float n23,<br></td></tr
><tr
id=sl_svn7768_110
><td class="source"> float n30, float n31, float n32, float n33);<br></td></tr
><tr
id=sl_svn7768_111
><td class="source"><br></td></tr
><tr
id=sl_svn7768_112
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_113
><td class="source"> /** <br></td></tr
><tr
id=sl_svn7768_114
><td class="source"> * Multiply a PVector by this matrix. <br></td></tr
><tr
id=sl_svn7768_115
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_116
><td class="source"> public PVector mult(PVector source, PVector target);<br></td></tr
><tr
id=sl_svn7768_117
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_118
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_119
><td class="source"> /** <br></td></tr
><tr
id=sl_svn7768_120
><td class="source"> * Multiply a multi-element vector against this matrix. <br></td></tr
><tr
id=sl_svn7768_121
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_122
><td class="source"> public float[] mult(float[] source, float[] target);<br></td></tr
><tr
id=sl_svn7768_123
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_124
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_125
><td class="source">// public float multX(float x, float y);<br></td></tr
><tr
id=sl_svn7768_126
><td class="source">// public float multY(float x, float y);<br></td></tr
><tr
id=sl_svn7768_127
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_128
><td class="source">// public float multX(float x, float y, float z);<br></td></tr
><tr
id=sl_svn7768_129
><td class="source">// public float multY(float x, float y, float z);<br></td></tr
><tr
id=sl_svn7768_130
><td class="source">// public float multZ(float x, float y, float z); <br></td></tr
><tr
id=sl_svn7768_131
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_132
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_133
><td class="source"> /**<br></td></tr
><tr
id=sl_svn7768_134
><td class="source"> * Transpose this matrix.<br></td></tr
><tr
id=sl_svn7768_135
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_136
><td class="source"> public void transpose();<br></td></tr
><tr
id=sl_svn7768_137
><td class="source"><br></td></tr
><tr
id=sl_svn7768_138
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_139
><td class="source"> /**<br></td></tr
><tr
id=sl_svn7768_140
><td class="source"> * Invert this matrix.<br></td></tr
><tr
id=sl_svn7768_141
><td class="source"> * @return true if successful<br></td></tr
><tr
id=sl_svn7768_142
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_143
><td class="source"> public boolean invert();<br></td></tr
><tr
id=sl_svn7768_144
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_145
><td class="source"> <br></td></tr
><tr
id=sl_svn7768_146
><td class="source"> /**<br></td></tr
><tr
id=sl_svn7768_147
><td class="source"> * @return the determinant of the matrix<br></td></tr
><tr
id=sl_svn7768_148
><td class="source"> */<br></td></tr
><tr
id=sl_svn7768_149
><td class="source"> public float determinant();<br></td></tr
><tr
id=sl_svn7768_150
><td class="source">}<br></td></tr
></table></pre>
<pre class="prettyprint"><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
</td>
</tr></table>
<script type="text/javascript">
var lineNumUnderMouse = -1;
function gutterOver(num) {
gutterOut();
var newTR = document.getElementById('gr_svn7768_' + num);
if (newTR) {
newTR.className = 'undermouse';
}
lineNumUnderMouse = num;
}
function gutterOut() {
if (lineNumUnderMouse != -1) {
var oldTR = document.getElementById(
'gr_svn7768_' + lineNumUnderMouse);
if (oldTR) {
oldTR.className = '';
}
lineNumUnderMouse = -1;
}
}
var numsGenState = {table_base_id: 'nums_table_'};
var srcGenState = {table_base_id: 'src_table_'};
var alignerRunning = false;
var startOver = false;
function setLineNumberHeights() {
if (alignerRunning) {
startOver = true;
return;
}
numsGenState.chunk_id = 0;
numsGenState.table = document.getElementById('nums_table_0');
numsGenState.row_num = 0;
srcGenState.chunk_id = 0;
srcGenState.table = document.getElementById('src_table_0');
srcGenState.row_num = 0;
alignerRunning = true;
continueToSetLineNumberHeights();
}
function rowGenerator(genState) {
if (genState.row_num < genState.table.rows.length) {
var currentRow = genState.table.rows[genState.row_num];
genState.row_num++;
return currentRow;
}
var newTable = document.getElementById(
genState.table_base_id + (genState.chunk_id + 1));
if (newTable) {
genState.chunk_id++;
genState.row_num = 0;
genState.table = newTable;
return genState.table.rows[0];
}
return null;
}
var MAX_ROWS_PER_PASS = 1000;
function continueToSetLineNumberHeights() {
var rowsInThisPass = 0;
var numRow = 1;
var srcRow = 1;
while (numRow && srcRow && rowsInThisPass < MAX_ROWS_PER_PASS) {
numRow = rowGenerator(numsGenState);
srcRow = rowGenerator(srcGenState);
rowsInThisPass++;
if (numRow && srcRow) {
if (numRow.offsetHeight != srcRow.offsetHeight) {
numRow.firstChild.style.height = srcRow.offsetHeight + 'px';
}
}
}
if (rowsInThisPass >= MAX_ROWS_PER_PASS) {
setTimeout(continueToSetLineNumberHeights, 10);
} else {
alignerRunning = false;
if (startOver) {
startOver = false;
setTimeout(setLineNumberHeights, 500);
}
}
}
// Do 2 complete passes, because there can be races
// between this code and prettify.
startOver = true;
setTimeout(setLineNumberHeights, 250);
window.onresize = setLineNumberHeights;
</script>
<div id="log">
<div style="text-align:right">
<a class="ifCollapse" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Show details</a>
<a class="ifExpand" href="#" onclick="_toggleMeta('', 'p', 'processing', this)">Hide details</a>
</div>
<div class="ifExpand">
<div class="pmeta_bubble_bg" style="border:1px solid white">
<div class="round4"></div>
<div class="round2"></div>
<div class="round1"></div>
<div class="box-inner">
<div id="changelog">
<p>Change log</p>
<div>
<a href="/p/processing/source/detail?spec=svn7768&r=7133">r7133</a>
by f...@processing.org
on Jul 18, 2010
&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>
</div>
<pre>change skewX/Y to shearX/Y</pre>
</div>
<script type="text/javascript">
var detail_url = '/p/processing/source/detail?r=7133&spec=svn7768';
var publish_url = '/p/processing/source/detail?r=7133&spec=svn7768#publish';
// describe the paths of this revision in javascript.
var changed_paths = [];
var changed_urls = [];
changed_paths.push('/trunk/processing/android/core/src/processing/core/PApplet.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PApplet.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/core/src/processing/core/PGraphics.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphics.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/core/src/processing/core/PGraphicsAndroid2D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid2D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/core/src/processing/core/PGraphicsAndroid3D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid3D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/core/src/processing/core/PMatrix.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/core/src/processing/core/PMatrix2D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix2D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/core/src/processing/core/PMatrix3D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix3D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/android/todo.txt');
changed_urls.push('/p/processing/source/browse/trunk/processing/android/todo.txt?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/core/src/processing/core/PApplet.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PApplet.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/core/src/processing/core/PGraphics.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/core/src/processing/core/PGraphics3D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics3D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/core/src/processing/core/PMatrix.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?r\x3d7133\x26spec\x3dsvn7768');
var selected_path = '/trunk/processing/core/src/processing/core/PMatrix.java';
changed_paths.push('/trunk/processing/core/src/processing/core/PMatrix2D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix2D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/core/src/processing/core/PMatrix3D.java');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix3D.java?r\x3d7133\x26spec\x3dsvn7768');
changed_paths.push('/trunk/processing/core/todo.txt');
changed_urls.push('/p/processing/source/browse/trunk/processing/core/todo.txt?r\x3d7133\x26spec\x3dsvn7768');
function getCurrentPageIndex() {
for (var i = 0; i < changed_paths.length; i++) {
if (selected_path == changed_paths[i]) {
return i;
}
}
}
function getNextPage() {
var i = getCurrentPageIndex();
if (i < changed_paths.length - 1) {
return changed_urls[i + 1];
}
return null;
}
function getPreviousPage() {
var i = getCurrentPageIndex();
if (i > 0) {
return changed_urls[i - 1];
}
return null;
}
function gotoNextPage() {
var page = getNextPage();
if (!page) {
page = detail_url;
}
window.location = page;
}
function gotoPreviousPage() {
var page = getPreviousPage();
if (!page) {
page = detail_url;
}
window.location = page;
}
function gotoDetailPage() {
window.location = detail_url;
}
function gotoPublishPage() {
window.location = publish_url;
}
</script>
<style type="text/css">
#review_nav {
border-top: 3px solid white;
padding-top: 6px;
margin-top: 1em;
}
#review_nav td {
vertical-align: middle;
}
#review_nav select {
margin: .5em 0;
}
</style>
<div id="review_nav">
<table><tr><td>Go to:&nbsp;</td><td>
<select name="files_in_rev" onchange="window.location=this.value">
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PApplet.java?r=7133&amp;spec=svn7768"
>...src/processing/core/PApplet.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphics.java?r=7133&amp;spec=svn7768"
>...c/processing/core/PGraphics.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid2D.java?r=7133&amp;spec=svn7768"
>...ing/core/PGraphicsAndroid2D.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PGraphicsAndroid3D.java?r=7133&amp;spec=svn7768"
>...ing/core/PGraphicsAndroid3D.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix.java?r=7133&amp;spec=svn7768"
>...src/processing/core/PMatrix.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix2D.java?r=7133&amp;spec=svn7768"
>...c/processing/core/PMatrix2D.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/core/src/processing/core/PMatrix3D.java?r=7133&amp;spec=svn7768"
>...c/processing/core/PMatrix3D.java</option>
<option value="/p/processing/source/browse/trunk/processing/android/todo.txt?r=7133&amp;spec=svn7768"
>/trunk/processing/android/todo.txt</option>
<option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PApplet.java?r=7133&amp;spec=svn7768"
>...src/processing/core/PApplet.java</option>
<option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics.java?r=7133&amp;spec=svn7768"
>...c/processing/core/PGraphics.java</option>
<option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PGraphics3D.java?r=7133&amp;spec=svn7768"
>...processing/core/PGraphics3D.java</option>
<option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix.java?r=7133&amp;spec=svn7768"
selected="selected"
>...src/processing/core/PMatrix.java</option>
<option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix2D.java?r=7133&amp;spec=svn7768"
>...c/processing/core/PMatrix2D.java</option>
<option value="/p/processing/source/browse/trunk/processing/core/src/processing/core/PMatrix3D.java?r=7133&amp;spec=svn7768"
>...c/processing/core/PMatrix3D.java</option>
<option value="/p/processing/source/browse/trunk/processing/core/todo.txt?r=7133&amp;spec=svn7768"
>/trunk/processing/core/todo.txt</option>
</select>
</td></tr></table>
</div>
</div>
<div class="round1"></div>
<div class="round2"></div>
<div class="round4"></div>
</div>
<div class="pmeta_bubble_bg" style="border:1px solid white">
<div class="round4"></div>
<div class="round2"></div>
<div class="round1"></div>
<div class="box-inner">
<div id="older_bubble">
<p>Older revisions</p>
<div class="closed" style="margin-bottom:3px;" >
<img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
<img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
<a href="/p/processing/source/detail?spec=svn7768&r=4997">r4997</a>
by fry
on Oct 21, 2008
&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>
<br>
<pre class="ifOpened">adding style attributes for svg, also
fix the spacing in the file
</pre>
</div>
<div class="closed" style="margin-bottom:3px;" >
<img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
<img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
<a href="/p/processing/source/detail?spec=svn7768&r=4731">r4731</a>
by fry
on Oct 08, 2008
&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>
<br>
<pre class="ifOpened">more work on matrix functions,
implement matrices for PShape, addl
note in
PGraphics
</pre>
</div>
<div class="closed" style="margin-bottom:3px;" >
<img class="ifClosed" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/plus.gif" >
<img class="ifOpened" onclick="_toggleHidden(this)" src="http://www.gstatic.com/codesite/ph/images/minus.gif" >
<a href="/p/processing/source/detail?spec=svn7768&r=4712">r4712</a>
by fry
on Oct 02, 2008
&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>
<br>
<pre class="ifOpened">give up on wrapping AffineTransform
and other matrices
</pre>
</div>
<a href="/p/processing/source/list?path=/trunk/processing/core/src/processing/core/PMatrix.java&start=7133">All revisions of this file</a>
</div>
</div>
<div class="round1"></div>
<div class="round2"></div>
<div class="round4"></div>
</div>
<div class="pmeta_bubble_bg" style="border:1px solid white">
<div class="round4"></div>
<div class="round2"></div>
<div class="round1"></div>
<div class="box-inner">
<div id="fileinfo_bubble">
<p>File info</p>
<div>Size: 4016 bytes,
150 lines</div>
<div><a href="http://processing.googlecode.com/svn/trunk/processing/core/src/processing/core/PMatrix.java">View raw file</a></div>
</div>
</div>
<div class="round1"></div>
<div class="round2"></div>
<div class="round4"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/prettify/prettify.js"></script>
<script type="text/javascript">prettyPrint();</script>
<script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/source_file_scripts.js"></script>
<script type="text/javascript" src="https://kibbles.googlecode.com/files/kibbles-1.3.3.comp.js"></script>
<script type="text/javascript">
var lastStop = null;
var initilized = false;
function updateCursor(next, prev) {
if (prev && prev.element) {
prev.element.className = 'cursor_stop cursor_hidden';
}
if (next && next.element) {
next.element.className = 'cursor_stop cursor';
lastStop = next.index;
}
}
function pubRevealed(data) {
updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
if (initilized) {
reloadCursors();
}
}
function draftRevealed(data) {
updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
if (initilized) {
reloadCursors();
}
}
function draftDestroyed(data) {
updateCursorForCell(data.cellId, 'nocursor');
if (initilized) {
reloadCursors();
}
}
function reloadCursors() {
kibbles.skipper.reset();
loadCursors();
if (lastStop != null) {
kibbles.skipper.setCurrentStop(lastStop);
}
}
// possibly the simplest way to insert any newly added comments
// is to update the class of the corresponding cursor row,
// then refresh the entire list of rows.
function updateCursorForCell(cellId, className) {
var cell = document.getElementById(cellId);
// we have to go two rows back to find the cursor location
var row = getPreviousElement(cell.parentNode);
row.className = className;
}
// returns the previous element, ignores text nodes.
function getPreviousElement(e) {
var element = e.previousSibling;
if (element.nodeType == 3) {
element = element.previousSibling;
}
if (element && element.tagName) {
return element;
}
}
function loadCursors() {
// register our elements with skipper
var elements = CR_getElements('*', 'cursor_stop');
var len = elements.length;
for (var i = 0; i < len; i++) {
var element = elements[i];
element.className = 'cursor_stop cursor_hidden';
kibbles.skipper.append(element);
}
}
function toggleComments() {
CR_toggleCommentDisplay();
reloadCursors();
}
function keysOnLoadHandler() {
// setup skipper
kibbles.skipper.addStopListener(
kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
// Set the 'offset' option to return the middle of the client area
// an option can be a static value, or a callback
kibbles.skipper.setOption('padding_top', 50);
// Set the 'offset' option to return the middle of the client area
// an option can be a static value, or a callback
kibbles.skipper.setOption('padding_bottom', 100);
// Register our keys
kibbles.skipper.addFwdKey("n");
kibbles.skipper.addRevKey("p");
kibbles.keys.addKeyPressListener(
'u', function() { window.location = detail_url; });
kibbles.keys.addKeyPressListener(
'r', function() { window.location = detail_url + '#publish'; });
kibbles.keys.addKeyPressListener('j', gotoNextPage);
kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
}
</script>
<script src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/code_review_scripts.js"></script>
<script type="text/javascript">
// the comment form template
var form = '<div class="draft"><div class="header"><span class="title">Draft comment:</span></div>' +
'<div class="body"><form onsubmit="return false;"><textarea id="$ID">$BODY</textarea><br>$ACTIONS</form></div>' +
'</div>';
// the comment "plate" template used for both draft and published comment "plates".
var draft_comment = '<div class="draft" ondblclick="$ONDBLCLICK">' +
'<div class="header"><span class="title">Draft comment:</span><span class="actions">$ACTIONS</span></div>' +
'<pre id="$ID" class="body">$BODY</pre>' +
'</div>';
var published_comment = '<div class="published">' +
'<div class="header"><span class="title"><a href="$PROFILE_URL">$AUTHOR:</a></span><div>' +
'<pre id="$ID" class="body">$BODY</pre>' +
'</div>';
function showPublishInstructions() {
var element = document.getElementById('review_instr');
if (element) {
element.className = 'opened';
}
}
function revsOnLoadHandler() {
// register our source container with the commenting code
var paths = {'svn7768': '/trunk/processing/core/src/processing/core/PMatrix.java'}
CR_setup('', 'p', 'processing', '', 'svn7768', paths,
'c6974bcd72eb95455827185f7306e1fa', CR_BrowseIntegrationFactory);
// register our hidden ui elements with the code commenting code ui builder.
CR_registerLayoutElement('form', form);
CR_registerLayoutElement('draft_comment', draft_comment);
CR_registerLayoutElement('published_comment', published_comment);
CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, showPublishInstructions);
CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_PUB_PLATE, pubRevealed);
CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, draftRevealed);
CR_registerActivityListener(CR_ACTIVITY_TYPE.DISCARD_DRAFT_COMMENT, draftDestroyed);
var initilized = true;
reloadCursors();
}
window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};
</script>
<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/dit_scripts.js"></script>
<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/10276742928614796628/js/core_scripts_20081103.js"></script>
<script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
</div>
<div id="footer" dir="ltr">
<div class="text">
&copy;2010 Google -
<a href="/projecthosting/terms.html">Terms</a> -
<a href="http://www.google.com/privacy.html">Privacy</a> -
<a href="/p/support/">Project Hosting Help</a>
</div>
</div>
<div class="hostedBy" style="margin-top: -20px;">
<span style="vertical-align: top;">Powered by <a href="http://code.google.com/projecthosting/">Google Project Hosting</a></span>
</div>
</body>
</html>