title: How I convert this implementation using GLKMatrix4 to using CATransform3D
body: <p>I want to convert <code>GLKMatrix4</code> and <code>CATransform3D</code>,and I use this method:</p>
  
  <pre><code> CATransform3D t;
      GLKMatrix4 t2 = *((GLKMatrix4 *)&amp;t);
      t = *((CATransform3D *)&amp;t2);
  </code></pre>
  
  <p>form:
  (<a href="https://stackoverflow.com/questions/12175471/convert-glkmatrix4-and-catransform3d">Convert GLKMatrix4 and CATransform3D</a>).</p>
  
  <p>it work well at 32bit,but can't work in 64bit equipments,and I found the reason is that,<code>GLKMatrix4</code> is using Float and <code>CATransform3D</code> is using <code>CGFloat</code>,as we know,they are treated different in different bit machines,so this codes can't work in 64bit equipments,here someone can convert it?
  <code>GLMatrix4</code> code:</p>
  
  <pre><code>GLKQuaternion   _rotationEnd;
  GLKVector2    _translationEnd;
  float   _depth;
  float   _scaleEnd;
  
  GLKMatrix4 modelViewMatrix = GLKMatrix4Identity;
  GLKMatrix4 quaternionMatrix = GLKMatrix4MakeWithQuaternion(_rotationEnd);
  modelViewMatrix = GLKMatrix4Translate(modelViewMatrix, _translationEnd.x, _translationEnd.y, -_depth);
  modelViewMatrix = GLKMatrix4Multiply(modelViewMatrix, quaternionMatrix);
  modelViewMatrix = GLKMatrix4Scale(modelViewMatrix, _scaleEnd, _scaleEnd, _scaleEnd);
  </code></pre>
  
  <p>How I fix it using <code>CATransform3D</code>?</p>