title: What kind of matrix transformation can be in this code of mirror?
body: <p>I try to understand a code of mirror, it contains this matrix transformation:</p>
  
  <pre><code>matrix[0][0] = -matrix[0][0]; 
  matrix[1][0] = -matrix[1][0]; 
  matrix[2][0] = -matrix[2][0];
  matrix[3][0] = -matrix[3][0];
  </code></pre>
  
  <p>The first think I have this is:</p>
  
  <pre><code>matrix.tra() matrix.scale(-1,1,1); matrix.tra()
  </code></pre>
  
  <p>But GL doesn't have commands for transpose of matrix and it's not possible to execute these commands. I want to understand how to use it.</p>
  
  <p>What kind of matrix transformation can be in this code?</p>
  
  <p>Below I will write more code to provide more details.</p>
  
  <pre><code>md3_vox_calcmat_common(tspr, dvoxa0, f, matrix); 
  if (grhalfxdown10x &lt; 0) { 
      matrix[0][0] = -matrix[0][0]; 
      matrix[1][0] = -matrix[1][0]; 
      matrix[2][0] = -matrix[2][0]; 
      matrix[3][0] = -matrix[3][0]; 
  } 
  matrix[0][3] = matrix[1][3] = matrix[2][3] = 0.f; 
  matrix[3][3] = 1.f; 
  
  gl.bglMatrixMode(GL_MODELVIEW);
  // Let OpenGL (and perhaps hardware) handle the matrix rotation 
  gl.bglLoadMatrixf(matrix);
  
  //calcmat_common is:
  mat.idt(); 
  mat.rotate(0.0f, 0.0f, -1.0f, roll); 
  mat.rotate(-1.0f, 0.0f, 0.0f, pitch); 
  mat.rotate(0.0f, -1.0f, 0.0f, yaw); 
  mat.scale(-1 / 16f, 1.0f, 1 / 16f); 
  mat.translate(a0.y, a0.z, a0.x); 
  mat.rotate(0.0f, -1.0f, 0.0f, spriteang);
  </code></pre>