# all components are set to zero v = vec4() (0.0000, 0.0000, 0.0000, 0.0000) # set all components to one value v = vec4(2.5) (2.5000, 2.5000, 2.5000, 2.5000) # set a 2d vector, the ramaining components will be zero v = vec4(1.5, 0.8) (1.5000, 0.8000, 0.0000, 0.0000) # set a 3d vector, the ramaining component will be zero v = vec4(1.5, 0.8, -0.5) (1.5000, 0.8000, -0.5000, 0.0000) # set all components v = vec4(1.5, 0.8, -0.5, 0.2) (1.5000, 0.8000, -0.5000, 0.2000)Additionally you can use all of the above, but store the values inside a tuple, a list or a string:
v = vec4([1.5, 0.8, -0.5]) w = vec4("1.5, 0.8")Finally, you can initialize a vector with a copy of another vector:
v = vec4(w)
A vec3 can be used just like a list with 3 elements, so you can read and write components using the index operator or by accessing the components by name:
>>> v=vec4(1,2,3,1) >>> print v 1.0 >>> print v.y 2.0 >>> print v.w 1.0 >>> print v.t # this is the same as v.w 1.0The 4th component can be accessed either by the name "w" or "t". You might prefer the former name when using the vector as a homogenous coordinate while the latter might be preferable when the 4th component shall represent a time value.
vec4 = vec4 + vec4 vec4 = vec4 - vec4 float = vec4 * vec4 # dot product vec4 = float * vec4 vec4 = vec4 * float vec4 = vec4 / float vec4 = vec4 % float # each component vec4 = -vec4 float = vec4[i] # get or set elementAdditionally, you can compare vectors with ==, !=, <, <=, >, >=. Each comparison (except < and >) takes an epsilon environment into account, this means two values are considered to be equal if their absolute difference is less than or equal to a threshold value epsilon. You can read and write this threshold value using the functions getEpsilon() and setEpsilon().
Taking the absolute value of a vector will return the length of the vector:
float = abs(v) # this is equivalent to v.length()