<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    I am currently working on gl3n -
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-15">
    <a href="https://bitbucket.org/dav1d/gl3n">https://bitbucket.org/dav1d/gl3n</a>
    - gl3n provides all the math you need to work with OpenGL, DirectX
    or just vectors and matrices (it's mainly targeted at graphics -
    gl3n will never be more then a pure math library). What it supports:
    <br>
    <ul>
      <li>vectors</li>
      <li>matrices</li>
      <li>quaternions</li>
      <li>interpolation (lerp, slerp, hermite, catmull rom, nearest)</li>
      <li>nearly all glsl functions (according to spec 4.1)</li>
      <li>some more cool features, like templated types (vectors,
        matrices, quats), cool ctors, dynamic swizzling</li>
    </ul>
    <p>And the best is, it's MIT licensed ;). Unfortunatly there's no
      documentation yet, but it shouldn't be hard to understand how to
      use it, if you run anytime into troubles just take a look into the
      source, I did add to every part of the lib unittests, so you can
      see how it works when looking at the unittests, furthermore I am
      very often at #D on freenode.<br>
      But gl3n isn't finished! My current plans are to add more
      interpolation functions and the rest of the glsl defined
      functions, but I am new to graphics programming (about 4 months I
      am now into OpenGL), so tell me what you're missing, the chances
      are good that I'll implement and add it. So let me know what you
      think about it.<br>
    </p>
    <p>Before I forget it, a bit of code to show you how to use gl3n:<br>
    </p>
    <hr size="2" width="100%">
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-15">
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-15">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">vec4 v4 = vec4(1.0f, vec3(2.0f, 3.0f, 4.0f));<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">vec4 v4 = vec4(1.0f, vec4(1.0f, 2.0f, 3.0f,
      4.0f).xyz)); // "dynamic" swizzling with opDispatch<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">vec3 v3 = my_3dvec.rgb;<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">float[] foo = v4.xyzzzwzyyxw // not useful but
      possible!<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">glUniformMatrix4fv(location, 1, GL_TRUE,
      mat4.translation(-0.5f, -0.54f,
      0.42f).rotatex(PI).rotatez(PI/2).value_ptr); // yes they are row
      major!<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">mat3 inv_view = view.rotation;<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">mat3 inv_view = mat3(view);<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">mat4 m4 = mat4(vec4(1.0f, 2.0f, 3.0f, 4.0f), 5.0f,
      6.0f, 7.0f, 8.0f, vec4(…) …);<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <br style="color: rgb(0, 102, 0); font-family: Courier, 'Courier
      New', sans-serif; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-align: left; text-indent:
      0px; text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">struct Camera {<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    vec3 position = vec3(0.0f, 0.0f, 0.0f);<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    quat orientation = quat.identity;<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">   <span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    Camera rotatex(real alpha) {
      orientation.rotatex(alpha); return this; }<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    Camera rotatey(real alpha) {
      orientation.rotatey(alpha); return this; }<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    Camera rotatez(real alpha) {
      orientation.rotatez(alpha); return this; }<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">   <span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    Camera move(float x, float y, float z) {<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        position += vec3(x, y, z);<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        return this;<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    }<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    Camera move(vec3 s) {<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        position += s;<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        return this;<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    }<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">   <span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    @property camera() {<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        //writefln("yaw: %s, pitch: %s, roll: %s",
      degrees(orientation.yaw), degrees(orientation.pitch),
      degrees(orientation.roll));<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        return mat4.translation(position.x,
      position.y, position.z) * orientation.to_matrix!(4,4);<span
        class="Apple-converted-space"> </span></span><br style="color:
      rgb(0, 102, 0); font-family: Courier, 'Courier New', sans-serif;
      font-size: 11px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: 2; text-align: left; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">    }<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">}<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <br style="color: rgb(0, 102, 0); font-family: Courier, 'Courier
      New', sans-serif; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-align: left; text-indent:
      0px; text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        glUniformMatrix4fv(programs.main.view, 1,
      GL_TRUE, cam.camera.value_ptr);<span class="Apple-converted-space"> </span></span><br
      style="color: rgb(0, 102, 0); font-family: Courier, 'Courier New',
      sans-serif; font-size: 11px; font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-size-adjust: auto;
      -webkit-text-stroke-width: 0px; background-color: rgb(250, 250,
      250); ">
    <span class="Apple-style-span" style="color: rgb(0, 102, 0);
      font-family: Courier, 'Courier New', sans-serif; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
      background-color: rgb(250, 250, 250); display: inline !important;
      float: none; ">        glUniformMatrix3fv(programs.main.inv_rot,
      1, GL_TRUE, cam.orientation.to_matrix!(3,3).inverse.value_ptr);<span
        class="Apple-converted-space"> <br>
      </span></span>
    <hr size="2" width="100%"><br>
    I hope this gave you a little introduction of gl3n.<br>
    <br>
    - dav1d<br>
  </body>
</html>