document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-100144\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"cm\">/*<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;<\/div><div class=\"line\" id=\"LC3\"><span class=\"cm\">Simple example showing how to use the<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"cm\">SpaceNavigator &lt;http://www.3dconnexion.com/3dmouse/spacenavigator.php&gt;<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"cm\">with processing via OSC and OSCulator &lt;http://www.osculator.net/&gt;.<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;<\/div><div class=\"line\" id=\"LC7\"><span class=\"cm\">*/<\/span><\/div><div class=\"line\" id=\"LC8\"><span class=\"kn\">import<\/span> <span class=\"nn\">processing.opengl.*<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC9\"><span class=\"kn\">import<\/span> <span class=\"nn\">oscP5.*<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;<\/div><div class=\"line\" id=\"LC11\"><span class=\"n\">OscP5<\/span> <span class=\"n\">oscP5<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC12\">&nbsp;<\/div><div class=\"line\" id=\"LC13\"><span class=\"n\">PVector<\/span> <span class=\"n\">snTranslation<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC14\"><span class=\"n\">PVector<\/span> <span class=\"n\">snRotation<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC15\"><span class=\"kt\">int<\/span> <span class=\"n\">boxSize<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;<\/div><div class=\"line\" id=\"LC17\"><span class=\"kt\">void<\/span> <span class=\"nf\">setup<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;<span class=\"n\">size<\/span><span class=\"o\">(<\/span><span class=\"mi\">400<\/span><span class=\"o\">,<\/span><span class=\"mi\">400<\/span><span class=\"o\">,<\/span> <span class=\"n\">OPENGL<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;<span class=\"n\">frameRate<\/span><span class=\"o\">(<\/span><span class=\"mi\">25<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;<span class=\"n\">noStroke<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;<\/div><div class=\"line\" id=\"LC22\">&nbsp;<\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;<span class=\"n\">oscP5<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">OscP5<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">,<\/span><span class=\"mi\">9000<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;<\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;<span class=\"n\">oscP5<\/span><span class=\"o\">.<\/span><span class=\"na\">plug<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">,<\/span> <span class=\"s\">&quot;onSNRotate&quot;<\/span><span class=\"o\">,<\/span>    <span class=\"s\">&quot;/sp/1/rot/xyz&quot;<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;<span class=\"n\">oscP5<\/span><span class=\"o\">.<\/span><span class=\"na\">plug<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">,<\/span> <span class=\"s\">&quot;onSNTranslate&quot;<\/span><span class=\"o\">,<\/span> <span class=\"s\">&quot;/sp/1/trans/xyz&quot;<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;<span class=\"n\">oscP5<\/span><span class=\"o\">.<\/span><span class=\"na\">plug<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">,<\/span> <span class=\"s\">&quot;onSNButton1&quot;<\/span><span class=\"o\">,<\/span>   <span class=\"s\">&quot;/sp/1/button/1&quot;<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;<span class=\"n\">oscP5<\/span><span class=\"o\">.<\/span><span class=\"na\">plug<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">,<\/span> <span class=\"s\">&quot;onSNButton2&quot;<\/span><span class=\"o\">,<\/span>   <span class=\"s\">&quot;/sp/1/button/2&quot;<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;<\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;<span class=\"n\">snTranslation<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">PVector<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;<span class=\"n\">snRotation<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">PVector<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;<\/div><div class=\"line\" id=\"LC33\">&nbsp;&nbsp;<span class=\"n\">boxSize<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">100<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC34\"><span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC35\">&nbsp;<\/div><div class=\"line\" id=\"LC36\"><span class=\"kt\">void<\/span> <span class=\"nf\">draw<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC37\">&nbsp;&nbsp;<span class=\"n\">background<\/span><span class=\"o\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC38\">&nbsp;&nbsp;<span class=\"n\">lights<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC39\">&nbsp;&nbsp;<span class=\"n\">pushMatrix<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC40\">&nbsp;&nbsp;<span class=\"n\">translate<\/span><span class=\"o\">(<\/span><span class=\"mi\">200<\/span><span class=\"o\">+<\/span><span class=\"n\">snTranslation<\/span><span class=\"o\">.<\/span><span class=\"na\">x<\/span><span class=\"o\">,<\/span> <span class=\"mi\">200<\/span><span class=\"o\">+<\/span><span class=\"n\">snTranslation<\/span><span class=\"o\">.<\/span><span class=\"na\">y<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">+<\/span><span class=\"n\">snTranslation<\/span><span class=\"o\">.<\/span><span class=\"na\">z<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC41\">&nbsp;&nbsp;<span class=\"n\">rotateX<\/span><span class=\"o\">(<\/span><span class=\"n\">snRotation<\/span><span class=\"o\">.<\/span><span class=\"na\">x<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC42\">&nbsp;&nbsp;<span class=\"n\">rotateY<\/span><span class=\"o\">(<\/span><span class=\"n\">snRotation<\/span><span class=\"o\">.<\/span><span class=\"na\">y<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC43\">&nbsp;&nbsp;<span class=\"n\">rotateZ<\/span><span class=\"o\">(<\/span><span class=\"n\">snRotation<\/span><span class=\"o\">.<\/span><span class=\"na\">z<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC44\">&nbsp;&nbsp;<span class=\"n\">box<\/span><span class=\"o\">(<\/span><span class=\"n\">boxSize<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC45\">&nbsp;&nbsp;<span class=\"n\">popMatrix<\/span><span class=\"o\">();<\/span><\/div><div class=\"line\" id=\"LC46\"><span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC47\">&nbsp;<\/div><div class=\"line\" id=\"LC48\"><span class=\"kt\">void<\/span> <span class=\"nf\">onSNRotate<\/span><span class=\"o\">(<\/span><span class=\"kt\">float<\/span> <span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">y<\/span><span class=\"o\">,<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">z<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC49\">&nbsp;&nbsp;<span class=\"n\">snRotation<\/span><span class=\"o\">.<\/span><span class=\"na\">x<\/span> <span class=\"o\">=<\/span> <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">PI<\/span><span class=\"o\">,<\/span>  <span class=\"o\">-<\/span><span class=\"n\">PI<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC50\">&nbsp;&nbsp;<span class=\"n\">snRotation<\/span><span class=\"o\">.<\/span><span class=\"na\">y<\/span> <span class=\"o\">=<\/span> <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">y<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">PI<\/span><span class=\"o\">,<\/span>  <span class=\"o\">-<\/span><span class=\"n\">PI<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC51\">&nbsp;&nbsp;<span class=\"n\">snRotation<\/span><span class=\"o\">.<\/span><span class=\"na\">z<\/span> <span class=\"o\">=<\/span> <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">z<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"o\">-<\/span><span class=\"n\">PI<\/span><span class=\"o\">,<\/span>  <span class=\"n\">PI<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC52\"><span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC53\">&nbsp;<\/div><div class=\"line\" id=\"LC54\">&nbsp;<\/div><div class=\"line\" id=\"LC55\"><span class=\"kt\">void<\/span> <span class=\"nf\">onSNTranslate<\/span><span class=\"o\">(<\/span><span class=\"kt\">float<\/span> <span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">y<\/span><span class=\"o\">,<\/span> <span class=\"kt\">float<\/span> <span class=\"n\">z<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC56\">&nbsp;&nbsp;<span class=\"n\">snTranslation<\/span><span class=\"o\">.<\/span><span class=\"na\">x<\/span> <span class=\"o\">=<\/span> <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">x<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"o\">-<\/span><span class=\"n\">width<\/span><span class=\"o\">/<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">width<\/span><span class=\"o\">/<\/span><span class=\"mi\">2<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC57\">&nbsp;&nbsp;<span class=\"n\">snTranslation<\/span><span class=\"o\">.<\/span><span class=\"na\">y<\/span> <span class=\"o\">=<\/span> <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">y<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"o\">-<\/span><span class=\"n\">height<\/span><span class=\"o\">/<\/span><span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"n\">height<\/span><span class=\"o\">/<\/span><span class=\"mi\">2<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC58\">&nbsp;&nbsp;<span class=\"n\">snTranslation<\/span><span class=\"o\">.<\/span><span class=\"na\">z<\/span> <span class=\"o\">=<\/span> <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">z<\/span><span class=\"o\">,<\/span> <span class=\"mi\">0<\/span><span class=\"o\">,<\/span> <span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">250<\/span><span class=\"o\">,<\/span> <span class=\"o\">-<\/span><span class=\"mi\">250<\/span><span class=\"o\">);<\/span><\/div><div class=\"line\" id=\"LC59\"><span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC60\">&nbsp;<\/div><div class=\"line\" id=\"LC61\"><span class=\"kt\">void<\/span> <span class=\"nf\">onSNButton1<\/span><span class=\"o\">(<\/span><span class=\"kt\">float<\/span> <span class=\"n\">v<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC62\">&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">v<\/span> <span class=\"o\">==<\/span> <span class=\"mf\">1.0<\/span><span class=\"o\">)<\/span> <span class=\"n\">boxSize<\/span><span class=\"o\">+=<\/span><span class=\"mi\">5<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC63\"><span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC64\">&nbsp;<\/div><div class=\"line\" id=\"LC65\"><span class=\"kt\">void<\/span> <span class=\"nf\">onSNButton2<\/span><span class=\"o\">(<\/span><span class=\"kt\">float<\/span> <span class=\"n\">v<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span><\/div><div class=\"line\" id=\"LC66\">&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">v<\/span> <span class=\"o\">==<\/span> <span class=\"mf\">1.0<\/span><span class=\"o\">)<\/span> <span class=\"n\">boxSize<\/span><span class=\"o\">-=<\/span><span class=\"mi\">5<\/span><span class=\"o\">;<\/span><\/div><div class=\"line\" id=\"LC67\"><span class=\"o\">}<\/span><\/div><div class=\"line\" id=\"LC68\">&nbsp;<\/div><div class=\"line\" id=\"LC69\">&nbsp;<\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/100144/6790879a7d274fed4c67d746a60586e736c69b90/OSCSpaceNavigator.pde\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/100144#file_osc_space_navigator.pde\" style=\"float:right;margin-right:10px;color:#666\">OSCSpaceNavigator.pde<\/a>\n          <a href=\"http://gist.github.com/100144\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
