Operadores
Regras de Precedencia
->
^
- unário, !
* / .*. ./. mod
.
+ -
>> <<
> < >= <= == =/=
&
~
|
not
and
xor
or
= += -= *= /=
Regras de associatividade
À esquerda
+ - * / mod .*. ./. -> and or xor & | ~ << >> > < >= <= == =/=
À direita
(- unário) ^ not ! = += -= *= /=
Não associativo
. (produto escalar)
Sobrecarga de operadores
| Operador | Tipos |
|---|---|
| +, -, , /, ^, +=, -=, =, /= | vec, vec2, vec3, vec4, mat, mat2, mat3, mat4, int, float |
| .*., ./. | vec, vec2, vec3, vec4, mat, mat2, mat3, mat4 |
| mod | int, float |
| . | vec, vec2, vec3, vec4 |
| >, <, >=, <= | int, float |
| ==, =/=, = | vec, vec2, vec3, vec4, mat, mat2, mat3, mat4, int, float, struct |
Vale lembrar que as operações são realizadas entre mesmo tipo. Caso queira-se, por exemplo, somar um int com um float, precisa realizar uma conversão.