Qual é o tipo de componentes do SCNVector3? CGFloat ou Float?

A documentação da apple fornece a declaração do SCNVector3:

typedef struct SCNVector3 {CGFloat x, y, z; } SCNVector3;

Ou ao tentar escrever uma função de sobrecarga:

func * (left: SCNVector3, right: CGFloat) -> SCNVector3 {
    return SCNVector3Make(left.x * right, left.y * right, left.z * right)
}

Eu recebo o"não pode invocar ''com uma lista de argumentos do tipo "error. Não left.x, left.y e left.z deveriam ser CGfloat?

Como e quando é decidido se o CGFloat será duplo ou flutuante?

questionAnswers(1)

yourAnswerToTheQuestion