A vec4 represents a 4D vector type. You can construct a vec4 by several ways:
# 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 vec4 can be used just like a list with 4 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.0
The 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.
The mathematical operators are supported with the following combination of types:
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 % vec4 # component wise vec4 = -vec4 float = vec4[i] # get or set element
Additionally, 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()
Returns the length of the vector (). This is equivalent to calling abs(self).
Returns normalized vector. If the method is called on the null vector (where each component is zero) a ZeroDivisionError is raised.
Returns the minimum value of the components.
Returns the maximum value of the components.
Return the index of the component with the minimum value.
Return the index of the component with the maximum value.
Returns the minimum absolute value of the components.
Returns the maximum absolute value of the components.
Return the index of the component with the minimum absolute value.
Return the index of the component with the maximum absolute value.