title: What is the type of SCNVector3 components? CGFloat or Float?
body: <p>The apple documentation gives the declaration of SCNVector3 :</p>
  
  <blockquote>
    <p>typedef struct SCNVector3 { CGFloat x, y , z; } SCNVector3;</p>
  </blockquote>
  
  <p>Or when trying to write an overload function :</p>
  
  <pre><code>func * (left: SCNVector3, right: CGFloat) -&gt; SCNVector3 {
      return SCNVector3Make(left.x * right, left.y * right, left.z * right)
  }
  </code></pre>
  
  <p>I get the <em>"cannot invoke '</em>' with an argument list of type" error. Aren't left.x, left.y and left.z supposed to be CGfloat ?</p>
  
  <p>How and when is it decided if CGFloat will be a double or a float?</p>